From ae27fb1ccb7f77f2e3e905e84d5719259a5e62d5 Mon Sep 17 00:00:00 2001 From: Leszek Wiesner Date: Wed, 18 Nov 2020 14:14:29 +0100 Subject: [PATCH 1/3] Content directory smart contracts - initial commit --- smart-contracts/.gitignore | 1 + smart-contracts/.solhint.json | 3 + .../contracts/ChannelOwnershipDecoder.json | 10837 +++++ .../build/contracts/ChannelStorage.json | 11100 +++++ .../build/contracts/ContentDirectory.json | 39425 ++++++++++++++++ .../contracts/ContentWorkingGroupBridge.json | 2863 ++ smart-contracts/build/contracts/Context.json | 545 + .../build/contracts/CuratorGroupStorage.json | 6286 +++ .../build/contracts/MembershipBridge.json | 1779 + .../build/contracts/Migrations.json | 1425 + smart-contracts/build/contracts/Ownable.json | 2844 ++ smart-contracts/build/contracts/Pausable.json | 2075 + .../contracts/RuntimeAddressProvider.json | 1734 + .../build/contracts/RuntimeManageable.json | 1716 + smart-contracts/build/contracts/SafeMath.json | 5148 ++ .../build/contracts/SafeMath16.json | 5137 ++ .../build/contracts/SafeMath32.json | 5137 ++ .../build/contracts/SafeMath64.json | 5137 ++ .../build/contracts/SafeMath8.json | 5137 ++ .../build/contracts/VideoStorage.json | 3873 ++ .../contracts/ContentDirectory.sol | 510 + smart-contracts/contracts/Migrations.sol | 24 + .../bridge/ContentWorkingGroupBridge.sol | 48 + .../contracts/bridge/MembershipBridge.sol | 25 + smart-contracts/contracts/bridge/auth.sol | 43 + smart-contracts/contracts/lib/SafeMath16.sol | 146 + smart-contracts/contracts/lib/SafeMath32.sol | 146 + smart-contracts/contracts/lib/SafeMath64.sol | 146 + smart-contracts/contracts/lib/SafeMath8.sol | 146 + .../contracts/storage/ChannelStorage.sol | 140 + .../contracts/storage/CuratorGroupStorage.sol | 91 + .../contracts/storage/VideoStorage.sol | 57 + .../migrations/1_initial_migration.js | 5 + .../migrations/2_deploy_contracts.js | 20 + smart-contracts/package.json | 21 + smart-contracts/test/.eslintrc | 13 + smart-contracts/test/bridges.js | 43 + smart-contracts/test/channels.js | 83 + smart-contracts/truffle-config.js | 27 + smart-contracts/yarn.lock | 4835 ++ 40 files changed, 118771 insertions(+) create mode 100644 smart-contracts/.gitignore create mode 100644 smart-contracts/.solhint.json create mode 100644 smart-contracts/build/contracts/ChannelOwnershipDecoder.json create mode 100644 smart-contracts/build/contracts/ChannelStorage.json create mode 100644 smart-contracts/build/contracts/ContentDirectory.json create mode 100644 smart-contracts/build/contracts/ContentWorkingGroupBridge.json create mode 100644 smart-contracts/build/contracts/Context.json create mode 100644 smart-contracts/build/contracts/CuratorGroupStorage.json create mode 100644 smart-contracts/build/contracts/MembershipBridge.json create mode 100644 smart-contracts/build/contracts/Migrations.json create mode 100644 smart-contracts/build/contracts/Ownable.json create mode 100644 smart-contracts/build/contracts/Pausable.json create mode 100644 smart-contracts/build/contracts/RuntimeAddressProvider.json create mode 100644 smart-contracts/build/contracts/RuntimeManageable.json create mode 100644 smart-contracts/build/contracts/SafeMath.json create mode 100644 smart-contracts/build/contracts/SafeMath16.json create mode 100644 smart-contracts/build/contracts/SafeMath32.json create mode 100644 smart-contracts/build/contracts/SafeMath64.json create mode 100644 smart-contracts/build/contracts/SafeMath8.json create mode 100644 smart-contracts/build/contracts/VideoStorage.json create mode 100644 smart-contracts/contracts/ContentDirectory.sol create mode 100644 smart-contracts/contracts/Migrations.sol create mode 100644 smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol create mode 100644 smart-contracts/contracts/bridge/MembershipBridge.sol create mode 100644 smart-contracts/contracts/bridge/auth.sol create mode 100644 smart-contracts/contracts/lib/SafeMath16.sol create mode 100644 smart-contracts/contracts/lib/SafeMath32.sol create mode 100644 smart-contracts/contracts/lib/SafeMath64.sol create mode 100644 smart-contracts/contracts/lib/SafeMath8.sol create mode 100644 smart-contracts/contracts/storage/ChannelStorage.sol create mode 100644 smart-contracts/contracts/storage/CuratorGroupStorage.sol create mode 100644 smart-contracts/contracts/storage/VideoStorage.sol create mode 100644 smart-contracts/migrations/1_initial_migration.js create mode 100644 smart-contracts/migrations/2_deploy_contracts.js create mode 100644 smart-contracts/package.json create mode 100644 smart-contracts/test/.eslintrc create mode 100644 smart-contracts/test/bridges.js create mode 100644 smart-contracts/test/channels.js create mode 100644 smart-contracts/truffle-config.js create mode 100644 smart-contracts/yarn.lock diff --git a/smart-contracts/.gitignore b/smart-contracts/.gitignore new file mode 100644 index 0000000000..2ccbe4656c --- /dev/null +++ b/smart-contracts/.gitignore @@ -0,0 +1 @@ +/node_modules/ diff --git a/smart-contracts/.solhint.json b/smart-contracts/.solhint.json new file mode 100644 index 0000000000..d7c3de9895 --- /dev/null +++ b/smart-contracts/.solhint.json @@ -0,0 +1,3 @@ +{ + "extends": "solhint:default" +} diff --git a/smart-contracts/build/contracts/ChannelOwnershipDecoder.json b/smart-contracts/build/contracts/ChannelOwnershipDecoder.json new file mode 100644 index 0000000000..50ddceb19a --- /dev/null +++ b/smart-contracts/build/contracts/ChannelOwnershipDecoder.json @@ -0,0 +1,10837 @@ +{ + "contractName": "ChannelOwnershipDecoder", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":\"ChannelOwnershipDecoder\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":{\"keccak256\":\"0x2c0b74ba427192750d9ae3532ca9a5ca8bf55c78d42b31b5fd884c8446e236b7\",\"urls\":[\"bzz-raw://8de586eee05bb472e60c7f6dfde1deabe8d88b911bb24a25b835423b968e5853\",\"dweb:/ipfs/QmPxGyc41DfVWHd2dACS65HuAays534bFcPivqBSJ7ojgJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202d1045324ab0cccb8fe79d4c16764bda43ed09cfd57397cef63d8e2e62beab2064736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202d1045324ab0cccb8fe79d4c16764bda43ed09cfd57397cef63d8e2e62beab2064736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "1070:1642:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "1070:1642:9:-:0;;;;;;;;", + "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../../node_modules/@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"../lib/SafeMath32.sol\";\nimport \"../lib/SafeMath64.sol\";\n\n// Generic representation of ownership, assuming that each possible ownership consists of:\n// - Type (ie. Member, Group, Curator etc.), which is represented by uint8 (and can be converted to enum)\n// - Identifier (address/id/hash), which is represented by uint256\nstruct ChannelOwnership {\n uint8 ownershipType;\n\tuint256 ownerId;\n}\n\n// Any change to this struct requires ChannelStorage migration\nstruct Channel {\n ChannelOwnership ownership;\n bool isActive;\n\tuint32 videoLimit; // 0 = use default\n bool isExisting;\n}\n\n// A helper library to parse ChannelOwnership.\n// New ownership types can be safely added if needed without the need for migration\n// (but changing/removing existing ones would still require migration to new storage)\nenum ChannelOwnerType { Address, Member, CuratorGroup }\nlibrary ChannelOwnershipDecoder {\n\tfunction isAddress(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Address);\n\t}\n\n\tfunction isMember(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Member);\n\t}\n\n\tfunction isCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.CuratorGroup);\n\t}\n\n\tfunction asAddress(ChannelOwnership memory _ownership) internal pure returns (address) {\n\t\trequire(\n\t\t\tisAddress(_ownership),\n\t\t\t\"asAddress called on non-address ChannelOwnership\"\n\t\t);\n\t\treturn address(uint160(_ownership.ownerId));\n\t}\n\n\tfunction asMember(ChannelOwnership memory _ownership) internal pure returns (uint64) {\n\t\trequire(\n\t\t\tisMember(_ownership),\n\t\t\t\"asMember called on non-member ChannelOwnership\"\n\t\t);\n\t\treturn uint64(_ownership.ownerId);\n\t}\n\n\tfunction asCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (uint16) {\n\t\trequire(\n\t\t\tisCuratorGroup(_ownership),\n\t\t\t\"asCuratorGroup called on non-group ChannelOwnership\"\n\t\t);\n\t\treturn uint16(_ownership.ownerId);\n\t}\n\n\tfunction isValid(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\tif (isAddress(_ownership)) {\n\t\t\treturn uint256(uint160(asAddress(_ownership))) == _ownership.ownerId;\n\t\t}\n\t\tif (isMember(_ownership)) {\n\t\t\treturn uint256(asMember(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\tif (isCuratorGroup(_ownership)) {\n\t\t\treturn uint256(asCuratorGroup(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\treturn false;\n\t}\n}\n\ncontract ChannelStorage is Ownable {\n mapping (uint64 => Channel) private channelById;\n\t// ownershipType => ownerId => channelCount double-map\n mapping (uint8 => mapping(uint256 => uint32)) public channelCountByOwnership;\n uint64 public nextChannelId = 1;\n\n\tusing SafeMath32 for uint32;\n\tusing SafeMath64 for uint64;\n\n\tfunction _incCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].add(1);\n\t}\n\n\tfunction _decCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].sub(1);\n\t}\n\n function addChannel (ChannelOwnership memory _ownership) public onlyOwner returns (uint64) {\n\t\tuint64 channelId = nextChannelId;\n\t\t// Get storage ref\n\t\tChannel storage newChannel = channelById[channelId];\n\t\t// Populate the struct\n\t\tnewChannel.isExisting = true;\n\t\tnewChannel.ownership = _ownership; // TODO: Is this the right way to do this assignment?\n\t\t_incCountByOwnership(_ownership);\n\t\tnextChannelId.add(1);\n\t\treturn channelId;\n\t}\n\n\t// Get channel + perform existance check\n\tfunction getExistingChannel(uint64 _channelId) public view returns (Channel memory) {\n\t\tChannel memory channel = channelById[_channelId];\n\t\trequire(channel.isExisting, \"Trying to access unexisting channel\");\n\t\treturn channel;\n\t}\n\n function updateOwnership (uint64 _channelId, ChannelOwnership memory _ownership) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\t_decCountByOwnership(channel.ownership);\n\t\tchannel.ownership = _ownership;\n\t\t_incCountByOwnership(_ownership);\n\t}\n\n function updateStatus (uint64 _channelId, bool _isActive) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.isActive = _isActive;\n\t}\n\n function setChannelVideoLimit (uint64 _channelId, uint32 _videoLimit) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.videoLimit = _videoLimit;\n\t}\n\n function removeChannel (uint64 _channelId) public onlyOwner {\n\t\t_decCountByOwnership(channelById[_channelId].ownership);\n\t\tdelete channelById[_channelId];\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "exportedSymbols": { + "Channel": [ + 2478 + ], + "ChannelOwnerType": [ + 2482 + ], + "ChannelOwnership": [ + 2469 + ], + "ChannelOwnershipDecoder": [ + 2658 + ], + "ChannelStorage": [ + 2875 + ] + }, + "id": 2876, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2459, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:9" + }, + { + "id": 2460, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:9" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 2461, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3403, + "src": "59:71:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "id": 2462, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3599, + "src": "131:70:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "file": "../lib/SafeMath32.sol", + "id": 2463, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2068, + "src": "202:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "file": "../lib/SafeMath64.sol", + "id": 2464, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2263, + "src": "234:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "ChannelOwnership", + "id": 2469, + "members": [ + { + "constant": false, + "id": 2466, + "mutability": "mutable", + "name": "ownershipType", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "561:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2465, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "561:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "mutability": "mutable", + "name": "ownerId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "583:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "583:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ChannelOwnership", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "531:70:9", + "visibility": "public" + }, + { + "canonicalName": "Channel", + "id": 2478, + "members": [ + { + "constant": false, + "id": 2471, + "mutability": "mutable", + "name": "ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "687:26:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2470, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "687:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2473, + "mutability": "mutable", + "name": "isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "719:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2472, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2475, + "mutability": "mutable", + "name": "videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "735:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2474, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "735:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2477, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "777:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2476, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "777:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Channel", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "666:129:9", + "visibility": "public" + }, + { + "canonicalName": "ChannelOwnerType", + "id": 2482, + "members": [ + { + "id": 2479, + "name": "Address", + "nodeType": "EnumValue", + "src": "1038:7:9" + }, + { + "id": 2480, + "name": "Member", + "nodeType": "EnumValue", + "src": "1047:6:9" + }, + { + "id": 2481, + "name": "CuratorGroup", + "nodeType": "EnumValue", + "src": "1055:12:9" + } + ], + "name": "ChannelOwnerType", + "nodeType": "EnumDefinition", + "src": "1014:55:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2658, + "linearizedBaseContracts": [ + 2658 + ], + "name": "ChannelOwnershipDecoder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2498, + "nodeType": "Block", + "src": "1189:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2489, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2484, + "src": "1200:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2490, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1200:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2493, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1234:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Address", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1234:24:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2491, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1228:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1200:59:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2488, + "id": 2497, + "nodeType": "Return", + "src": "1193:66:9" + } + ] + }, + "documentation": null, + "id": 2499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2484, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1124:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2483, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1124:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1123:36:9" + }, + "returnParameters": { + "id": 2488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2487, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1183:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2486, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1183:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1182:6:9" + }, + "scope": 2658, + "src": "1105:158:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2515, + "nodeType": "Block", + "src": "1349:73:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2506, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "1360:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1360:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2510, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1394:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Member", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1394:23:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2508, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1360:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2505, + "id": 2514, + "nodeType": "Return", + "src": "1353:65:9" + } + ] + }, + "documentation": null, + "id": 2516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2501, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1284:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2500, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1284:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1283:36:9" + }, + "returnParameters": { + "id": 2505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1343:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2503, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1343:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1342:6:9" + }, + "scope": 2658, + "src": "1266:156:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2532, + "nodeType": "Block", + "src": "1514:79:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2523, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2518, + "src": "1525:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2524, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1525:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2527, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1559:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "CuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1559:29:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2525, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1553:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1525:64:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2522, + "id": 2531, + "nodeType": "Return", + "src": "1518:71:9" + } + ] + }, + "documentation": null, + "id": 2533, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2518, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1449:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2517, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1449:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1448:36:9" + }, + "returnParameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1508:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2520, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1508:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1507:6:9" + }, + "scope": 2658, + "src": "1425:168:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2556, + "nodeType": "Block", + "src": "1683:147:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2542, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1709:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2541, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "1699:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1725:50:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + }, + "value": "asAddress called on non-address ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + } + ], + "id": 2540, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1687:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1687:92:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2546, + "nodeType": "ExpressionStatement", + "src": "1687:92:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2551, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1806:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "1806:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2549, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1798:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1790:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2539, + "id": 2555, + "nodeType": "Return", + "src": "1783:43:9" + } + ] + }, + "documentation": null, + "id": 2557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2535, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1615:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2534, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1615:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:36:9" + }, + "returnParameters": { + "id": 2539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1674:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1674:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1673:9:9" + }, + "scope": 2658, + "src": "1596:234:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2577, + "nodeType": "Block", + "src": "1918:134:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2566, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "1943:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2565, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "1934:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1934:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1959:48:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + }, + "value": "asMember called on non-member ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + } + ], + "id": 2564, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1922:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1922:89:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2570, + "nodeType": "ExpressionStatement", + "src": "1922:89:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2573, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "2029:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2029:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 2571, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2022:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2563, + "id": 2576, + "nodeType": "Return", + "src": "2015:33:9" + } + ] + }, + "documentation": null, + "id": 2578, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2559, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1851:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2558, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1851:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1850:36:9" + }, + "returnParameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1910:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2561, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1910:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1909:8:9" + }, + "scope": 2658, + "src": "1833:219:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2598, + "nodeType": "Block", + "src": "2146:145:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2587, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2586, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2162:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2162:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2193:53:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + }, + "value": "asCuratorGroup called on non-group ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + } + ], + "id": 2585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2150:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:100:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2591, + "nodeType": "ExpressionStatement", + "src": "2150:100:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2594, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2268:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2595, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2268:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 2592, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2261:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 2584, + "id": 2597, + "nodeType": "Return", + "src": "2254:33:9" + } + ] + }, + "documentation": null, + "id": 2599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2079:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2579, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2079:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2078:36:9" + }, + "returnParameters": { + "id": 2584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2138:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2582, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2138:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2137:8:9" + }, + "scope": 2658, + "src": "2055:236:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2656, + "nodeType": "Block", + "src": "2376:334:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2607, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2394:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2606, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "2384:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2384:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2623, + "nodeType": "IfStatement", + "src": "2380:105:9", + "trueBody": { + "id": 2622, + "nodeType": "Block", + "src": "2407:78:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2614, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2445:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2613, + "name": "asAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2557, + "src": "2435:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (address)" + } + }, + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2435:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2611, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2427:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2419:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2618, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2462:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2462:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2419:61:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2621, + "nodeType": "Return", + "src": "2412:68:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2501:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2624, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "2492:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2492:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2638, + "nodeType": "IfStatement", + "src": "2488:94:9", + "trueBody": { + "id": 2637, + "nodeType": "Block", + "src": "2514:68:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2630, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2543:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2629, + "name": "asMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2578, + "src": "2534:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" + } + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2534:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2526:29:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2633, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2559:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2559:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2526:51:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2636, + "nodeType": "Return", + "src": "2519:58:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2640, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2604:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2639, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2589:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2653, + "nodeType": "IfStatement", + "src": "2585:106:9", + "trueBody": { + "id": 2652, + "nodeType": "Block", + "src": "2617:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2645, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2652:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2644, + "name": "asCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2599, + "src": "2637:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" + } + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2637:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2629:35:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2648, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2668:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2629:57:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2651, + "nodeType": "Return", + "src": "2622:64:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2701:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2605, + "id": 2655, + "nodeType": "Return", + "src": "2694:12:9" + } + ] + }, + "documentation": null, + "id": 2657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isValid", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2601, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2311:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2600, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2311:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2310:36:9" + }, + "returnParameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2370:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2603, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2370:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2369:6:9" + }, + "scope": 2658, + "src": "2294:416:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2876, + "src": "1070:1642:9" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2659, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "2741:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 2660, + "nodeType": "InheritanceSpecifier", + "src": "2741:7:9" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2875, + "linearizedBaseContracts": [ + 2875, + 3402, + 3293 + ], + "name": "ChannelStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2664, + "mutability": "mutable", + "name": "channelById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2755:47:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2764:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "2755:27:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "valueType": { + "contractScope": null, + "id": 2662, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "2774:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "71fff9c5", + "id": 2670, + "mutability": "mutable", + "name": "channelCountByOwnership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2864:76:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "typeName": { + "id": 2669, + "keyType": { + "id": 2665, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2873:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "2864:45:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "valueType": { + "id": 2668, + "keyType": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2882:26:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + }, + "valueType": { + "id": 2667, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2901:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f4606f00", + "id": 2673, + "mutability": "mutable", + "name": "nextChannelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2946:31:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2671, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2946:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2976:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "id": 2676, + "libraryName": { + "contractScope": null, + "id": 2674, + "name": "SafeMath32", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2067, + "src": "2987:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath32_$2067", + "typeString": "library SafeMath32" + } + }, + "nodeType": "UsingForDirective", + "src": "2981:28:9", + "typeName": { + "id": 2675, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3002:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + { + "id": 2679, + "libraryName": { + "contractScope": null, + "id": 2677, + "name": "SafeMath64", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2262, + "src": "3017:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath64_$2262", + "typeString": "library SafeMath64" + } + }, + "nodeType": "UsingForDirective", + "src": "3011:28:9", + "typeName": { + "id": 2678, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3032:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + { + "body": { + "id": 2695, + "nodeType": "Block", + "src": "3123:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3201:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2684, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3127:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2689, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3151:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3151:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2690, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2687, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2688, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3177:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "3127:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3127:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2694, + "nodeType": "ExpressionStatement", + "src": "3127:76:9" + } + ] + }, + "documentation": null, + "id": 2696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_incCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2681, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2696, + "src": "3073:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2680, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3073:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3072:36:9" + }, + "returnParameters": { + "id": 2683, + "nodeType": "ParameterList", + "parameters": [], + "src": "3123:0:9" + }, + "scope": 2875, + "src": "3042:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2712, + "nodeType": "Block", + "src": "3291:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3369:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2701, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3295:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2706, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2702, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3319:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3319:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2707, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2704, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3345:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3345:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1917, + "src": "3295:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3295:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2711, + "nodeType": "ExpressionStatement", + "src": "3295:76:9" + } + ] + }, + "documentation": null, + "id": 2713, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_decCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2698, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2713, + "src": "3241:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2697, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3241:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3240:36:9" + }, + "returnParameters": { + "id": 2700, + "nodeType": "ParameterList", + "parameters": [], + "src": "3291:0:9" + }, + "scope": 2875, + "src": "3210:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2756, + "nodeType": "Block", + "src": "3472:344:9", + "statements": [ + { + "assignments": [ + 2723 + ], + "declarations": [ + { + "constant": false, + "id": 2723, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3476:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2722, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3476:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2725, + "initialValue": { + "argumentTypes": null, + "id": 2724, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3495:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3476:32:9" + }, + { + "assignments": [ + 2727 + ], + "declarations": [ + { + "constant": false, + "id": 2727, + "mutability": "mutable", + "name": "newChannel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3533:26:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2726, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3533:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2731, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2728, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3562:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2730, + "indexExpression": { + "argumentTypes": null, + "id": 2729, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3574:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3562:22:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3533:51:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2732, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3613:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "3613:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3637:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3613:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "3613:28:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2738, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3645:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "3645:20:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2741, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "3645:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2743, + "nodeType": "ExpressionStatement", + "src": "3645:33:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2745, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3757:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2744, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "3736:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3736:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2747, + "nodeType": "ExpressionStatement", + "src": "3736:32:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3790:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2748, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3772:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "3772:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3772:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2753, + "nodeType": "ExpressionStatement", + "src": "3772:20:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2754, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3803:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2721, + "id": 2755, + "nodeType": "Return", + "src": "3796:16:9" + } + ] + }, + "documentation": null, + "functionSelector": "e35213d8", + "id": 2757, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2718, + "modifierName": { + "argumentTypes": null, + "id": 2717, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "3445:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3445:9:9" + } + ], + "name": "addChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2715, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3402:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2714, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3402:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3401:36:9" + }, + "returnParameters": { + "id": 2721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2720, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3464:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2719, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3464:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3463:8:9" + }, + "scope": 2875, + "src": "3381:435:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2778, + "nodeType": "Block", + "src": "3945:144:9", + "statements": [ + { + "assignments": [ + 2765 + ], + "declarations": [ + { + "constant": false, + "id": 2765, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2778, + "src": "3949:22:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2764, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3949:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2769, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2766, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3974:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2768, + "indexExpression": { + "argumentTypes": null, + "id": 2767, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2759, + "src": "3986:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3974:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3949:48:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2771, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4009:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "4009:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4029:37:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + }, + "value": "Trying to access unexisting channel" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + } + ], + "id": 2770, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4001:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4001:66:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2775, + "nodeType": "ExpressionStatement", + "src": "4001:66:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2776, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4078:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "functionReturnParameters": 2763, + "id": 2777, + "nodeType": "Return", + "src": "4071:14:9" + } + ] + }, + "documentation": null, + "functionSelector": "678d913d", + "id": 2779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2759, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3889:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2758, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3889:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3888:19:9" + }, + "returnParameters": { + "id": 2763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2762, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3929:14:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2761, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3929:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3928:16:9" + }, + "scope": 2875, + "src": "3861:228:9", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2809, + "nodeType": "Block", + "src": "4193:170:9", + "statements": [ + { + "assignments": [ + 2789 + ], + "declarations": [ + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2809, + "src": "4197:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2788, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4197:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2793, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2790, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4223:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2792, + "indexExpression": { + "argumentTypes": null, + "id": 2791, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2781, + "src": "4235:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4223:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4197:49:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2795, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4271:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2796, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4271:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2794, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4250:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4250:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2798, + "nodeType": "ExpressionStatement", + "src": "4250:39:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2799, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4293:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4293:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2802, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4313:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "4293:30:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2804, + "nodeType": "ExpressionStatement", + "src": "4293:30:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2806, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4348:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2805, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "4327:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4327:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2808, + "nodeType": "ExpressionStatement", + "src": "4327:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "33364dca", + "id": 2810, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2786, + "modifierName": { + "argumentTypes": null, + "id": 2785, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4183:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4183:9:9" + } + ], + "name": "updateOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2781, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4121:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2780, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4121:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2783, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4140:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2782, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "4140:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4120:55:9" + }, + "returnParameters": { + "id": 2787, + "nodeType": "ParameterList", + "parameters": [], + "src": "4193:0:9" + }, + "scope": 2875, + "src": "4095:268:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2831, + "nodeType": "Block", + "src": "4444:89:9", + "statements": [ + { + "assignments": [ + 2820 + ], + "declarations": [ + { + "constant": false, + "id": 2820, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2831, + "src": "4448:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2819, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4448:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2824, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2821, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4474:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2823, + "indexExpression": { + "argumentTypes": null, + "id": 2822, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "4486:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4474:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4448:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2825, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2820, + "src": "4501:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "4501:16:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2828, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2814, + "src": "4520:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4501:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2830, + "nodeType": "ExpressionStatement", + "src": "4501:28:9" + } + ] + }, + "documentation": null, + "functionSelector": "b5b9dc91", + "id": 2832, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2817, + "modifierName": { + "argumentTypes": null, + "id": 2816, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4434:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4434:9:9" + } + ], + "name": "updateStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2812, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4392:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2811, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4392:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2814, + "mutability": "mutable", + "name": "_isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4411:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2813, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4411:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4391:35:9" + }, + "returnParameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [], + "src": "4444:0:9" + }, + "scope": 2875, + "src": "4369:164:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2853, + "nodeType": "Block", + "src": "4626:93:9", + "statements": [ + { + "assignments": [ + 2842 + ], + "declarations": [ + { + "constant": false, + "id": 2842, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2853, + "src": "4630:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2841, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4630:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2846, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2843, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4656:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2845, + "indexExpression": { + "argumentTypes": null, + "id": 2844, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2834, + "src": "4668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4656:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4630:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2847, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2842, + "src": "4683:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "4683:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2850, + "name": "_videoLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2836, + "src": "4704:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4683:32:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2852, + "nodeType": "ExpressionStatement", + "src": "4683:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "64c8121f", + "id": 2854, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2839, + "modifierName": { + "argumentTypes": null, + "id": 2838, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4616:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4616:9:9" + } + ], + "name": "setChannelVideoLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2834, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4570:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2833, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4570:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2836, + "mutability": "mutable", + "name": "_videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4589:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2835, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4589:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4569:39:9" + }, + "returnParameters": { + "id": 2840, + "nodeType": "ParameterList", + "parameters": [], + "src": "4626:0:9" + }, + "scope": 2875, + "src": "4539:180:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2873, + "nodeType": "Block", + "src": "4785:97:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2862, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4810:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2864, + "indexExpression": { + "argumentTypes": null, + "id": 2863, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4822:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4810:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "id": 2865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4810:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2861, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4789:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4789:55:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2867, + "nodeType": "ExpressionStatement", + "src": "4789:55:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4848:30:9", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2868, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4855:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2870, + "indexExpression": { + "argumentTypes": null, + "id": 2869, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4867:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4855:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2872, + "nodeType": "ExpressionStatement", + "src": "4848:30:9" + } + ] + }, + "documentation": null, + "functionSelector": "614265ee", + "id": 2874, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2859, + "modifierName": { + "argumentTypes": null, + "id": 2858, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4775:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4775:9:9" + } + ], + "name": "removeChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2856, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2874, + "src": "4749:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2855, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4749:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4748:19:9" + }, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [], + "src": "4785:0:9" + }, + "scope": 2875, + "src": "4725:157:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2876, + "src": "2714:2170:9" + } + ], + "src": "0:4885:9" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "exportedSymbols": { + "Channel": [ + 2478 + ], + "ChannelOwnerType": [ + 2482 + ], + "ChannelOwnership": [ + 2469 + ], + "ChannelOwnershipDecoder": [ + 2658 + ], + "ChannelStorage": [ + 2875 + ] + }, + "id": 2876, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2459, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:9" + }, + { + "id": 2460, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:9" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 2461, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3403, + "src": "59:71:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "id": 2462, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3599, + "src": "131:70:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "file": "../lib/SafeMath32.sol", + "id": 2463, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2068, + "src": "202:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "file": "../lib/SafeMath64.sol", + "id": 2464, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2263, + "src": "234:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "ChannelOwnership", + "id": 2469, + "members": [ + { + "constant": false, + "id": 2466, + "mutability": "mutable", + "name": "ownershipType", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "561:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2465, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "561:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "mutability": "mutable", + "name": "ownerId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "583:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "583:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ChannelOwnership", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "531:70:9", + "visibility": "public" + }, + { + "canonicalName": "Channel", + "id": 2478, + "members": [ + { + "constant": false, + "id": 2471, + "mutability": "mutable", + "name": "ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "687:26:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2470, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "687:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2473, + "mutability": "mutable", + "name": "isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "719:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2472, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2475, + "mutability": "mutable", + "name": "videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "735:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2474, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "735:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2477, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "777:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2476, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "777:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Channel", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "666:129:9", + "visibility": "public" + }, + { + "canonicalName": "ChannelOwnerType", + "id": 2482, + "members": [ + { + "id": 2479, + "name": "Address", + "nodeType": "EnumValue", + "src": "1038:7:9" + }, + { + "id": 2480, + "name": "Member", + "nodeType": "EnumValue", + "src": "1047:6:9" + }, + { + "id": 2481, + "name": "CuratorGroup", + "nodeType": "EnumValue", + "src": "1055:12:9" + } + ], + "name": "ChannelOwnerType", + "nodeType": "EnumDefinition", + "src": "1014:55:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2658, + "linearizedBaseContracts": [ + 2658 + ], + "name": "ChannelOwnershipDecoder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2498, + "nodeType": "Block", + "src": "1189:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2489, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2484, + "src": "1200:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2490, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1200:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2493, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1234:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Address", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1234:24:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2491, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1228:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1200:59:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2488, + "id": 2497, + "nodeType": "Return", + "src": "1193:66:9" + } + ] + }, + "documentation": null, + "id": 2499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2484, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1124:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2483, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1124:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1123:36:9" + }, + "returnParameters": { + "id": 2488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2487, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1183:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2486, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1183:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1182:6:9" + }, + "scope": 2658, + "src": "1105:158:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2515, + "nodeType": "Block", + "src": "1349:73:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2506, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "1360:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1360:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2510, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1394:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Member", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1394:23:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2508, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1360:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2505, + "id": 2514, + "nodeType": "Return", + "src": "1353:65:9" + } + ] + }, + "documentation": null, + "id": 2516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2501, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1284:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2500, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1284:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1283:36:9" + }, + "returnParameters": { + "id": 2505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1343:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2503, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1343:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1342:6:9" + }, + "scope": 2658, + "src": "1266:156:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2532, + "nodeType": "Block", + "src": "1514:79:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2523, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2518, + "src": "1525:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2524, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1525:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2527, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1559:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "CuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1559:29:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2525, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1553:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1525:64:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2522, + "id": 2531, + "nodeType": "Return", + "src": "1518:71:9" + } + ] + }, + "documentation": null, + "id": 2533, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2518, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1449:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2517, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1449:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1448:36:9" + }, + "returnParameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1508:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2520, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1508:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1507:6:9" + }, + "scope": 2658, + "src": "1425:168:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2556, + "nodeType": "Block", + "src": "1683:147:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2542, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1709:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2541, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "1699:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1725:50:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + }, + "value": "asAddress called on non-address ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + } + ], + "id": 2540, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1687:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1687:92:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2546, + "nodeType": "ExpressionStatement", + "src": "1687:92:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2551, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1806:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "1806:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2549, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1798:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1790:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2539, + "id": 2555, + "nodeType": "Return", + "src": "1783:43:9" + } + ] + }, + "documentation": null, + "id": 2557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2535, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1615:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2534, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1615:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:36:9" + }, + "returnParameters": { + "id": 2539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1674:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1674:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1673:9:9" + }, + "scope": 2658, + "src": "1596:234:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2577, + "nodeType": "Block", + "src": "1918:134:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2566, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "1943:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2565, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "1934:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1934:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1959:48:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + }, + "value": "asMember called on non-member ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + } + ], + "id": 2564, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1922:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1922:89:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2570, + "nodeType": "ExpressionStatement", + "src": "1922:89:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2573, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "2029:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2029:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 2571, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2022:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2563, + "id": 2576, + "nodeType": "Return", + "src": "2015:33:9" + } + ] + }, + "documentation": null, + "id": 2578, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2559, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1851:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2558, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1851:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1850:36:9" + }, + "returnParameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1910:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2561, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1910:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1909:8:9" + }, + "scope": 2658, + "src": "1833:219:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2598, + "nodeType": "Block", + "src": "2146:145:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2587, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2586, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2162:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2162:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2193:53:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + }, + "value": "asCuratorGroup called on non-group ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + } + ], + "id": 2585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2150:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:100:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2591, + "nodeType": "ExpressionStatement", + "src": "2150:100:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2594, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2268:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2595, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2268:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 2592, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2261:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 2584, + "id": 2597, + "nodeType": "Return", + "src": "2254:33:9" + } + ] + }, + "documentation": null, + "id": 2599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2079:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2579, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2079:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2078:36:9" + }, + "returnParameters": { + "id": 2584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2138:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2582, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2138:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2137:8:9" + }, + "scope": 2658, + "src": "2055:236:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2656, + "nodeType": "Block", + "src": "2376:334:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2607, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2394:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2606, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "2384:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2384:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2623, + "nodeType": "IfStatement", + "src": "2380:105:9", + "trueBody": { + "id": 2622, + "nodeType": "Block", + "src": "2407:78:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2614, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2445:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2613, + "name": "asAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2557, + "src": "2435:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (address)" + } + }, + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2435:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2611, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2427:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2419:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2618, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2462:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2462:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2419:61:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2621, + "nodeType": "Return", + "src": "2412:68:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2501:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2624, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "2492:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2492:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2638, + "nodeType": "IfStatement", + "src": "2488:94:9", + "trueBody": { + "id": 2637, + "nodeType": "Block", + "src": "2514:68:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2630, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2543:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2629, + "name": "asMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2578, + "src": "2534:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" + } + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2534:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2526:29:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2633, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2559:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2559:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2526:51:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2636, + "nodeType": "Return", + "src": "2519:58:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2640, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2604:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2639, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2589:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2653, + "nodeType": "IfStatement", + "src": "2585:106:9", + "trueBody": { + "id": 2652, + "nodeType": "Block", + "src": "2617:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2645, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2652:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2644, + "name": "asCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2599, + "src": "2637:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" + } + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2637:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2629:35:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2648, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2668:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2629:57:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2651, + "nodeType": "Return", + "src": "2622:64:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2701:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2605, + "id": 2655, + "nodeType": "Return", + "src": "2694:12:9" + } + ] + }, + "documentation": null, + "id": 2657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isValid", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2601, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2311:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2600, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2311:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2310:36:9" + }, + "returnParameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2370:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2603, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2370:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2369:6:9" + }, + "scope": 2658, + "src": "2294:416:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2876, + "src": "1070:1642:9" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2659, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "2741:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 2660, + "nodeType": "InheritanceSpecifier", + "src": "2741:7:9" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2875, + "linearizedBaseContracts": [ + 2875, + 3402, + 3293 + ], + "name": "ChannelStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2664, + "mutability": "mutable", + "name": "channelById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2755:47:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2764:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "2755:27:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "valueType": { + "contractScope": null, + "id": 2662, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "2774:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "71fff9c5", + "id": 2670, + "mutability": "mutable", + "name": "channelCountByOwnership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2864:76:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "typeName": { + "id": 2669, + "keyType": { + "id": 2665, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2873:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "2864:45:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "valueType": { + "id": 2668, + "keyType": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2882:26:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + }, + "valueType": { + "id": 2667, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2901:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f4606f00", + "id": 2673, + "mutability": "mutable", + "name": "nextChannelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2946:31:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2671, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2946:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2976:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "id": 2676, + "libraryName": { + "contractScope": null, + "id": 2674, + "name": "SafeMath32", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2067, + "src": "2987:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath32_$2067", + "typeString": "library SafeMath32" + } + }, + "nodeType": "UsingForDirective", + "src": "2981:28:9", + "typeName": { + "id": 2675, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3002:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + { + "id": 2679, + "libraryName": { + "contractScope": null, + "id": 2677, + "name": "SafeMath64", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2262, + "src": "3017:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath64_$2262", + "typeString": "library SafeMath64" + } + }, + "nodeType": "UsingForDirective", + "src": "3011:28:9", + "typeName": { + "id": 2678, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3032:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + { + "body": { + "id": 2695, + "nodeType": "Block", + "src": "3123:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3201:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2684, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3127:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2689, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3151:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3151:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2690, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2687, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2688, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3177:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "3127:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3127:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2694, + "nodeType": "ExpressionStatement", + "src": "3127:76:9" + } + ] + }, + "documentation": null, + "id": 2696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_incCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2681, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2696, + "src": "3073:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2680, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3073:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3072:36:9" + }, + "returnParameters": { + "id": 2683, + "nodeType": "ParameterList", + "parameters": [], + "src": "3123:0:9" + }, + "scope": 2875, + "src": "3042:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2712, + "nodeType": "Block", + "src": "3291:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3369:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2701, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3295:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2706, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2702, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3319:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3319:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2707, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2704, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3345:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3345:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1917, + "src": "3295:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3295:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2711, + "nodeType": "ExpressionStatement", + "src": "3295:76:9" + } + ] + }, + "documentation": null, + "id": 2713, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_decCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2698, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2713, + "src": "3241:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2697, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3241:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3240:36:9" + }, + "returnParameters": { + "id": 2700, + "nodeType": "ParameterList", + "parameters": [], + "src": "3291:0:9" + }, + "scope": 2875, + "src": "3210:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2756, + "nodeType": "Block", + "src": "3472:344:9", + "statements": [ + { + "assignments": [ + 2723 + ], + "declarations": [ + { + "constant": false, + "id": 2723, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3476:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2722, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3476:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2725, + "initialValue": { + "argumentTypes": null, + "id": 2724, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3495:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3476:32:9" + }, + { + "assignments": [ + 2727 + ], + "declarations": [ + { + "constant": false, + "id": 2727, + "mutability": "mutable", + "name": "newChannel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3533:26:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2726, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3533:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2731, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2728, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3562:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2730, + "indexExpression": { + "argumentTypes": null, + "id": 2729, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3574:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3562:22:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3533:51:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2732, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3613:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "3613:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3637:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3613:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "3613:28:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2738, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3645:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "3645:20:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2741, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "3645:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2743, + "nodeType": "ExpressionStatement", + "src": "3645:33:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2745, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3757:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2744, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "3736:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3736:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2747, + "nodeType": "ExpressionStatement", + "src": "3736:32:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3790:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2748, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3772:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "3772:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3772:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2753, + "nodeType": "ExpressionStatement", + "src": "3772:20:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2754, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3803:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2721, + "id": 2755, + "nodeType": "Return", + "src": "3796:16:9" + } + ] + }, + "documentation": null, + "functionSelector": "e35213d8", + "id": 2757, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2718, + "modifierName": { + "argumentTypes": null, + "id": 2717, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "3445:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3445:9:9" + } + ], + "name": "addChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2715, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3402:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2714, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3402:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3401:36:9" + }, + "returnParameters": { + "id": 2721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2720, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3464:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2719, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3464:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3463:8:9" + }, + "scope": 2875, + "src": "3381:435:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2778, + "nodeType": "Block", + "src": "3945:144:9", + "statements": [ + { + "assignments": [ + 2765 + ], + "declarations": [ + { + "constant": false, + "id": 2765, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2778, + "src": "3949:22:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2764, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3949:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2769, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2766, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3974:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2768, + "indexExpression": { + "argumentTypes": null, + "id": 2767, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2759, + "src": "3986:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3974:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3949:48:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2771, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4009:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "4009:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4029:37:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + }, + "value": "Trying to access unexisting channel" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + } + ], + "id": 2770, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4001:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4001:66:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2775, + "nodeType": "ExpressionStatement", + "src": "4001:66:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2776, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4078:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "functionReturnParameters": 2763, + "id": 2777, + "nodeType": "Return", + "src": "4071:14:9" + } + ] + }, + "documentation": null, + "functionSelector": "678d913d", + "id": 2779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2759, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3889:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2758, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3889:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3888:19:9" + }, + "returnParameters": { + "id": 2763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2762, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3929:14:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2761, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3929:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3928:16:9" + }, + "scope": 2875, + "src": "3861:228:9", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2809, + "nodeType": "Block", + "src": "4193:170:9", + "statements": [ + { + "assignments": [ + 2789 + ], + "declarations": [ + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2809, + "src": "4197:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2788, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4197:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2793, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2790, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4223:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2792, + "indexExpression": { + "argumentTypes": null, + "id": 2791, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2781, + "src": "4235:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4223:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4197:49:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2795, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4271:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2796, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4271:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2794, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4250:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4250:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2798, + "nodeType": "ExpressionStatement", + "src": "4250:39:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2799, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4293:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4293:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2802, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4313:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "4293:30:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2804, + "nodeType": "ExpressionStatement", + "src": "4293:30:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2806, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4348:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2805, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "4327:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4327:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2808, + "nodeType": "ExpressionStatement", + "src": "4327:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "33364dca", + "id": 2810, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2786, + "modifierName": { + "argumentTypes": null, + "id": 2785, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4183:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4183:9:9" + } + ], + "name": "updateOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2781, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4121:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2780, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4121:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2783, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4140:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2782, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "4140:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4120:55:9" + }, + "returnParameters": { + "id": 2787, + "nodeType": "ParameterList", + "parameters": [], + "src": "4193:0:9" + }, + "scope": 2875, + "src": "4095:268:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2831, + "nodeType": "Block", + "src": "4444:89:9", + "statements": [ + { + "assignments": [ + 2820 + ], + "declarations": [ + { + "constant": false, + "id": 2820, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2831, + "src": "4448:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2819, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4448:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2824, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2821, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4474:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2823, + "indexExpression": { + "argumentTypes": null, + "id": 2822, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "4486:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4474:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4448:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2825, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2820, + "src": "4501:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "4501:16:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2828, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2814, + "src": "4520:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4501:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2830, + "nodeType": "ExpressionStatement", + "src": "4501:28:9" + } + ] + }, + "documentation": null, + "functionSelector": "b5b9dc91", + "id": 2832, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2817, + "modifierName": { + "argumentTypes": null, + "id": 2816, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4434:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4434:9:9" + } + ], + "name": "updateStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2812, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4392:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2811, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4392:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2814, + "mutability": "mutable", + "name": "_isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4411:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2813, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4411:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4391:35:9" + }, + "returnParameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [], + "src": "4444:0:9" + }, + "scope": 2875, + "src": "4369:164:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2853, + "nodeType": "Block", + "src": "4626:93:9", + "statements": [ + { + "assignments": [ + 2842 + ], + "declarations": [ + { + "constant": false, + "id": 2842, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2853, + "src": "4630:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2841, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4630:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2846, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2843, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4656:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2845, + "indexExpression": { + "argumentTypes": null, + "id": 2844, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2834, + "src": "4668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4656:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4630:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2847, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2842, + "src": "4683:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "4683:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2850, + "name": "_videoLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2836, + "src": "4704:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4683:32:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2852, + "nodeType": "ExpressionStatement", + "src": "4683:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "64c8121f", + "id": 2854, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2839, + "modifierName": { + "argumentTypes": null, + "id": 2838, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4616:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4616:9:9" + } + ], + "name": "setChannelVideoLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2834, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4570:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2833, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4570:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2836, + "mutability": "mutable", + "name": "_videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4589:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2835, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4589:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4569:39:9" + }, + "returnParameters": { + "id": 2840, + "nodeType": "ParameterList", + "parameters": [], + "src": "4626:0:9" + }, + "scope": 2875, + "src": "4539:180:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2873, + "nodeType": "Block", + "src": "4785:97:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2862, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4810:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2864, + "indexExpression": { + "argumentTypes": null, + "id": 2863, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4822:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4810:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "id": 2865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4810:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2861, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4789:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4789:55:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2867, + "nodeType": "ExpressionStatement", + "src": "4789:55:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4848:30:9", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2868, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4855:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2870, + "indexExpression": { + "argumentTypes": null, + "id": 2869, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4867:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4855:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2872, + "nodeType": "ExpressionStatement", + "src": "4848:30:9" + } + ] + }, + "documentation": null, + "functionSelector": "614265ee", + "id": 2874, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2859, + "modifierName": { + "argumentTypes": null, + "id": 2858, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4775:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4775:9:9" + } + ], + "name": "removeChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2856, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2874, + "src": "4749:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2855, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4749:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4748:19:9" + }, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [], + "src": "4785:0:9" + }, + "scope": 2875, + "src": "4725:157:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2876, + "src": "2714:2170:9" + } + ], + "src": "0:4885:9" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.571Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/ChannelStorage.json b/smart-contracts/build/contracts/ChannelStorage.json new file mode 100644 index 0000000000..164fc87b24 --- /dev/null +++ b/smart-contracts/build/contracts/ChannelStorage.json @@ -0,0 +1,11100 @@ +{ + "contractName": "ChannelStorage", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "channelCountByOwnership", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nextChannelId", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint8", + "name": "ownershipType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "ownerId", + "type": "uint256" + } + ], + "internalType": "struct ChannelOwnership", + "name": "_ownership", + "type": "tuple" + } + ], + "name": "addChannel", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + } + ], + "name": "getExistingChannel", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint8", + "name": "ownershipType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "ownerId", + "type": "uint256" + } + ], + "internalType": "struct ChannelOwnership", + "name": "ownership", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + }, + { + "internalType": "uint32", + "name": "videoLimit", + "type": "uint32" + }, + { + "internalType": "bool", + "name": "isExisting", + "type": "bool" + } + ], + "internalType": "struct Channel", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "ownershipType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "ownerId", + "type": "uint256" + } + ], + "internalType": "struct ChannelOwnership", + "name": "_ownership", + "type": "tuple" + } + ], + "name": "updateOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "_isActive", + "type": "bool" + } + ], + "name": "updateStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "internalType": "uint32", + "name": "_videoLimit", + "type": "uint32" + } + ], + "name": "setChannelVideoLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + } + ], + "name": "removeChannel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"addChannel\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"channelCountByOwnership\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"getExistingChannel\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"ownership\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"videoLimit\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isExisting\",\"type\":\"bool\"}],\"internalType\":\"struct Channel\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextChannelId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"removeChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"_videoLimit\",\"type\":\"uint32\"}],\"name\":\"setChannelVideoLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"updateOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isActive\",\"type\":\"bool\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":\"ChannelStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":{\"keccak256\":\"0x2c0b74ba427192750d9ae3532ca9a5ca8bf55c78d42b31b5fd884c8446e236b7\",\"urls\":[\"bzz-raw://8de586eee05bb472e60c7f6dfde1deabe8d88b911bb24a25b835423b968e5853\",\"dweb:/ipfs/QmPxGyc41DfVWHd2dACS65HuAays534bFcPivqBSJ7ojgJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", + "bytecode": "0x6080604052600380546001600160401b031916600117905534801561002357600080fd5b50600061002e61007d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610081565b3390565b610bbe806100906000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c806333364dca1461009e578063614265ee146100b357806364c8121f146100c6578063678d913d146100d9578063715018a61461010257806371fff9c51461010a5780638da5cb5b1461012a578063b5b9dc911461013f578063e35213d814610152578063f2fde38b14610172578063f4606f0014610185575b600080fd5b6100b16100ac3660046108f9565b61018d565b005b6100b16100c1366004610896565b610230565b6100b16100d436600461092e565b6102db565b6100ec6100e7366004610896565b61034c565b6040516100f99190610ae7565b60405180910390f35b6100b16103f2565b61011d610118366004610963565b61045f565b6040516100f99190610b2b565b610132610482565b6040516100f9919061098d565b6100b161014d3660046108b2565b610491565b61016561016036600461087b565b6104f4565b6040516100f99190610b3c565b6100b1610180366004610854565b6105a0565b610165610644565b610195610653565b6000546001600160a01b039081169116146101cb5760405162461bcd60e51b81526004016101c290610a6f565b60405180910390fd5b6001600160401b0382166000908152600160208181526040928390208351808501909452805460ff16845291820154908301529061020890610657565b8151815460ff191660ff9091161781556020820151600182015561022b82610693565b505050565b610238610653565b6000546001600160a01b039081169116146102655760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b0381166000908152600160208181526040928390208351808501909452805460ff16845290910154908201526102a190610657565b6001600160401b031660009081526001602081905260408220805460ff1916815590810191909155600201805465ffffffffffff19169055565b6102e3610653565b6000546001600160a01b039081169116146103105760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b039091166000908152600160205260409020600201805463ffffffff9092166101000264ffffffff0019909216919091179055565b6103546107ac565b61035c6107ac565b506001600160401b038216600090815260016020818152604092839020835160c081018552815460ff908116608083019081529483015460a083015293815260029091015480841615159282019290925263ffffffff61010083041693810193909352600160281b9004161515606082018190526103ec5760405162461bcd60e51b81526004016101c290610aa4565b92915050565b6103fa610653565b6000546001600160a01b039081169116146104275760405162461bcd60e51b81526004016101c290610a6f565b600080546040516001600160a01b0390911690600080516020610b69833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205463ffffffff1681565b6000546001600160a01b031690565b610499610653565b6000546001600160a01b039081169116146104c65760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b03919091166000908152600160205260409020600201805460ff1916911515919091179055565b60006104fe610653565b6000546001600160a01b0390811691161461052b5760405162461bcd60e51b81526004016101c290610a6f565b6003546001600160401b03166000818152600160208181526040909220600281018054600160281b60ff60281b199091161790558551815460ff191660ff909116178155918501519082015561058084610693565b600354610597906001600160401b031660016106cb565b50909392505050565b6105a8610653565b6000546001600160a01b039081169116146105d55760405162461bcd60e51b81526004016101c290610a6f565b6001600160a01b0381166105fb5760405162461bcd60e51b81526004016101c2906109f4565b600080546040516001600160a01b0380851693921691600080516020610b6983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160401b031681565b3390565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061070316565b5050565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061074516565b60008282016001600160401b0380851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b9392505050565b60006106fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610773565b600082820163ffffffff80851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b60008363ffffffff168363ffffffff16111582906107a45760405162461bcd60e51b81526004016101c291906109a1565b505050900390565b60405180608001604052806107bf6107da565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b600060408284031215610802578081fd5b604080519081016001600160401b0381118282101715610820578283fd5b6040529050806108308484610843565b8152602083013560208201525092915050565b803560ff811681146103ec57600080fd5b600060208284031215610865578081fd5b81356001600160a01b03811681146106fc578182fd5b60006040828403121561088c578081fd5b6106fc83836107f1565b6000602082840312156108a7578081fd5b81356106fc81610b50565b600080604083850312156108c4578081fd5b82356001600160401b03811681146108da578182fd5b9150602083013580151581146108ee578182fd5b809150509250929050565b6000806060838503121561090b578182fd5b823561091681610b50565b915061092584602085016107f1565b90509250929050565b60008060408385031215610940578182fd5b823561094b81610b50565b9150602083013563ffffffff811681146108ee578182fd5b60008060408385031215610975578182fd5b61097f8484610843565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156109cd578581018301518582016040015282016109b1565b818111156109de5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f547279696e6720746f2061636365737320756e6578697374696e67206368616e6040820152621b995b60ea1b606082015260800190565b8151805160ff16825260209081015181830152820151151560408083019190915282015163ffffffff16606080830191909152909101511515608082015260a00190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0381168114610b6557600080fd5b5056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220fd1de33b4564704a78e4e0fa0c0dc4f9884d1a1ce0df0d7ef018c774b7655ffe64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100995760003560e01c806333364dca1461009e578063614265ee146100b357806364c8121f146100c6578063678d913d146100d9578063715018a61461010257806371fff9c51461010a5780638da5cb5b1461012a578063b5b9dc911461013f578063e35213d814610152578063f2fde38b14610172578063f4606f0014610185575b600080fd5b6100b16100ac3660046108f9565b61018d565b005b6100b16100c1366004610896565b610230565b6100b16100d436600461092e565b6102db565b6100ec6100e7366004610896565b61034c565b6040516100f99190610ae7565b60405180910390f35b6100b16103f2565b61011d610118366004610963565b61045f565b6040516100f99190610b2b565b610132610482565b6040516100f9919061098d565b6100b161014d3660046108b2565b610491565b61016561016036600461087b565b6104f4565b6040516100f99190610b3c565b6100b1610180366004610854565b6105a0565b610165610644565b610195610653565b6000546001600160a01b039081169116146101cb5760405162461bcd60e51b81526004016101c290610a6f565b60405180910390fd5b6001600160401b0382166000908152600160208181526040928390208351808501909452805460ff16845291820154908301529061020890610657565b8151815460ff191660ff9091161781556020820151600182015561022b82610693565b505050565b610238610653565b6000546001600160a01b039081169116146102655760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b0381166000908152600160208181526040928390208351808501909452805460ff16845290910154908201526102a190610657565b6001600160401b031660009081526001602081905260408220805460ff1916815590810191909155600201805465ffffffffffff19169055565b6102e3610653565b6000546001600160a01b039081169116146103105760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b039091166000908152600160205260409020600201805463ffffffff9092166101000264ffffffff0019909216919091179055565b6103546107ac565b61035c6107ac565b506001600160401b038216600090815260016020818152604092839020835160c081018552815460ff908116608083019081529483015460a083015293815260029091015480841615159282019290925263ffffffff61010083041693810193909352600160281b9004161515606082018190526103ec5760405162461bcd60e51b81526004016101c290610aa4565b92915050565b6103fa610653565b6000546001600160a01b039081169116146104275760405162461bcd60e51b81526004016101c290610a6f565b600080546040516001600160a01b0390911690600080516020610b69833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205463ffffffff1681565b6000546001600160a01b031690565b610499610653565b6000546001600160a01b039081169116146104c65760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b03919091166000908152600160205260409020600201805460ff1916911515919091179055565b60006104fe610653565b6000546001600160a01b0390811691161461052b5760405162461bcd60e51b81526004016101c290610a6f565b6003546001600160401b03166000818152600160208181526040909220600281018054600160281b60ff60281b199091161790558551815460ff191660ff909116178155918501519082015561058084610693565b600354610597906001600160401b031660016106cb565b50909392505050565b6105a8610653565b6000546001600160a01b039081169116146105d55760405162461bcd60e51b81526004016101c290610a6f565b6001600160a01b0381166105fb5760405162461bcd60e51b81526004016101c2906109f4565b600080546040516001600160a01b0380851693921691600080516020610b6983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160401b031681565b3390565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061070316565b5050565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061074516565b60008282016001600160401b0380851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b9392505050565b60006106fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610773565b600082820163ffffffff80851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b60008363ffffffff168363ffffffff16111582906107a45760405162461bcd60e51b81526004016101c291906109a1565b505050900390565b60405180608001604052806107bf6107da565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b600060408284031215610802578081fd5b604080519081016001600160401b0381118282101715610820578283fd5b6040529050806108308484610843565b8152602083013560208201525092915050565b803560ff811681146103ec57600080fd5b600060208284031215610865578081fd5b81356001600160a01b03811681146106fc578182fd5b60006040828403121561088c578081fd5b6106fc83836107f1565b6000602082840312156108a7578081fd5b81356106fc81610b50565b600080604083850312156108c4578081fd5b82356001600160401b03811681146108da578182fd5b9150602083013580151581146108ee578182fd5b809150509250929050565b6000806060838503121561090b578182fd5b823561091681610b50565b915061092584602085016107f1565b90509250929050565b60008060408385031215610940578182fd5b823561094b81610b50565b9150602083013563ffffffff811681146108ee578182fd5b60008060408385031215610975578182fd5b61097f8484610843565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156109cd578581018301518582016040015282016109b1565b818111156109de5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f547279696e6720746f2061636365737320756e6578697374696e67206368616e6040820152621b995b60ea1b606082015260800190565b8151805160ff16825260209081015181830152820151151560408083019190915282015163ffffffff16606080830191909152909101511515608082015260a00190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0381168114610b6557600080fd5b5056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220fd1de33b4564704a78e4e0fa0c0dc4f9884d1a1ce0df0d7ef018c774b7655ffe64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "2714:2170:9:-:0;;;2946:31;;;-1:-1:-1;;;;;;2946:31:9;2976:1;2946:31;;;2714:2170;;;;;;;;;-1:-1:-1;865:17:14;885:12;:10;:12::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:14;-1:-1:-1;;;;;907:18:14;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:14;940:43;;907:6;;940:43;831:159;2714:2170:9;;590:104:13;677:10;590:104;:::o;2714:2170:9:-;;;;;;;", + "deployedSourceMap": "2714:2170:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4095:268;;;;;;:::i;:::-;;:::i;:::-;;4725:157;;;;;;:::i;:::-;;:::i;4539:180::-;;;;;;:::i;:::-;;:::i;3861:228::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:145:14;;;:::i;2864:76:9:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1066:77:14:-;;;:::i;:::-;;;;;;;:::i;4369:164:9:-;;;;;;:::i;:::-;;:::i;3381:435::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1983:240:14:-;;;;;;:::i;:::-;;:::i;2946:31:9:-;;;:::i;4095:268::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;4223:23:9;::::1;4197;4223::::0;;;:11:::1;:23;::::0;;;;;;;;4250:39;;;;::::1;::::0;;;;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;4223:23;4250:39:::1;::::0;:20:::1;:39::i;:::-;4293:30:::0;;;;-1:-1:-1;;4293:30:9::1;;::::0;;::::1;;::::0;;::::1;::::0;::::1;::::0;-1:-1:-1;4293:30:9;::::1;::::0;4327:32:::1;4293:30:::0;4327:20:::1;:32::i;:::-;1339:1:14;4095:268:9::0;;:::o;4725:157::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;4810:23:9;::::1;;::::0;;;:11:::1;:23;::::0;;;;;;;;4789:55;;;;::::1;::::0;;;;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;:20:::1;:55::i;:::-;-1:-1:-1::0;;;;;4855:23:9::1;;::::0;;;:11:::1;:23;::::0;;;;;;4848:30;;-1:-1:-1;;4848:30:9::1;::::0;;;;::::1;::::0;;;;::::1;;::::0;;-1:-1:-1;;4848:30:9;;;4725:157::o;4539:180::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;4656:23:9;;::::1;4630;4656::::0;;;:11:::1;:23;::::0;;;;4683:18:::1;;:32:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;4683:32:9;;::::1;::::0;;;::::1;::::0;;4539:180::o;3861:228::-;3929:14;;:::i;:::-;3949:22;;:::i;:::-;-1:-1:-1;;;;;;3974:23:9;;;;;;:11;:23;;;;;;;;;3949:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3949:48:9;;;;;-1:-1:-1;3949:48:9;;;;;4001:66;;;;-1:-1:-1;;;4001:66:9;;;;;;;:::i;:::-;4078:7;3861:228;-1:-1:-1;;3861:228:9:o;1689:145:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:14;;::::1;::::0;-1:-1:-1;;;;;;;;;;;1758:40:14;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:14::1;::::0;;1689:145::o;2864:76:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1066:77:14:-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:14;1066:77;:::o;4369:164:9:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;4474:23:9;;;::::1;4448;4474::::0;;;:11:::1;:23;::::0;;;;4501:16:::1;;:28:::0;;-1:-1:-1;;4501:28:9::1;::::0;::::1;;::::0;;;::::1;::::0;;4369:164::o;3381:435::-;3464:6;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;3495:13:9::1;::::0;-1:-1:-1;;;;;3495:13:9::1;3476:16;3562:22:::0;;;3495:13;3562:22:::1;::::0;;;;;;;3613:21:::1;::::0;::::1;:28:::0;;-1:-1:-1;;;;;;;3613:28:9;;::::1;;::::0;;3645:33;;;;-1:-1:-1;;3645:33:9::1;3613:28;3645:33:::0;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;3736:32:::1;3645:33:::0;3736:20:::1;:32::i;:::-;3772:13;::::0;:20:::1;::::0;-1:-1:-1;;;;;3772:13:9::1;3790:1;3772:17;:20::i;:::-;-1:-1:-1::0;3803:9:9;;3381:435;-1:-1:-1;;;3381:435:9:o;1983:240:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2071:22:14;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:14::1;;;;;;;:::i;:::-;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:14;;::::1;::::0;2172:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2151:38:14;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:14::1;-1:-1:-1::0;;;;;2199:17:14;;;::::1;::::0;;;::::1;::::0;;1983:240::o;2946:31:9:-;;;-1:-1:-1;;;;;2946:31:9;;:::o;590:104:13:-;677:10;590:104;:::o;3210:165:9:-;3319:24;;3295:49;;;;;;:23;:49;;;;;;;;3345:18;;;;3295:69;;;;;;;;:76;;:69;;;;;3369:1;;3295:73;:76;:::i;:::-;;3210:165;:::o;3042:::-;3151:24;;3127:49;;;;;;:23;:49;;;;;;;;3177:18;;;;3127:69;;;;;;;;:76;;:69;;;;;3201:1;;3127:73;:76;:::i;324:172:7:-;380:6;409:5;;;-1:-1:-1;;;;;432:6:7;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:7;;;;;;;:::i;:::-;488:1;324:172;-1:-1:-1;;;324:172:7:o;767:131:6:-;823:6;848:43;852:1;855;848:43;;;;;;;;;;;;;;;;;:3;:43::i;324:172::-;380:6;409:5;;;432:6;;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:6;;;;;;;:::i;1189:183::-;1273:6;1304:1;1299:6;;:1;:6;;;;1307:12;1291:29;;;;;-1:-1:-1;;;1291:29:6;;;;;;;;:::i;:::-;-1:-1:-1;;;1341:5:6;;;1189:183::o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;303:486::-;;426:4;414:9;409:3;405:19;401:30;398:2;;;-1:-1;;434:12;398:2;426:4;10795:9;;;10827:17;;-1:-1;;;;;10887:34;;10923:22;;;10884:62;10881:2;;;-1:-1;;10949:12;10881:2;426:4;10968:22;453:29;-1:-1;453:29;573:47;616:3;592:22;573:47;:::i;:::-;555:16;548:73;685:2;743:9;739:22;863:20;685:2;704:5;700:16;693:75;;392:397;;;;:::o;1203:126::-;1268:20;;11969:4;11958:16;;13035:33;;13025:2;;13082:1;;13072:12;1336:241;;1440:2;1428:9;1419:7;1415:23;1411:32;1408:2;;;-1:-1;;1446:12;1408:2;72:20;;-1:-1;;;;;11555:54;;12427:35;;12417:2;;-1:-1;;12466:12;1584:309;;1722:2;1710:9;1701:7;1697:23;1693:32;1690:2;;;-1:-1;;1728:12;1690:2;1790:87;1869:7;1845:22;1790:87;:::i;1900:239::-;;2003:2;1991:9;1982:7;1978:23;1974:32;1971:2;;;-1:-1;;2009:12;1971:2;1147:6;1134:20;1159:32;1185:5;1159:32;:::i;2146:358::-;;;2263:2;2251:9;2242:7;2238:23;2234:32;2231:2;;;-1:-1;;2269:12;2231:2;1134:20;;-1:-1;;;;;11856:30;;12914:34;;12904:2;;-1:-1;;12952:12;12904:2;2321:62;-1:-1;2420:2;2456:22;;206:20;11467:13;;11460:21;12548:32;;12538:2;;-1:-1;;12584:12;12538:2;2428:60;;;;2225:279;;;;;:::o;2511:432::-;;;2665:2;2653:9;2644:7;2640:23;2636:32;2633:2;;;-1:-1;;2671:12;2633:2;1147:6;1134:20;1159:32;1185:5;1159:32;:::i;:::-;2723:62;-1:-1;2840:87;2919:7;2822:2;2895:22;;2840:87;:::i;:::-;2830:97;;2627:316;;;;;:::o;2950:362::-;;;3069:2;3057:9;3048:7;3044:23;3040:32;3037:2;;;-1:-1;;3075:12;3037:2;1147:6;1134:20;1159:32;1185:5;1159:32;:::i;:::-;3127:62;-1:-1;3226:2;3264:22;;999:20;11772:10;11761:22;;12792:34;;12782:2;;-1:-1;;12830:12;3319:362;;;3438:2;3426:9;3417:7;3413:23;3409:32;3406:2;;;-1:-1;;3444:12;3406:2;3506:51;3549:7;3525:22;3506:51;:::i;:::-;3496:61;3594:2;3633:22;;;;863:20;;-1:-1;;;3400:281::o;7721:222::-;-1:-1;;;;;11555:54;;;;3759:37;;7848:2;7833:18;;7819:124::o;7950:310::-;;8097:2;;8118:17;8111:47;4054:5;11090:12;11247:6;8097:2;8086:9;8082:18;11235:19;-1:-1;12059:101;12073:6;12070:1;12067:13;12059:101;;;12140:11;;;;;12134:18;12121:11;;;11275:14;12121:11;12114:39;12088:10;;12059:101;;;12175:6;12172:1;12169:13;12166:2;;;-1:-1;11275:14;12231:6;8086:9;12222:16;;12215:27;12166:2;-1:-1;12347:7;12331:14;-1:-1;;12327:28;4212:39;;;;11275:14;4212:39;;8068:192;-1:-1;;;8068:192::o;8267:416::-;8467:2;8481:47;;;4488:2;8452:18;;;11235:19;4524:34;11275:14;;;4504:55;-1:-1;;;4579:12;;;4572:30;4621:12;;;8438:245::o;8690:416::-;8890:2;8904:47;;;4872:2;8875:18;;;11235:19;-1:-1;;;11275:14;;;4888:50;4957:12;;;8861:245::o;9113:416::-;9313:2;9327:47;;;9298:18;;;11235:19;5244:34;11275:14;;;5224:55;5298:12;;;9284:245::o;9536:416::-;9736:2;9750:47;;;5549:2;9721:18;;;11235:19;5585:34;11275:14;;;5565:55;-1:-1;;;5640:12;;;5633:27;5679:12;;;9707:245::o;9959:323::-;6514:23;;5988;;11969:4;11958:16;7674:35;;6158:4;6147:16;;;6141:23;6218:14;;;7227:37;6746:16;;6740:23;11467:13;11460:21;6820:4;6811:14;;;3863:34;;;;6900:16;;6894:23;11772:10;11761:22;6978:4;6969:14;;;7335:36;;;;7058:16;;;7052:23;11467:13;11460:21;7132:4;7123:14;;3863:34;10136:3;10121:19;;10107:175::o;10289:218::-;11772:10;11761:22;;;;7335:36;;10414:2;10399:18;;10385:122::o;10514:218::-;-1:-1;;;;;11856:30;;;;7569:36;;10639:2;10624:18;;10610:122::o;12856:115::-;-1:-1;;;;;11856:30;;12914:34;;12904:2;;12962:1;;12952:12;12904:2;12898:73;:::o", + "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../../node_modules/@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"../lib/SafeMath32.sol\";\nimport \"../lib/SafeMath64.sol\";\n\n// Generic representation of ownership, assuming that each possible ownership consists of:\n// - Type (ie. Member, Group, Curator etc.), which is represented by uint8 (and can be converted to enum)\n// - Identifier (address/id/hash), which is represented by uint256\nstruct ChannelOwnership {\n uint8 ownershipType;\n\tuint256 ownerId;\n}\n\n// Any change to this struct requires ChannelStorage migration\nstruct Channel {\n ChannelOwnership ownership;\n bool isActive;\n\tuint32 videoLimit; // 0 = use default\n bool isExisting;\n}\n\n// A helper library to parse ChannelOwnership.\n// New ownership types can be safely added if needed without the need for migration\n// (but changing/removing existing ones would still require migration to new storage)\nenum ChannelOwnerType { Address, Member, CuratorGroup }\nlibrary ChannelOwnershipDecoder {\n\tfunction isAddress(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Address);\n\t}\n\n\tfunction isMember(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Member);\n\t}\n\n\tfunction isCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.CuratorGroup);\n\t}\n\n\tfunction asAddress(ChannelOwnership memory _ownership) internal pure returns (address) {\n\t\trequire(\n\t\t\tisAddress(_ownership),\n\t\t\t\"asAddress called on non-address ChannelOwnership\"\n\t\t);\n\t\treturn address(uint160(_ownership.ownerId));\n\t}\n\n\tfunction asMember(ChannelOwnership memory _ownership) internal pure returns (uint64) {\n\t\trequire(\n\t\t\tisMember(_ownership),\n\t\t\t\"asMember called on non-member ChannelOwnership\"\n\t\t);\n\t\treturn uint64(_ownership.ownerId);\n\t}\n\n\tfunction asCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (uint16) {\n\t\trequire(\n\t\t\tisCuratorGroup(_ownership),\n\t\t\t\"asCuratorGroup called on non-group ChannelOwnership\"\n\t\t);\n\t\treturn uint16(_ownership.ownerId);\n\t}\n\n\tfunction isValid(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\tif (isAddress(_ownership)) {\n\t\t\treturn uint256(uint160(asAddress(_ownership))) == _ownership.ownerId;\n\t\t}\n\t\tif (isMember(_ownership)) {\n\t\t\treturn uint256(asMember(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\tif (isCuratorGroup(_ownership)) {\n\t\t\treturn uint256(asCuratorGroup(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\treturn false;\n\t}\n}\n\ncontract ChannelStorage is Ownable {\n mapping (uint64 => Channel) private channelById;\n\t// ownershipType => ownerId => channelCount double-map\n mapping (uint8 => mapping(uint256 => uint32)) public channelCountByOwnership;\n uint64 public nextChannelId = 1;\n\n\tusing SafeMath32 for uint32;\n\tusing SafeMath64 for uint64;\n\n\tfunction _incCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].add(1);\n\t}\n\n\tfunction _decCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].sub(1);\n\t}\n\n function addChannel (ChannelOwnership memory _ownership) public onlyOwner returns (uint64) {\n\t\tuint64 channelId = nextChannelId;\n\t\t// Get storage ref\n\t\tChannel storage newChannel = channelById[channelId];\n\t\t// Populate the struct\n\t\tnewChannel.isExisting = true;\n\t\tnewChannel.ownership = _ownership; // TODO: Is this the right way to do this assignment?\n\t\t_incCountByOwnership(_ownership);\n\t\tnextChannelId.add(1);\n\t\treturn channelId;\n\t}\n\n\t// Get channel + perform existance check\n\tfunction getExistingChannel(uint64 _channelId) public view returns (Channel memory) {\n\t\tChannel memory channel = channelById[_channelId];\n\t\trequire(channel.isExisting, \"Trying to access unexisting channel\");\n\t\treturn channel;\n\t}\n\n function updateOwnership (uint64 _channelId, ChannelOwnership memory _ownership) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\t_decCountByOwnership(channel.ownership);\n\t\tchannel.ownership = _ownership;\n\t\t_incCountByOwnership(_ownership);\n\t}\n\n function updateStatus (uint64 _channelId, bool _isActive) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.isActive = _isActive;\n\t}\n\n function setChannelVideoLimit (uint64 _channelId, uint32 _videoLimit) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.videoLimit = _videoLimit;\n\t}\n\n function removeChannel (uint64 _channelId) public onlyOwner {\n\t\t_decCountByOwnership(channelById[_channelId].ownership);\n\t\tdelete channelById[_channelId];\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "exportedSymbols": { + "Channel": [ + 2478 + ], + "ChannelOwnerType": [ + 2482 + ], + "ChannelOwnership": [ + 2469 + ], + "ChannelOwnershipDecoder": [ + 2658 + ], + "ChannelStorage": [ + 2875 + ] + }, + "id": 2876, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2459, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:9" + }, + { + "id": 2460, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:9" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 2461, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3403, + "src": "59:71:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "id": 2462, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3599, + "src": "131:70:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "file": "../lib/SafeMath32.sol", + "id": 2463, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2068, + "src": "202:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "file": "../lib/SafeMath64.sol", + "id": 2464, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2263, + "src": "234:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "ChannelOwnership", + "id": 2469, + "members": [ + { + "constant": false, + "id": 2466, + "mutability": "mutable", + "name": "ownershipType", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "561:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2465, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "561:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "mutability": "mutable", + "name": "ownerId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "583:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "583:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ChannelOwnership", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "531:70:9", + "visibility": "public" + }, + { + "canonicalName": "Channel", + "id": 2478, + "members": [ + { + "constant": false, + "id": 2471, + "mutability": "mutable", + "name": "ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "687:26:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2470, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "687:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2473, + "mutability": "mutable", + "name": "isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "719:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2472, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2475, + "mutability": "mutable", + "name": "videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "735:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2474, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "735:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2477, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "777:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2476, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "777:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Channel", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "666:129:9", + "visibility": "public" + }, + { + "canonicalName": "ChannelOwnerType", + "id": 2482, + "members": [ + { + "id": 2479, + "name": "Address", + "nodeType": "EnumValue", + "src": "1038:7:9" + }, + { + "id": 2480, + "name": "Member", + "nodeType": "EnumValue", + "src": "1047:6:9" + }, + { + "id": 2481, + "name": "CuratorGroup", + "nodeType": "EnumValue", + "src": "1055:12:9" + } + ], + "name": "ChannelOwnerType", + "nodeType": "EnumDefinition", + "src": "1014:55:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2658, + "linearizedBaseContracts": [ + 2658 + ], + "name": "ChannelOwnershipDecoder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2498, + "nodeType": "Block", + "src": "1189:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2489, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2484, + "src": "1200:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2490, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1200:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2493, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1234:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Address", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1234:24:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2491, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1228:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1200:59:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2488, + "id": 2497, + "nodeType": "Return", + "src": "1193:66:9" + } + ] + }, + "documentation": null, + "id": 2499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2484, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1124:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2483, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1124:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1123:36:9" + }, + "returnParameters": { + "id": 2488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2487, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1183:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2486, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1183:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1182:6:9" + }, + "scope": 2658, + "src": "1105:158:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2515, + "nodeType": "Block", + "src": "1349:73:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2506, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "1360:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1360:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2510, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1394:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Member", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1394:23:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2508, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1360:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2505, + "id": 2514, + "nodeType": "Return", + "src": "1353:65:9" + } + ] + }, + "documentation": null, + "id": 2516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2501, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1284:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2500, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1284:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1283:36:9" + }, + "returnParameters": { + "id": 2505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1343:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2503, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1343:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1342:6:9" + }, + "scope": 2658, + "src": "1266:156:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2532, + "nodeType": "Block", + "src": "1514:79:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2523, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2518, + "src": "1525:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2524, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1525:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2527, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1559:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "CuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1559:29:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2525, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1553:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1525:64:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2522, + "id": 2531, + "nodeType": "Return", + "src": "1518:71:9" + } + ] + }, + "documentation": null, + "id": 2533, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2518, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1449:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2517, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1449:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1448:36:9" + }, + "returnParameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1508:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2520, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1508:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1507:6:9" + }, + "scope": 2658, + "src": "1425:168:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2556, + "nodeType": "Block", + "src": "1683:147:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2542, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1709:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2541, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "1699:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1725:50:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + }, + "value": "asAddress called on non-address ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + } + ], + "id": 2540, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1687:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1687:92:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2546, + "nodeType": "ExpressionStatement", + "src": "1687:92:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2551, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1806:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "1806:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2549, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1798:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1790:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2539, + "id": 2555, + "nodeType": "Return", + "src": "1783:43:9" + } + ] + }, + "documentation": null, + "id": 2557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2535, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1615:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2534, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1615:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:36:9" + }, + "returnParameters": { + "id": 2539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1674:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1674:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1673:9:9" + }, + "scope": 2658, + "src": "1596:234:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2577, + "nodeType": "Block", + "src": "1918:134:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2566, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "1943:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2565, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "1934:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1934:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1959:48:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + }, + "value": "asMember called on non-member ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + } + ], + "id": 2564, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1922:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1922:89:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2570, + "nodeType": "ExpressionStatement", + "src": "1922:89:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2573, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "2029:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2029:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 2571, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2022:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2563, + "id": 2576, + "nodeType": "Return", + "src": "2015:33:9" + } + ] + }, + "documentation": null, + "id": 2578, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2559, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1851:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2558, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1851:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1850:36:9" + }, + "returnParameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1910:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2561, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1910:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1909:8:9" + }, + "scope": 2658, + "src": "1833:219:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2598, + "nodeType": "Block", + "src": "2146:145:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2587, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2586, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2162:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2162:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2193:53:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + }, + "value": "asCuratorGroup called on non-group ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + } + ], + "id": 2585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2150:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:100:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2591, + "nodeType": "ExpressionStatement", + "src": "2150:100:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2594, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2268:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2595, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2268:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 2592, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2261:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 2584, + "id": 2597, + "nodeType": "Return", + "src": "2254:33:9" + } + ] + }, + "documentation": null, + "id": 2599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2079:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2579, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2079:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2078:36:9" + }, + "returnParameters": { + "id": 2584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2138:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2582, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2138:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2137:8:9" + }, + "scope": 2658, + "src": "2055:236:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2656, + "nodeType": "Block", + "src": "2376:334:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2607, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2394:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2606, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "2384:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2384:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2623, + "nodeType": "IfStatement", + "src": "2380:105:9", + "trueBody": { + "id": 2622, + "nodeType": "Block", + "src": "2407:78:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2614, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2445:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2613, + "name": "asAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2557, + "src": "2435:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (address)" + } + }, + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2435:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2611, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2427:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2419:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2618, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2462:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2462:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2419:61:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2621, + "nodeType": "Return", + "src": "2412:68:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2501:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2624, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "2492:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2492:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2638, + "nodeType": "IfStatement", + "src": "2488:94:9", + "trueBody": { + "id": 2637, + "nodeType": "Block", + "src": "2514:68:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2630, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2543:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2629, + "name": "asMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2578, + "src": "2534:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" + } + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2534:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2526:29:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2633, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2559:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2559:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2526:51:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2636, + "nodeType": "Return", + "src": "2519:58:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2640, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2604:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2639, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2589:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2653, + "nodeType": "IfStatement", + "src": "2585:106:9", + "trueBody": { + "id": 2652, + "nodeType": "Block", + "src": "2617:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2645, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2652:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2644, + "name": "asCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2599, + "src": "2637:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" + } + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2637:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2629:35:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2648, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2668:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2629:57:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2651, + "nodeType": "Return", + "src": "2622:64:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2701:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2605, + "id": 2655, + "nodeType": "Return", + "src": "2694:12:9" + } + ] + }, + "documentation": null, + "id": 2657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isValid", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2601, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2311:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2600, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2311:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2310:36:9" + }, + "returnParameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2370:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2603, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2370:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2369:6:9" + }, + "scope": 2658, + "src": "2294:416:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2876, + "src": "1070:1642:9" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2659, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "2741:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 2660, + "nodeType": "InheritanceSpecifier", + "src": "2741:7:9" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2875, + "linearizedBaseContracts": [ + 2875, + 3402, + 3293 + ], + "name": "ChannelStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2664, + "mutability": "mutable", + "name": "channelById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2755:47:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2764:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "2755:27:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "valueType": { + "contractScope": null, + "id": 2662, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "2774:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "71fff9c5", + "id": 2670, + "mutability": "mutable", + "name": "channelCountByOwnership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2864:76:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "typeName": { + "id": 2669, + "keyType": { + "id": 2665, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2873:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "2864:45:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "valueType": { + "id": 2668, + "keyType": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2882:26:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + }, + "valueType": { + "id": 2667, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2901:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f4606f00", + "id": 2673, + "mutability": "mutable", + "name": "nextChannelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2946:31:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2671, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2946:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2976:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "id": 2676, + "libraryName": { + "contractScope": null, + "id": 2674, + "name": "SafeMath32", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2067, + "src": "2987:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath32_$2067", + "typeString": "library SafeMath32" + } + }, + "nodeType": "UsingForDirective", + "src": "2981:28:9", + "typeName": { + "id": 2675, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3002:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + { + "id": 2679, + "libraryName": { + "contractScope": null, + "id": 2677, + "name": "SafeMath64", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2262, + "src": "3017:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath64_$2262", + "typeString": "library SafeMath64" + } + }, + "nodeType": "UsingForDirective", + "src": "3011:28:9", + "typeName": { + "id": 2678, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3032:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + { + "body": { + "id": 2695, + "nodeType": "Block", + "src": "3123:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3201:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2684, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3127:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2689, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3151:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3151:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2690, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2687, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2688, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3177:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "3127:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3127:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2694, + "nodeType": "ExpressionStatement", + "src": "3127:76:9" + } + ] + }, + "documentation": null, + "id": 2696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_incCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2681, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2696, + "src": "3073:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2680, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3073:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3072:36:9" + }, + "returnParameters": { + "id": 2683, + "nodeType": "ParameterList", + "parameters": [], + "src": "3123:0:9" + }, + "scope": 2875, + "src": "3042:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2712, + "nodeType": "Block", + "src": "3291:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3369:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2701, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3295:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2706, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2702, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3319:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3319:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2707, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2704, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3345:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3345:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1917, + "src": "3295:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3295:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2711, + "nodeType": "ExpressionStatement", + "src": "3295:76:9" + } + ] + }, + "documentation": null, + "id": 2713, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_decCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2698, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2713, + "src": "3241:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2697, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3241:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3240:36:9" + }, + "returnParameters": { + "id": 2700, + "nodeType": "ParameterList", + "parameters": [], + "src": "3291:0:9" + }, + "scope": 2875, + "src": "3210:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2756, + "nodeType": "Block", + "src": "3472:344:9", + "statements": [ + { + "assignments": [ + 2723 + ], + "declarations": [ + { + "constant": false, + "id": 2723, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3476:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2722, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3476:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2725, + "initialValue": { + "argumentTypes": null, + "id": 2724, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3495:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3476:32:9" + }, + { + "assignments": [ + 2727 + ], + "declarations": [ + { + "constant": false, + "id": 2727, + "mutability": "mutable", + "name": "newChannel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3533:26:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2726, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3533:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2731, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2728, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3562:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2730, + "indexExpression": { + "argumentTypes": null, + "id": 2729, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3574:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3562:22:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3533:51:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2732, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3613:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "3613:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3637:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3613:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "3613:28:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2738, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3645:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "3645:20:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2741, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "3645:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2743, + "nodeType": "ExpressionStatement", + "src": "3645:33:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2745, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3757:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2744, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "3736:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3736:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2747, + "nodeType": "ExpressionStatement", + "src": "3736:32:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3790:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2748, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3772:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "3772:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3772:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2753, + "nodeType": "ExpressionStatement", + "src": "3772:20:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2754, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3803:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2721, + "id": 2755, + "nodeType": "Return", + "src": "3796:16:9" + } + ] + }, + "documentation": null, + "functionSelector": "e35213d8", + "id": 2757, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2718, + "modifierName": { + "argumentTypes": null, + "id": 2717, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "3445:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3445:9:9" + } + ], + "name": "addChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2715, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3402:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2714, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3402:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3401:36:9" + }, + "returnParameters": { + "id": 2721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2720, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3464:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2719, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3464:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3463:8:9" + }, + "scope": 2875, + "src": "3381:435:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2778, + "nodeType": "Block", + "src": "3945:144:9", + "statements": [ + { + "assignments": [ + 2765 + ], + "declarations": [ + { + "constant": false, + "id": 2765, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2778, + "src": "3949:22:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2764, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3949:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2769, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2766, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3974:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2768, + "indexExpression": { + "argumentTypes": null, + "id": 2767, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2759, + "src": "3986:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3974:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3949:48:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2771, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4009:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "4009:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4029:37:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + }, + "value": "Trying to access unexisting channel" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + } + ], + "id": 2770, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4001:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4001:66:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2775, + "nodeType": "ExpressionStatement", + "src": "4001:66:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2776, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4078:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "functionReturnParameters": 2763, + "id": 2777, + "nodeType": "Return", + "src": "4071:14:9" + } + ] + }, + "documentation": null, + "functionSelector": "678d913d", + "id": 2779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2759, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3889:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2758, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3889:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3888:19:9" + }, + "returnParameters": { + "id": 2763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2762, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3929:14:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2761, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3929:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3928:16:9" + }, + "scope": 2875, + "src": "3861:228:9", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2809, + "nodeType": "Block", + "src": "4193:170:9", + "statements": [ + { + "assignments": [ + 2789 + ], + "declarations": [ + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2809, + "src": "4197:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2788, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4197:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2793, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2790, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4223:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2792, + "indexExpression": { + "argumentTypes": null, + "id": 2791, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2781, + "src": "4235:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4223:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4197:49:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2795, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4271:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2796, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4271:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2794, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4250:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4250:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2798, + "nodeType": "ExpressionStatement", + "src": "4250:39:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2799, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4293:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4293:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2802, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4313:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "4293:30:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2804, + "nodeType": "ExpressionStatement", + "src": "4293:30:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2806, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4348:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2805, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "4327:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4327:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2808, + "nodeType": "ExpressionStatement", + "src": "4327:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "33364dca", + "id": 2810, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2786, + "modifierName": { + "argumentTypes": null, + "id": 2785, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4183:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4183:9:9" + } + ], + "name": "updateOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2781, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4121:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2780, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4121:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2783, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4140:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2782, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "4140:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4120:55:9" + }, + "returnParameters": { + "id": 2787, + "nodeType": "ParameterList", + "parameters": [], + "src": "4193:0:9" + }, + "scope": 2875, + "src": "4095:268:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2831, + "nodeType": "Block", + "src": "4444:89:9", + "statements": [ + { + "assignments": [ + 2820 + ], + "declarations": [ + { + "constant": false, + "id": 2820, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2831, + "src": "4448:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2819, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4448:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2824, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2821, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4474:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2823, + "indexExpression": { + "argumentTypes": null, + "id": 2822, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "4486:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4474:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4448:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2825, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2820, + "src": "4501:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "4501:16:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2828, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2814, + "src": "4520:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4501:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2830, + "nodeType": "ExpressionStatement", + "src": "4501:28:9" + } + ] + }, + "documentation": null, + "functionSelector": "b5b9dc91", + "id": 2832, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2817, + "modifierName": { + "argumentTypes": null, + "id": 2816, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4434:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4434:9:9" + } + ], + "name": "updateStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2812, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4392:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2811, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4392:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2814, + "mutability": "mutable", + "name": "_isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4411:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2813, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4411:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4391:35:9" + }, + "returnParameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [], + "src": "4444:0:9" + }, + "scope": 2875, + "src": "4369:164:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2853, + "nodeType": "Block", + "src": "4626:93:9", + "statements": [ + { + "assignments": [ + 2842 + ], + "declarations": [ + { + "constant": false, + "id": 2842, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2853, + "src": "4630:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2841, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4630:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2846, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2843, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4656:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2845, + "indexExpression": { + "argumentTypes": null, + "id": 2844, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2834, + "src": "4668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4656:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4630:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2847, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2842, + "src": "4683:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "4683:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2850, + "name": "_videoLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2836, + "src": "4704:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4683:32:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2852, + "nodeType": "ExpressionStatement", + "src": "4683:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "64c8121f", + "id": 2854, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2839, + "modifierName": { + "argumentTypes": null, + "id": 2838, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4616:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4616:9:9" + } + ], + "name": "setChannelVideoLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2834, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4570:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2833, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4570:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2836, + "mutability": "mutable", + "name": "_videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4589:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2835, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4589:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4569:39:9" + }, + "returnParameters": { + "id": 2840, + "nodeType": "ParameterList", + "parameters": [], + "src": "4626:0:9" + }, + "scope": 2875, + "src": "4539:180:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2873, + "nodeType": "Block", + "src": "4785:97:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2862, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4810:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2864, + "indexExpression": { + "argumentTypes": null, + "id": 2863, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4822:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4810:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "id": 2865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4810:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2861, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4789:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4789:55:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2867, + "nodeType": "ExpressionStatement", + "src": "4789:55:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4848:30:9", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2868, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4855:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2870, + "indexExpression": { + "argumentTypes": null, + "id": 2869, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4867:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4855:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2872, + "nodeType": "ExpressionStatement", + "src": "4848:30:9" + } + ] + }, + "documentation": null, + "functionSelector": "614265ee", + "id": 2874, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2859, + "modifierName": { + "argumentTypes": null, + "id": 2858, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4775:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4775:9:9" + } + ], + "name": "removeChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2856, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2874, + "src": "4749:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2855, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4749:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4748:19:9" + }, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [], + "src": "4785:0:9" + }, + "scope": 2875, + "src": "4725:157:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2876, + "src": "2714:2170:9" + } + ], + "src": "0:4885:9" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "exportedSymbols": { + "Channel": [ + 2478 + ], + "ChannelOwnerType": [ + 2482 + ], + "ChannelOwnership": [ + 2469 + ], + "ChannelOwnershipDecoder": [ + 2658 + ], + "ChannelStorage": [ + 2875 + ] + }, + "id": 2876, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2459, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:9" + }, + { + "id": 2460, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:9" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 2461, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3403, + "src": "59:71:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "id": 2462, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 3599, + "src": "131:70:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "file": "../lib/SafeMath32.sol", + "id": 2463, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2068, + "src": "202:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "file": "../lib/SafeMath64.sol", + "id": 2464, + "nodeType": "ImportDirective", + "scope": 2876, + "sourceUnit": 2263, + "src": "234:31:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "ChannelOwnership", + "id": 2469, + "members": [ + { + "constant": false, + "id": 2466, + "mutability": "mutable", + "name": "ownershipType", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "561:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2465, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "561:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2468, + "mutability": "mutable", + "name": "ownerId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2469, + "src": "583:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "583:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "ChannelOwnership", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "531:70:9", + "visibility": "public" + }, + { + "canonicalName": "Channel", + "id": 2478, + "members": [ + { + "constant": false, + "id": 2471, + "mutability": "mutable", + "name": "ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "687:26:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2470, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "687:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2473, + "mutability": "mutable", + "name": "isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "719:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2472, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "719:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2475, + "mutability": "mutable", + "name": "videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "735:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2474, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "735:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2477, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2478, + "src": "777:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2476, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "777:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Channel", + "nodeType": "StructDefinition", + "scope": 2876, + "src": "666:129:9", + "visibility": "public" + }, + { + "canonicalName": "ChannelOwnerType", + "id": 2482, + "members": [ + { + "id": 2479, + "name": "Address", + "nodeType": "EnumValue", + "src": "1038:7:9" + }, + { + "id": 2480, + "name": "Member", + "nodeType": "EnumValue", + "src": "1047:6:9" + }, + { + "id": 2481, + "name": "CuratorGroup", + "nodeType": "EnumValue", + "src": "1055:12:9" + } + ], + "name": "ChannelOwnerType", + "nodeType": "EnumDefinition", + "src": "1014:55:9" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2658, + "linearizedBaseContracts": [ + 2658 + ], + "name": "ChannelOwnershipDecoder", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2498, + "nodeType": "Block", + "src": "1189:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2489, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2484, + "src": "1200:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2490, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1200:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2493, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1234:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Address", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1234:24:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2491, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1228:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1228:31:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1200:59:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2488, + "id": 2497, + "nodeType": "Return", + "src": "1193:66:9" + } + ] + }, + "documentation": null, + "id": 2499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2484, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1124:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2483, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1124:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1123:36:9" + }, + "returnParameters": { + "id": 2488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2487, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2499, + "src": "1183:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2486, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1183:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1182:6:9" + }, + "scope": 2658, + "src": "1105:158:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2515, + "nodeType": "Block", + "src": "1349:73:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2506, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2501, + "src": "1360:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1360:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2510, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1394:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Member", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1394:23:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2508, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1388:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1360:58:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2505, + "id": 2514, + "nodeType": "Return", + "src": "1353:65:9" + } + ] + }, + "documentation": null, + "id": 2516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2501, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1284:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2500, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1284:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1283:36:9" + }, + "returnParameters": { + "id": 2505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2516, + "src": "1343:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2503, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1343:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1342:6:9" + }, + "scope": 2658, + "src": "1266:156:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2532, + "nodeType": "Block", + "src": "1514:79:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2523, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2518, + "src": "1525:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2524, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "1525:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2527, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "1559:16:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "CuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1559:29:9", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2525, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1553:5:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1553:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1525:64:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2522, + "id": 2531, + "nodeType": "Return", + "src": "1518:71:9" + } + ] + }, + "documentation": null, + "id": 2533, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2518, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1449:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2517, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1449:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1448:36:9" + }, + "returnParameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2533, + "src": "1508:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2520, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1508:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1507:6:9" + }, + "scope": 2658, + "src": "1425:168:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2556, + "nodeType": "Block", + "src": "1683:147:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2542, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1709:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2541, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "1699:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1699:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1725:50:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + }, + "value": "asAddress called on non-address ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", + "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" + } + ], + "id": 2540, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1687:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1687:92:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2546, + "nodeType": "ExpressionStatement", + "src": "1687:92:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2551, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "1806:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "1806:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2549, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "1798:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1798:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1790:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1790:36:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2539, + "id": 2555, + "nodeType": "Return", + "src": "1783:43:9" + } + ] + }, + "documentation": null, + "id": 2557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2535, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1615:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2534, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1615:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1614:36:9" + }, + "returnParameters": { + "id": 2539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2557, + "src": "1674:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1674:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1673:9:9" + }, + "scope": 2658, + "src": "1596:234:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2577, + "nodeType": "Block", + "src": "1918:134:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2566, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "1943:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2565, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "1934:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1934:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1959:48:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + }, + "value": "asMember called on non-member ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", + "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" + } + ], + "id": 2564, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1922:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1922:89:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2570, + "nodeType": "ExpressionStatement", + "src": "1922:89:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2573, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2559, + "src": "2029:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2029:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 2571, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2022:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2022:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2563, + "id": 2576, + "nodeType": "Return", + "src": "2015:33:9" + } + ] + }, + "documentation": null, + "id": 2578, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asMember", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2559, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1851:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2558, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1851:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1850:36:9" + }, + "returnParameters": { + "id": 2563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2562, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2578, + "src": "1910:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2561, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1910:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1909:8:9" + }, + "scope": 2658, + "src": "1833:219:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2598, + "nodeType": "Block", + "src": "2146:145:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2587, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2586, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2162:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2162:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2193:53:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + }, + "value": "asCuratorGroup called on non-group ChannelOwnership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", + "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" + } + ], + "id": 2585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2150:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:100:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2591, + "nodeType": "ExpressionStatement", + "src": "2150:100:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2594, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2580, + "src": "2268:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2595, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2268:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 2592, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2261:6:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2261:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 2584, + "id": 2597, + "nodeType": "Return", + "src": "2254:33:9" + } + ] + }, + "documentation": null, + "id": 2599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "asCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2580, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2079:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2579, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2079:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2078:36:9" + }, + "returnParameters": { + "id": 2584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2599, + "src": "2138:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2582, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2138:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2137:8:9" + }, + "scope": 2658, + "src": "2055:236:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2656, + "nodeType": "Block", + "src": "2376:334:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2607, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2394:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2606, + "name": "isAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2499, + "src": "2384:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2384:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2623, + "nodeType": "IfStatement", + "src": "2380:105:9", + "trueBody": { + "id": 2622, + "nodeType": "Block", + "src": "2407:78:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2614, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2445:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2613, + "name": "asAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2557, + "src": "2435:9:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (address)" + } + }, + "id": 2615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2435:21:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2611, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "2427:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2427:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2419:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2419:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2618, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2462:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2619, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2462:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2419:61:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2621, + "nodeType": "Return", + "src": "2412:68:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2625, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2501:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2624, + "name": "isMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2516, + "src": "2492:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2492:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2638, + "nodeType": "IfStatement", + "src": "2488:94:9", + "trueBody": { + "id": 2637, + "nodeType": "Block", + "src": "2514:68:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2630, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2543:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2629, + "name": "asMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2578, + "src": "2534:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" + } + }, + "id": 2631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2534:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2526:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2526:29:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2633, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2559:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2634, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2559:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2526:51:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2636, + "nodeType": "Return", + "src": "2519:58:9" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2640, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2604:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2639, + "name": "isCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2533, + "src": "2589:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2589:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2653, + "nodeType": "IfStatement", + "src": "2585:106:9", + "trueBody": { + "id": 2652, + "nodeType": "Block", + "src": "2617:74:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2645, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2652:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2644, + "name": "asCuratorGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2599, + "src": "2637:14:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" + } + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2637:26:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 2643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2629:7:9", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2629:35:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2648, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2601, + "src": "2668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "2668:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2629:57:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2605, + "id": 2651, + "nodeType": "Return", + "src": "2622:64:9" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2701:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2605, + "id": 2655, + "nodeType": "Return", + "src": "2694:12:9" + } + ] + }, + "documentation": null, + "id": 2657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isValid", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2601, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2311:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2600, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "2311:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2310:36:9" + }, + "returnParameters": { + "id": 2605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2604, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2657, + "src": "2370:4:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2603, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2370:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2369:6:9" + }, + "scope": 2658, + "src": "2294:416:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2876, + "src": "1070:1642:9" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2659, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "2741:7:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 2660, + "nodeType": "InheritanceSpecifier", + "src": "2741:7:9" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2875, + "linearizedBaseContracts": [ + 2875, + 3402, + 3293 + ], + "name": "ChannelStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 2664, + "mutability": "mutable", + "name": "channelById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2755:47:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "typeName": { + "id": 2663, + "keyType": { + "id": 2661, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2764:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "2755:27:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel)" + }, + "valueType": { + "contractScope": null, + "id": 2662, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "2774:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "71fff9c5", + "id": 2670, + "mutability": "mutable", + "name": "channelCountByOwnership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2864:76:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "typeName": { + "id": 2669, + "keyType": { + "id": 2665, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2873:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "2864:45:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + }, + "valueType": { + "id": 2668, + "keyType": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2882:26:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + }, + "valueType": { + "id": 2667, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2901:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "f4606f00", + "id": 2673, + "mutability": "mutable", + "name": "nextChannelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2875, + "src": "2946:31:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2671, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2946:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2976:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "id": 2676, + "libraryName": { + "contractScope": null, + "id": 2674, + "name": "SafeMath32", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2067, + "src": "2987:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath32_$2067", + "typeString": "library SafeMath32" + } + }, + "nodeType": "UsingForDirective", + "src": "2981:28:9", + "typeName": { + "id": 2675, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3002:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + { + "id": 2679, + "libraryName": { + "contractScope": null, + "id": 2677, + "name": "SafeMath64", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2262, + "src": "3017:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath64_$2262", + "typeString": "library SafeMath64" + } + }, + "nodeType": "UsingForDirective", + "src": "3011:28:9", + "typeName": { + "id": 2678, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3032:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + { + "body": { + "id": 2695, + "nodeType": "Block", + "src": "3123:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3201:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2684, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3127:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2689, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2685, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3151:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3151:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2690, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2687, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2681, + "src": "3177:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2688, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3177:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3127:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "3127:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3127:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2694, + "nodeType": "ExpressionStatement", + "src": "3127:76:9" + } + ] + }, + "documentation": null, + "id": 2696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_incCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2681, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2696, + "src": "3073:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2680, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3073:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3072:36:9" + }, + "returnParameters": { + "id": 2683, + "nodeType": "ParameterList", + "parameters": [], + "src": "3123:0:9" + }, + "scope": 2875, + "src": "3042:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2712, + "nodeType": "Block", + "src": "3291:84:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3369:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2701, + "name": "channelCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "3295:23:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", + "typeString": "mapping(uint8 => mapping(uint256 => uint32))" + } + }, + "id": 2706, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2702, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3319:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2703, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownershipType", + "nodeType": "MemberAccess", + "referencedDeclaration": 2466, + "src": "3319:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:49:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", + "typeString": "mapping(uint256 => uint32)" + } + }, + "id": 2707, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2704, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2698, + "src": "3345:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 2705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2468, + "src": "3345:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3295:69:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1917, + "src": "3295:73:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 2710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3295:76:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2711, + "nodeType": "ExpressionStatement", + "src": "3295:76:9" + } + ] + }, + "documentation": null, + "id": 2713, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_decCountByOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2698, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2713, + "src": "3241:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2697, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3241:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3240:36:9" + }, + "returnParameters": { + "id": 2700, + "nodeType": "ParameterList", + "parameters": [], + "src": "3291:0:9" + }, + "scope": 2875, + "src": "3210:165:9", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2756, + "nodeType": "Block", + "src": "3472:344:9", + "statements": [ + { + "assignments": [ + 2723 + ], + "declarations": [ + { + "constant": false, + "id": 2723, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3476:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2722, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3476:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2725, + "initialValue": { + "argumentTypes": null, + "id": 2724, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3495:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3476:32:9" + }, + { + "assignments": [ + 2727 + ], + "declarations": [ + { + "constant": false, + "id": 2727, + "mutability": "mutable", + "name": "newChannel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2756, + "src": "3533:26:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2726, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3533:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2731, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2728, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3562:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2730, + "indexExpression": { + "argumentTypes": null, + "id": 2729, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3574:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3562:22:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3533:51:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2732, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3613:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "3613:21:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3637:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3613:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "3613:28:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2738, + "name": "newChannel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2727, + "src": "3645:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2740, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "3645:20:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2741, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "3645:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2743, + "nodeType": "ExpressionStatement", + "src": "3645:33:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2745, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "3757:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2744, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "3736:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3736:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2747, + "nodeType": "ExpressionStatement", + "src": "3736:32:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3790:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2748, + "name": "nextChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2673, + "src": "3772:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "3772:17:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3772:20:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 2753, + "nodeType": "ExpressionStatement", + "src": "3772:20:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2754, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2723, + "src": "3803:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2721, + "id": 2755, + "nodeType": "Return", + "src": "3796:16:9" + } + ] + }, + "documentation": null, + "functionSelector": "e35213d8", + "id": 2757, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2718, + "modifierName": { + "argumentTypes": null, + "id": 2717, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "3445:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3445:9:9" + } + ], + "name": "addChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2715, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3402:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2714, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "3402:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3401:36:9" + }, + "returnParameters": { + "id": 2721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2720, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2757, + "src": "3464:6:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2719, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3464:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3463:8:9" + }, + "scope": 2875, + "src": "3381:435:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2778, + "nodeType": "Block", + "src": "3945:144:9", + "statements": [ + { + "assignments": [ + 2765 + ], + "declarations": [ + { + "constant": false, + "id": 2765, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2778, + "src": "3949:22:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2764, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3949:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2769, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2766, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "3974:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2768, + "indexExpression": { + "argumentTypes": null, + "id": 2767, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2759, + "src": "3986:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3974:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3949:48:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2771, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4009:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 2772, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2477, + "src": "4009:18:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4029:37:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + }, + "value": "Trying to access unexisting channel" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", + "typeString": "literal_string \"Trying to access unexisting channel\"" + } + ], + "id": 2770, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4001:7:9", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4001:66:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2775, + "nodeType": "ExpressionStatement", + "src": "4001:66:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2776, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2765, + "src": "4078:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "functionReturnParameters": 2763, + "id": 2777, + "nodeType": "Return", + "src": "4071:14:9" + } + ] + }, + "documentation": null, + "functionSelector": "678d913d", + "id": 2779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2759, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3889:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2758, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3889:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3888:19:9" + }, + "returnParameters": { + "id": 2763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2762, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2779, + "src": "3929:14:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2761, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "3929:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3928:16:9" + }, + "scope": 2875, + "src": "3861:228:9", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2809, + "nodeType": "Block", + "src": "4193:170:9", + "statements": [ + { + "assignments": [ + 2789 + ], + "declarations": [ + { + "constant": false, + "id": 2789, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2809, + "src": "4197:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2788, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4197:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2793, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2790, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4223:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2792, + "indexExpression": { + "argumentTypes": null, + "id": 2791, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2781, + "src": "4235:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4223:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4197:49:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2795, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4271:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2796, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4271:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2794, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4250:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4250:39:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2798, + "nodeType": "ExpressionStatement", + "src": "4250:39:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2799, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "4293:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4293:17:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2802, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4313:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "src": "4293:30:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + }, + "id": 2804, + "nodeType": "ExpressionStatement", + "src": "4293:30:9" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2806, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2783, + "src": "4348:10:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 2805, + "name": "_incCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2696, + "src": "4327:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4327:32:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2808, + "nodeType": "ExpressionStatement", + "src": "4327:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "33364dca", + "id": 2810, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2786, + "modifierName": { + "argumentTypes": null, + "id": 2785, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4183:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4183:9:9" + } + ], + "name": "updateOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2781, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4121:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2780, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4121:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2783, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2810, + "src": "4140:34:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 2782, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "4140:16:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4120:55:9" + }, + "returnParameters": { + "id": 2787, + "nodeType": "ParameterList", + "parameters": [], + "src": "4193:0:9" + }, + "scope": 2875, + "src": "4095:268:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2831, + "nodeType": "Block", + "src": "4444:89:9", + "statements": [ + { + "assignments": [ + 2820 + ], + "declarations": [ + { + "constant": false, + "id": 2820, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2831, + "src": "4448:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2819, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4448:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2824, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2821, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4474:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2823, + "indexExpression": { + "argumentTypes": null, + "id": 2822, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2812, + "src": "4486:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4474:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4448:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2825, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2820, + "src": "4501:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "4501:16:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2828, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2814, + "src": "4520:9:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4501:28:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2830, + "nodeType": "ExpressionStatement", + "src": "4501:28:9" + } + ] + }, + "documentation": null, + "functionSelector": "b5b9dc91", + "id": 2832, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2817, + "modifierName": { + "argumentTypes": null, + "id": 2816, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4434:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4434:9:9" + } + ], + "name": "updateStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2812, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4392:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2811, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4392:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2814, + "mutability": "mutable", + "name": "_isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2832, + "src": "4411:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2813, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4411:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4391:35:9" + }, + "returnParameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [], + "src": "4444:0:9" + }, + "scope": 2875, + "src": "4369:164:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2853, + "nodeType": "Block", + "src": "4626:93:9", + "statements": [ + { + "assignments": [ + 2842 + ], + "declarations": [ + { + "constant": false, + "id": 2842, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2853, + "src": "4630:23:9", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 2841, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "4630:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2846, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2843, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4656:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2845, + "indexExpression": { + "argumentTypes": null, + "id": 2844, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2834, + "src": "4668:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4656:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4630:49:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2847, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2842, + "src": "4683:7:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel storage pointer" + } + }, + "id": 2849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "4683:18:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2850, + "name": "_videoLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2836, + "src": "4704:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4683:32:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2852, + "nodeType": "ExpressionStatement", + "src": "4683:32:9" + } + ] + }, + "documentation": null, + "functionSelector": "64c8121f", + "id": 2854, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2839, + "modifierName": { + "argumentTypes": null, + "id": 2838, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4616:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4616:9:9" + } + ], + "name": "setChannelVideoLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2834, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4570:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2833, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4570:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2836, + "mutability": "mutable", + "name": "_videoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2854, + "src": "4589:18:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2835, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4589:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4569:39:9" + }, + "returnParameters": { + "id": 2840, + "nodeType": "ParameterList", + "parameters": [], + "src": "4626:0:9" + }, + "scope": 2875, + "src": "4539:180:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2873, + "nodeType": "Block", + "src": "4785:97:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2862, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4810:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2864, + "indexExpression": { + "argumentTypes": null, + "id": 2863, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4822:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4810:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "id": 2865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "4810:33:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", + "typeString": "struct ChannelOwnership storage ref" + } + ], + "id": 2861, + "name": "_decCountByOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4789:20:9", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (struct ChannelOwnership memory) view" + } + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4789:55:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2867, + "nodeType": "ExpressionStatement", + "src": "4789:55:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 2871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4848:30:9", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2868, + "name": "channelById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2664, + "src": "4855:11:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", + "typeString": "mapping(uint64 => struct Channel storage ref)" + } + }, + "id": 2870, + "indexExpression": { + "argumentTypes": null, + "id": 2869, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2856, + "src": "4867:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4855:23:9", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage", + "typeString": "struct Channel storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2872, + "nodeType": "ExpressionStatement", + "src": "4848:30:9" + } + ] + }, + "documentation": null, + "functionSelector": "614265ee", + "id": 2874, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2859, + "modifierName": { + "argumentTypes": null, + "id": 2858, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "4775:9:9", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4775:9:9" + } + ], + "name": "removeChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2856, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2874, + "src": "4749:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2855, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4749:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4748:19:9" + }, + "returnParameters": { + "id": 2860, + "nodeType": "ParameterList", + "parameters": [], + "src": "4785:0:9" + }, + "scope": 2875, + "src": "4725:157:9", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2876, + "src": "2714:2170:9" + } + ], + "src": "0:4885:9" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.577Z", + "devdoc": { + "kind": "dev", + "methods": { + "owner()": { + "details": "Returns the address of the current owner." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/ContentDirectory.json b/smart-contracts/build/contracts/ContentDirectory.json new file mode 100644 index 0000000000..d180a93698 --- /dev/null +++ b/smart-contracts/build/contracts/ContentDirectory.json @@ -0,0 +1,39425 @@ +{ + "contractName": "ContentDirectory", + "abi": [ + { + "inputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "_provider", + "type": "address" + }, + { + "internalType": "contract MembershipBridge", + "name": "_membershipBridge", + "type": "address" + }, + { + "internalType": "contract ContentWorkingGroupBridge", + "name": "_contentWorkingGroupBridge", + "type": "address" + }, + { + "internalType": "contract ChannelStorage", + "name": "_channelStorage", + "type": "address" + }, + { + "internalType": "contract VideoStorage", + "name": "_videoStorage", + "type": "address" + }, + { + "internalType": "contract CuratorGroupStorage", + "name": "_curatorGroupStorage", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "ownershipType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "ownerId", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct ChannelOwnership", + "name": "_ownership", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "ChannelCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "_reason", + "type": "string" + } + ], + "name": "ChannelDeactivated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_newLimit", + "type": "uint64" + } + ], + "name": "ChannelInstancesLimitUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "ChannelMetadataUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "ownershipType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "ownerId", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct ChannelOwnership", + "name": "_ownership", + "type": "tuple" + } + ], + "name": "ChannelOwnershipUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + } + ], + "name": "ChannelReactivated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_newLimit", + "type": "uint64" + } + ], + "name": "ChannelVideoLimitUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "CuratorAddedToGroup", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + } + ], + "name": "CuratorRemovedFromAllGroups", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "CuratorRemovedFromGroup", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_videoStorage", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_channelStorage", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "_curatorGroupStorage", + "type": "address" + } + ], + "name": "Migrated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "VideoAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "_reason", + "type": "string" + } + ], + "name": "VideoDeactivated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "VideoMetadataUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + } + ], + "name": "VideoReactivated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + } + ], + "name": "VideoRemoved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "_id", + "type": "uint64" + }, + { + "indexed": false, + "internalType": "string", + "name": "_reason", + "type": "string" + } + ], + "name": "VideoRemovedByCurator", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "_newLimit", + "type": "uint32" + } + ], + "name": "VideosPerChannelDefaultLimitUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint32", + "name": "_newLimit", + "type": "uint32" + } + ], + "name": "VideosPerChannelMaxLimitUpdated", + "type": "event" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "runtimeAddressProvider", + "outputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_newLimit", + "type": "uint64" + } + ], + "name": "setChannelInstancesLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "_newLimit", + "type": "uint32" + } + ], + "name": "setVideosPerChannelDefaultLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "_newLimit", + "type": "uint32" + } + ], + "name": "setVideosPerChannelMaxLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "pause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "unpause", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_newLogic", + "type": "address" + }, + { + "internalType": "address", + "name": "_newVideoStorage", + "type": "address" + }, + { + "internalType": "address", + "name": "_newChannelStorage", + "type": "address" + }, + { + "internalType": "address", + "name": "_newCuratorGroupStorage", + "type": "address" + } + ], + "name": "migrate", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint8", + "name": "ownershipType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "ownerId", + "type": "uint256" + } + ], + "internalType": "struct ChannelOwnership", + "name": "_ownership", + "type": "tuple" + }, + { + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "createChannel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "updateChannelMetadata", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "uint8", + "name": "ownershipType", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "ownerId", + "type": "uint256" + } + ], + "internalType": "struct ChannelOwnership", + "name": "_ownership", + "type": "tuple" + } + ], + "name": "updateChannelOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "internalType": "uint32", + "name": "_limit", + "type": "uint32" + } + ], + "name": "updateChannelVideoLimit", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "internalType": "string", + "name": "_reason", + "type": "string" + } + ], + "name": "deactivateChannel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + } + ], + "name": "activateChannel", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "addCuratorToGroup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "removeCuratorFromGroup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + } + ], + "name": "removeCuratorFromAllGroups", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "removeCuratorGroup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + }, + { + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "addVideo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + }, + { + "internalType": "string[2][]", + "name": "_metadata", + "type": "string[2][]" + } + ], + "name": "updateVideoMetadata", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + } + ], + "name": "removeVideo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + }, + { + "internalType": "string", + "name": "_reason", + "type": "string" + } + ], + "name": "removeVideoAsCurator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + }, + { + "internalType": "string", + "name": "_reason", + "type": "string" + } + ], + "name": "deactivateVideo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + } + ], + "name": "activateVideo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_provider\",\"type\":\"address\"},{\"internalType\":\"contract MembershipBridge\",\"name\":\"_membershipBridge\",\"type\":\"address\"},{\"internalType\":\"contract ContentWorkingGroupBridge\",\"name\":\"_contentWorkingGroupBridge\",\"type\":\"address\"},{\"internalType\":\"contract ChannelStorage\",\"name\":\"_channelStorage\",\"type\":\"address\"},{\"internalType\":\"contract VideoStorage\",\"name\":\"_videoStorage\",\"type\":\"address\"},{\"internalType\":\"contract CuratorGroupStorage\",\"name\":\"_curatorGroupStorage\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"ChannelCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"ChannelDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_newLimit\",\"type\":\"uint64\"}],\"name\":\"ChannelInstancesLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"ChannelMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"ChannelOwnershipUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"}],\"name\":\"ChannelReactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_newLimit\",\"type\":\"uint64\"}],\"name\":\"ChannelVideoLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"CuratorAddedToGroup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"CuratorRemovedFromAllGroups\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"CuratorRemovedFromGroup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_videoStorage\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_channelStorage\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_curatorGroupStorage\",\"type\":\"address\"}],\"name\":\"Migrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"VideoAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"VideoDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"VideoMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"}],\"name\":\"VideoReactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"}],\"name\":\"VideoRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"VideoRemovedByCurator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"VideosPerChannelDefaultLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"VideosPerChannelMaxLimitUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"activateChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"activateVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"addCuratorToGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"addVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"createChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"deactivateChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"deactivateVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newVideoStorage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newChannelStorage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newCuratorGroupStorage\",\"type\":\"address\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"removeCuratorFromAllGroups\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeCuratorFromGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeCuratorGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"removeVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"removeVideoAsCurator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newLimit\",\"type\":\"uint64\"}],\"name\":\"setChannelInstancesLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"setVideosPerChannelDefaultLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"setVideosPerChannelMaxLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"updateChannelMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"updateChannelOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"_limit\",\"type\":\"uint32\"}],\"name\":\"updateChannelVideoLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"updateVideoMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol\":\"ContentDirectory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol\":{\"keccak256\":\"0xc705073b41e20b312a306aec51553bfda071dbc9822f3f82e8d4b9931f3cab3a\",\"urls\":[\"bzz-raw://eaab433d48915a3bda0c0414eb8eccb5c6db118edcd81a390f83043ee84e49b3\",\"dweb:/ipfs/QmbtTPj7pG1je2DjDtakdSej33iYXj7NYYmjXA7EKY3CiK\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol\":{\"keccak256\":\"0xbd70b3b036373148b763dc3cd19c8653dbaffac05a0668a410cc6cc4875a552b\",\"urls\":[\"bzz-raw://714cee590168f00572e43cff52d093268f1b09e4055a00c4484dee1f73db2839\",\"dweb:/ipfs/QmUHxh9dkmaZsgho11Hdqz87RgxWXV8UjtEDDsrmNDFwD4\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol\":{\"keccak256\":\"0xb585e161910672e5fd7a59f006ec402dffa73b550fd9af6690e3b7260902f1b0\",\"urls\":[\"bzz-raw://a63ec6822047f53e2b4cb9b6135aedc1263580e7d2a8e65b7953f6af0ef1fa6f\",\"dweb:/ipfs/QmdGrDoPWTHfpu74wHTGtfHLEbKmmtmTUuS1oHgwsg5ru2\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":{\"keccak256\":\"0x3144434af3449276d1a4e92e7a0dd5e213df54bdff1c8d7de210c6afddf2a4ff\",\"urls\":[\"bzz-raw://a04571ba65a5111dca479803ec8582acf04e7f074db82b9a83610e5cc4787dcb\",\"dweb:/ipfs/QmXyfBJxHsFhhbZd7R2zwQWrRvMWFmNoTqZALTWBfLj3uJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":{\"keccak256\":\"0xad7031eb97c64c9dff0b4db53835514e46c79d710ab873cdd2d36a5fd20b8c1c\",\"urls\":[\"bzz-raw://866dcdd27d00364da1e05739d9d4b586227a66d8bc4a61f4638064774b74e9d2\",\"dweb:/ipfs/QmUbC1VsPf4Cj5xTqMiHcNBo1WLPcmmczp6M3WFAb4cpap\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":{\"keccak256\":\"0x2c0b74ba427192750d9ae3532ca9a5ca8bf55c78d42b31b5fd884c8446e236b7\",\"urls\":[\"bzz-raw://8de586eee05bb472e60c7f6dfde1deabe8d88b911bb24a25b835423b968e5853\",\"dweb:/ipfs/QmPxGyc41DfVWHd2dACS65HuAays534bFcPivqBSJ7ojgJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol\":{\"keccak256\":\"0x4835b0346a6f5375e7fe8b0241222cf4157f472bd9485c2b4c478dfc29f79b99\",\"urls\":[\"bzz-raw://0145ad367384248243b8c2b4e536a5c205d1ff2e99288af28aa61106b7b142dd\",\"dweb:/ipfs/Qmd7833Q2LyZ72pYjLx4VhCp1eGyxqDT1HXb8pxtfS5SmT\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol\":{\"keccak256\":\"0xeaa1d2609e979107c346e8eb52b83e91732fc79478223c32ee165f9a9c2af6a6\",\"urls\":[\"bzz-raw://60135b3b62c8841761048ae81b4adf4e60f237e4498c9bdc391dde6cfaad689f\",\"dweb:/ipfs/QmaRQsMewgAEkdYxHgm5c8FXuNomwr6p9LAxiGBTEpUn5u\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/types.sol\":{\"keccak256\":\"0x72697f13191393f77065f0a1ddf0f645ee5da02baeb2576070c4491b1903b997\",\"urls\":[\"bzz-raw://67adf20052dcff0fdc933fe7bffa1e245865ca7d9907afbf5eb6888bb1001f21\",\"dweb:/ipfs/QmUxa6DtgJpGi5HF8V8hoB2SHVEjKtte5PCJuQ1Fnh9gX8\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "bytecode": "0x608060405260058054600160a01b600160e01b031916600560a11b176001600160e01b0316600560e01b179055600680546103e863ffffffff199091161790553480156200004c57600080fd5b5060405162004019380380620040198339810160408190526200006f91620000e9565b600080546001600160a01b03199081166001600160a01b039889161760ff60a01b191690915560048054821696881696909617909555600580548616948716949094179093556001805485169286169290921790915560028054841691851691909117905560038054909216921691909117905562000195565b60008060008060008060c0878903121562000102578182fd5b86516200010f816200017c565b602088015190965062000122816200017c565b604088015190955062000135816200017c565b606088015190945062000148816200017c565b60808801519093506200015b816200017c565b60a08801519092506200016e816200017c565b809150509295509295509295565b6001600160a01b03811681146200019257600080fd5b50565b613e7480620001a56000396000f3fe608060405234801561001057600080fd5b50600436106101285760003560e01c80630333f5361461012d5780630d00a78f1461014257806311ff105e1461015557806313c6e4ed146101685780632ca880d41461017b5780633f4ba83a1461019957806344ff3e81146101a15780634d70d709146101b45780635c975abb146101c757806372c95f83146101dc57806375ef1f1e146101ef5780638456cb59146102025780638edaea6e1461020a57806396cbd61b1461021d5780639a055bbf146102305780639da9f33514610243578063a51a83f214610256578063ae90430a14610269578063b94c9c9d1461027c578063be16b3531461028f578063c251e585146102a2578063d8b457fc146102b5578063e30ac74e146102c8578063eb1762d7146102db575b600080fd5b61014061013b366004613301565b6102ee565b005b61014061015036600461318e565b6104a3565b6101406101633660046131e2565b6106af565b61014061017636600461301d565b6108cd565b610183610ab2565b604051610190919061340a565b60405180910390f35b610140610ac1565b6101406101af366004613251565b610b7f565b6101406101c236600461321a565b610d36565b6101cf610fdf565b604051610190919061346b565b6101406101ea3660046131e2565b610fef565b6101406101fd3660046131e2565b611102565b6101406112a0565b610140610218366004613251565b61135c565b61014061022b3660046131e2565b611586565b61014061023e3660046131e2565b611702565b6101406102513660046131aa565b611911565b610140610264366004613251565b611a3d565b6101406102773660046131aa565b611c7e565b61014061028a36600461321a565b611dab565b61014061029d3660046132c9565b611f8f565b6101406102b036600461321a565b6121b2565b6101406102c33660046132c9565b61230c565b6101406102d6366004612fa2565b6125c7565b6101406102e9366004613294565b612763565b600054600160a01b900460ff16156103215760405162461bcd60e51b81526004016103189061372f565b60405180910390fd5b610329612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610359908690600401613c67565b60a06040518083038186803b15801561037157600080fd5b505afa158015610385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a99190613069565b90506103b9338260000151612930565b6103d55760405162461bcd60e51b815260040161031890613b1a565b60065463ffffffff90811690831611156104015760405162461bcd60e51b8152600401610318906137f2565b6001546040516364c8121f60e01b81526001600160a01b03909116906364c8121f906104339086908690600401613d58565b600060405180830381600087803b15801561044d57600080fd5b505af1158015610461573d6000803e3d6000fd5b505050507f352e5a9ddfcadef33ec611971e6cabd1b96b665c0c773ab0d2f9aa14d3b484378383604051610496929190613d58565b60405180910390a1505050565b600054600160a01b900460ff16156104cd5760405162461bcd60e51b81526004016103189061372f565b6104d63361295f565b6104f25760405162461bcd60e51b815260040161031890613ab4565b6104fa612ddb565b600354604051631003065b60e21b81526001600160a01b039091169063400c196c9061052a908590600401613c47565b604080518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057991906130fa565b9050806020015163ffffffff166000146105a55760405162461bcd60e51b815260040161031890613b41565b6001546001600160a01b03166371fff9c56002846040518363ffffffff1660e01b81526004016105d6929190613da3565b60206040518083038186803b1580156105ee57600080fd5b505afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062691906131c6565b63ffffffff16156106495760405162461bcd60e51b81526004016103189061369d565b600354604051631e5edb8160e11b81526001600160a01b0390911690633cbdb70290610679908590600401613c47565b600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505050505050565b600054600160a01b900460ff16156106d95760405162461bcd60e51b81526004016103189061372f565b6106e1612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390610711908590600401613c67565b60606040518083038186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610761919061313b565b905061076b612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161079b91600401613c67565b60a06040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190613069565b90506107fb338260000151612930565b6108175760405162461bcd60e51b815260040161031890613b1a565b8160200151156108395760405162461bcd60e51b81526004016103189061366f565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc919061086c908690600190600401613ca7565b600060405180830381600087803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050507f2d8dcea899443d25755914a7b607b6f35803f7021d4bbd6b3751703ef93ad0f9836040516104969190613c67565b600054600160a01b900460ff16156108f75760405162461bcd60e51b81526004016103189061372f565b610900826129e8565b61091c5760405162461bcd60e51b815260040161031890613611565b6005546001546040805162f4606f60e81b81529051600160a01b9093046001600160401b0316926001600160a01b039092169163f4606f0091600480820192602092909190829003018186803b15801561097557600080fd5b505afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad91906131fe565b6001600160401b031611156109d45760405162461bcd60e51b8152600401610318906135da565b6109de3383612a74565b6109fa5760405162461bcd60e51b8152600401610318906134a4565b600154604051631c6a427b60e31b81526000916001600160a01b03169063e35213d890610a2b908690600401613c39565b602060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d91906131fe565b90507f8471ac76eed4fd351411fc932eab0d50749b8c1a424687616ce8969d94f290ca81848460405161049693929190613d03565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0d57600080fd5b505afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190612f7f565b6001600160a01b0316336001600160a01b031614610b755760405162461bcd60e51b8152600401610318906138a4565b610b7d612b85565b565b600054600160a01b900460ff1615610ba95760405162461bcd60e51b81526004016103189061372f565b610bb1612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610be1908690600401613c67565b60a06040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c319190613069565b9050610c41338260000151612930565b610c5d5760405162461bcd60e51b815260040161031890613b1a565b8060200151610c7e5760405162461bcd60e51b815260040161031890613a7f565b600282511015610ca05760405162461bcd60e51b8152600401610318906134ea565b60015460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190610cd3908690600090600401613ca7565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b505050507fac1583ef0ca4644b771be9cff6935d3533d0adfccd12b257ea34593a9405a8748383604051610496929190613cc2565b600054600160a01b900460ff1615610d605760405162461bcd60e51b81526004016103189061372f565b610d68612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610d98908690600401613c67565b60a06040518083038186803b158015610db057600080fd5b505afa158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190613069565b9050610df8338260000151612a74565b80610e0e5750610e0e3382600001516001612bfb565b610e2a5760405162461bcd60e51b815260040161031890613b1a565b8060200151610e4b5760405162461bcd60e51b815260040161031890613a30565b6000816040015163ffffffff1660001415610e7557600554600160e01b900463ffffffff16610e7b565b81604001515b600254604051628294c160e11b815291925063ffffffff8316916001600160a01b0390911690630105298290610eb5908890600401613c67565b60206040518083038186803b158015610ecd57600080fd5b505afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0591906131fe565b6001600160401b031610610f1857600080fd5b6002546040516313b1aa3f60e31b81526000916001600160a01b031690639d8d51f890610f49908890600401613c67565b602060405180830381600087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b91906131fe565b90507fe410e3564249423983b096bc44efa22aca4f7ba32f9aa07dca10910cb859689b818686604051610fd093929190613d77565b60405180910390a15050505050565b600054600160a01b900460ff1690565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190612f7f565b6001600160a01b0316336001600160a01b0316146110a35760405162461bcd60e51b8152600401610318906138a4565b60058054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517fa234354155278a122a79de09e47c7bb0793b5c6f69d0870a46f758e50a00446f906110f7908390613c67565b60405180910390a150565b600054600160a01b900460ff161561112c5760405162461bcd60e51b81526004016103189061372f565b611134612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90611164908590600401613c67565b60a06040518083038186803b15801561117c57600080fd5b505afa158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b49190613069565b90506111c4338260000151612930565b6111e05760405162461bcd60e51b815260040161031890613b1a565b8060200151156112025760405162461bcd60e51b815260040161031890613aea565b6001805460405163b5b9dc9160e01b81526001600160a01b039091169163b5b9dc9191611233918691600401613ca7565b600060405180830381600087803b15801561124d57600080fd5b505af1158015611261573d6000803e3d6000fd5b505050507f46dd4cb3caf3352a6088116e52d560593e4b8720047256bc5738237dec1fe387826040516112949190613c67565b60405180910390a15050565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b1580156112ec57600080fd5b505afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190612f7f565b6001600160a01b0316336001600160a01b0316146113545760405162461bcd60e51b8152600401610318906138a4565b610b7d612c04565b600054600160a01b900460ff16156113865760405162461bcd60e51b81526004016103189061372f565b61138e612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a1063906113be908690600401613c67565b60606040518083038186803b1580156113d657600080fd5b505afa1580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e919061313b565b9050611418612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161144891600401613c67565b60a06040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190613069565b90506114a8338260000151612930565b6114c45760405162461bcd60e51b815260040161031890613b1a565b60028351116114e55760405162461bcd60e51b8152600401610318906134ea565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf90611515908790600401613c67565b600060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b505050507f4fa4eab72679f15f58e711bb7a122ff036c272d75aa3857b401782af2fd8ea438484604051611578929190613cc2565b60405180910390a150505050565b600054600160a01b900460ff16156115b05760405162461bcd60e51b81526004016103189061372f565b6115b93361295f565b6115d55760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b0390911690637106695690611605908490600401613c67565b60206040518083038186803b15801561161d57600080fd5b505afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612ffd565b6116715760405162461bcd60e51b815260040161031890613759565b6003546040516396cbd61b60e01b81526001600160a01b03909116906396cbd61b906116a1908490600401613c67565b600060405180830381600087803b1580156116bb57600080fd5b505af11580156116cf573d6000803e3d6000fd5b505050507f97c2ae95ac83b91a5a298dab10c65cd756b98181999089e6826e65fbdac20926816040516110f79190613c67565b600054600160a01b900460ff161561172c5760405162461bcd60e51b81526004016103189061372f565b611734612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611764908590600401613c67565b60606040518083038186803b15801561177c57600080fd5b505afa158015611790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b4919061313b565b90506117be612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d916117ee91600401613c67565b60a06040518083038186803b15801561180657600080fd5b505afa15801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190613069565b905061184e338260000151612a74565b8061186457506118643382600001516003612bfb565b6118805760405162461bcd60e51b815260040161031890613b1a565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf906118b0908690600401613c67565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050507f8f75fc93671c07b9e40b8bbe17e3a620511136319755e9481845aafca8dc1aa1836040516104969190613c67565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561195d57600080fd5b505afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190612f7f565b6001600160a01b0316336001600160a01b0316146119c55760405162461bcd60e51b8152600401610318906138a4565b60055463ffffffff600160e01b909104811690821610156119f85760405162461bcd60e51b8152600401610318906139b4565b6006805463ffffffff191663ffffffff83161790556040517f6a101addaeb36f0540c39e9da515b78ec6a64a7afc1353ad453cac27c20019e2906110f7908390613c56565b600054600160a01b900460ff1615611a675760405162461bcd60e51b81526004016103189061372f565b611a6f612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611a9f908690600401613c67565b60606040518083038186803b158015611ab757600080fd5b505afa158015611acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aef919061313b565b9050611af9612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611b2991600401613c67565b60a06040518083038186803b158015611b4157600080fd5b505afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b799190613069565b9050611b89338260000151612930565b611ba55760405162461bcd60e51b815260040161031890613b1a565b8160200151611bc65760405162461bcd60e51b81526004016103189061363c565b600283511015611be85760405162461bcd60e51b8152600401610318906134ea565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190611c1b908790600090600401613ca7565b600060405180830381600087803b158015611c3557600080fd5b505af1158015611c49573d6000803e3d6000fd5b505050507fe4a6189a3a227169fa9e9a63e2a0fb3eed9e24a6fcfb924b0aad2e383c38b6e18484604051611578929190613cc2565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015611cca57600080fd5b505afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d029190612f7f565b6001600160a01b0316336001600160a01b031614611d325760405162461bcd60e51b8152600401610318906138a4565b60065463ffffffff9081169082161115611d5e5760405162461bcd60e51b815260040161031890613b85565b600580546001600160e01b0316600160e01b63ffffffff8416021790556040517f98963f0532a697d7898270c055c3b680774afb0ef5c1dbfeac5667b93277a429906110f7908390613c56565b600054600160a01b900460ff1615611dd55760405162461bcd60e51b81526004016103189061372f565b611ddd612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611e0d908690600401613c67565b60606040518083038186803b158015611e2557600080fd5b505afa158015611e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5d919061313b565b9050611e67612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611e9791600401613c67565b60a06040518083038186803b158015611eaf57600080fd5b505afa158015611ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee79190613069565b9050611ef7338260000151612a74565b80611f0d5750611f0d3382600001516002612bfb565b80611f215750611f21338260000151612930565b611f3d5760405162461bcd60e51b815260040161031890613b1a565b8060200151611f5e5760405162461bcd60e51b815260040161031890613849565b7f6ae15f9316c5fc53e8e2372fd9e88f97030a66b96d398650f6ba0399ac0d91b48484604051611578929190613c7b565b600054600160a01b900460ff1615611fb95760405162461bcd60e51b81526004016103189061372f565b611fc23361295f565b611fde5760405162461bcd60e51b815260040161031890613ab4565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e9061200e908490600401613c47565b60206040518083038186803b15801561202657600080fd5b505afa15801561203a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205e9190612ffd565b61207a5760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906120ac9085908590600401613d3b565b60206040518083038186803b1580156120c457600080fd5b505afa1580156120d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fc9190612ffd565b151560011461211d5760405162461bcd60e51b815260040161031890613bf6565b60035460405163be16b35360e01b81526001600160a01b039091169063be16b3539061214f9085908590600401613d3b565b600060405180830381600087803b15801561216957600080fd5b505af115801561217d573d6000803e3d6000fd5b505050507f509b6f4e4a643a51ebb76e1f4d63753e23c00161d81385e3d92122aa081070998282604051611294929190613d3b565b600054600160a01b900460ff16156121dc5760405162461bcd60e51b81526004016103189061372f565b6121e4612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90612214908690600401613c67565b60a06040518083038186803b15801561222c57600080fd5b505afa158015612240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122649190613069565b9050612274338260000151612a74565b806122885750612288338260000151612930565b8061229e575061229e3382600001516000612bfb565b6122ba5760405162461bcd60e51b815260040161031890613b1a565b80602001516122db5760405162461bcd60e51b81526004016103189061378c565b7f123e1f2e117cd190e1cfbe2a43d5f0247033690e4efb749b6e2b8cca75e0d3668383604051610496929190613c7b565b600054600160a01b900460ff16156123365760405162461bcd60e51b81526004016103189061372f565b61233f3361295f565b61235b5760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b039091169063710669569061238b908590600401613c67565b60206040518083038186803b1580156123a357600080fd5b505afa1580156123b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123db9190612ffd565b6123f75760405162461bcd60e51b815260040161031890613759565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e90612427908490600401613c47565b60206040518083038186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124779190612ffd565b6124935760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906124c59085908590600401613d3b565b60206040518083038186803b1580156124dd57600080fd5b505afa1580156124f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125159190612ffd565b156125325760405162461bcd60e51b8152600401610318906138fe565b60035460405163362d15ff60e21b81526001600160a01b039091169063d8b457fc906125649085908590600401613d3b565b600060405180830381600087803b15801561257e57600080fd5b505af1158015612592573d6000803e3d6000fd5b505050507f999834ed6c0c90437cd70656e57e667804b476062c06bf59612ee7e6737d007a8282604051611294929190613d3b565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561261357600080fd5b505afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190612f7f565b6001600160a01b0316336001600160a01b03161461267b5760405162461bcd60e51b8152600401610318906138a4565b600254612692906001600160a01b03168486612c6a565b6001546126a9906001600160a01b03168386612c6a565b6003546126c0906001600160a01b03168286612c6a565b7f415f0af8f5b6deaac4fa61971b0153fa777da7c922b5f0031947b017bd0658d1846001600160a01b038516156126f75784612704565b6002546001600160a01b03165b6001600160a01b038516156127195784612726565b6001546001600160a01b03165b6001600160a01b0385161561273b5784612748565b6003546001600160a01b03165b604051612758949392919061341e565b60405180910390a133ff5b600054600160a01b900460ff161561278d5760405162461bcd60e51b81526004016103189061372f565b612795612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d906127c5908690600401613c67565b60a06040518083038186803b1580156127dd57600080fd5b505afa1580156127f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128159190613069565b9050612825338260000151612a74565b6128415760405162461bcd60e51b815260040161031890613985565b61284a826129e8565b6128665760405162461bcd60e51b815260040161031890613611565b61286f82612cd0565b158061287f575061287f3361295f565b61289b5760405162461bcd60e51b8152600401610318906136e1565b60015460405163199b26e560e11b81526001600160a01b03909116906333364dca906128cd9086908690600401613ce6565b600060405180830381600087803b1580156128e757600080fd5b505af11580156128fb573d6000803e3d6000fd5b505050507f2e95886722a90513837fce57d448fdad9e03cad92ffa72904ba909ccd96e24708383604051610496929190613ce6565b600061293b82612cd0565b61294d5761294883612ce8565b612956565b6129568361295f565b90505b92915050565b600554604051631ec2232760e01b81526000916001600160a01b031690631ec223279061299090859060040161340a565b60206040518083038186803b1580156129a857600080fd5b505afa1580156129bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e09190612ffd565b90505b919050565b60006129f382612d1b565b15612a17578160200151612a0683612d23565b6001600160a01b03161490506129e3565b612a2082612d52565b15612a44578160200151612a3383612d5b565b6001600160401b03161490506129e3565b612a4d82612cd0565b15612a6c578160200151612a6083612d82565b61ffff161490506129e3565b506000919050565b6000612a7f82612d1b565b15612aa857612a8d82612d23565b6001600160a01b0316836001600160a01b0316149050612959565b612ab182612d52565b15612b45576004546001600160a01b0316632746272984612ad185612d5b565b6040518363ffffffff1660e01b8152600401612aee929190613449565b60206040518083038186803b158015612b0657600080fd5b505afa158015612b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3e9190612ffd565b9050612959565b612b4e82612cd0565b15612b8357600554604051631ec2232760e01b81526001600160a01b0390911690631ec2232790612aee90339060040161340a565bfe5b600054600160a01b900460ff16612bae5760405162461bcd60e51b815260040161031890613476565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612be4612da9565b604051612bf1919061340a565b60405180910390a1565b60009392505050565b600054600160a01b900460ff1615612c2e5760405162461bcd60e51b81526004016103189061372f565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612be4612da9565b60405163f2fde38b60e01b815283906001600160a01b0382169063f2fde38b90612c9890859060040161340a565b600060405180830381600087803b158015612cb257600080fd5b505af1158015612cc6573d6000803e3d6000fd5b5050505050505050565b600060025b60ff16826000015160ff16149050919050565b600554604051630e830b8760e41b81526000916001600160a01b03169063e830b870906129909085908590600401613449565b600080612cd5565b6000612d2e82612d1b565b612d4a5760405162461bcd60e51b815260040161031890613935565b506020015190565b60006001612cd5565b6000612d6682612d52565b612d4a5760405162461bcd60e51b815260040161031890613539565b6000612d8d82612cd0565b612d4a5760405162461bcd60e51b815260040161031890613587565b3390565b6040518060800160405280612dc0612ddb565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112612e22578081fd5b81356001600160401b03811115612e37578182fd5b6020612e468182840201613dba565b828152925080830184820160005b84811015612ec0578135870188603f820112612e6f57600080fd5b612e796040613dba565b8086830160005b6002811015612eaa57612e988d8a8435880101612edb565b84529288019290880190600101612e80565b5050855250509183019190830190600101612e54565b505050505092915050565b8051801515811461295957600080fd5b600082601f830112612eeb578081fd5b81356001600160401b03811115612f00578182fd5b612f13601f8201601f1916602001613dba565b9150808252836020828501011115612f2a57600080fd5b8060208401602084013760009082016020015292915050565b600060408284031215612f54578081fd5b612f5e6040613dba565b90508135612f6b81613e2f565b808252506020820135602082015292915050565b600060208284031215612f90578081fd5b8151612f9b81613de0565b9392505050565b60008060008060808587031215612fb7578283fd5b8435612fc281613de0565b93506020850135612fd281613de0565b92506040850135612fe281613de0565b91506060850135612ff281613de0565b939692955090935050565b60006020828403121561300e578081fd5b81518015158114612f9b578182fd5b6000806060838503121561302f578182fd5b6130398484612f43565b915060408301356001600160401b03811115613053578182fd5b61305f85828601612e12565b9150509250929050565b600081830360a081121561307b578182fd5b6130856080613dba565b6040821215613092578283fd5b61309c6040613dba565b915083516130a981613e2f565b8252602084810151908301528181526130c58560408601612ecb565b6020820152606084015191506130da82613e08565b8160408201526130ed8560808601612ecb565b6060820152949350505050565b60006040828403121561310b578081fd5b6131156040613dba565b61311f8484612ecb565b8152602083015161312f81613e08565b60208201529392505050565b60006060828403121561314c578081fd5b6131566060613dba565b825161316181613e1a565b81526131708460208501612ecb565b60208201526131828460408501612ecb565b60408201529392505050565b60006020828403121561319f578081fd5b8135612f9b81613df8565b6000602082840312156131bb578081fd5b8135612f9b81613e08565b6000602082840312156131d7578081fd5b8151612f9b81613e08565b6000602082840312156131f3578081fd5b8135612f9b81613e1a565b60006020828403121561320f578081fd5b8151612f9b81613e1a565b6000806040838503121561322c578182fd5b823561323781613e1a565b915060208301356001600160401b03811115613053578182fd5b60008060408385031215613263578182fd5b823561326e81613e1a565b915060208301356001600160401b03811115613288578182fd5b61305f85828601612edb565b600080606083850312156132a6578182fd5b82356132b181613e1a565b91506132c08460208501612f43565b90509250929050565b600080604083850312156132db578182fd5b82356132e681613e1a565b915060208301356132f681613df8565b809150509250929050565b60008060408385031215613313578182fd5b823561331e81613e1a565b915060208301356132f681613e08565b6000815180845260208085018081965082840281019150828601855b858110156133a057828403895281518460408101895b600281101561338b5787820383526133798285516133ad565b93890193928901929150600101613360565b509a87019a955050509084019060010161334a565b5091979650505050505050565b60008151808452815b818110156133d2576020818501810151868301820152016133b6565b818111156133e35782602083870101525b50601f01601f19169290920160200192915050565b805160ff168252602090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b039290921682526001600160401b0316602082015260400190565b901515815260200190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4163636573732064656e69656420756e6465722070726f7669646564206f776e60408201526506572736869760d41b606082015260800190565b6020808252602f908201527f54686520726561736f6e2073686f756c64206265206174206c6561737420322060408201526e63686172616374657273206c6f6e6760881b606082015260800190565b6020808252602e908201527f61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d62657220436860408201526d0616e6e656c4f776e6572736869760941b606082015260800190565b60208082526033908201527f617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f60408201527207570204368616e6e656c4f776e65727368697606c1b606082015260800190565b6020808252601f908201527f4368616e6e656c20696e7374616e636573206c696d6974207265616368656400604082015260600190565b6020808252601190820152700496e76616c6964206f776e65727368697607c1b604082015260600190565b602080825260199082015278159a59195bc8185b1c9958591e4819195858dd1a5d985d1959603a1b604082015260600190565b602080825260149082015273566964656f20616c72656164792061637469766560601b604082015260600190565b60208082526024908201527f47726f75702773206368616e6e656c7320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252602e908201527f4f6e6c79206c6561642063616e20757064617465206f776e657273686970207460408201526d06f2043757261746f7247726f75760941b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526019908201527810dd5c985d1bdc881a59081b9bdd081c9958dbd9db9a5e9959603a1b604082015260600190565b6020808252601b908201527a151a1a5cc818da185b9b995b081a5cc819195858dd1a5d985d1959602a1b604082015260600190565b60208082526017908201527611dc9bdd5c081a59081b9bdd081c9958dbd9db9a5e9959604a1b604082015260600190565b60208082526037908201527f546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766040820152761a59195bdcd4195c90da185b9b995b13585e131a5b5a5d604a1b606082015260800190565b6020808252603b908201527f43616e6e6f742075706461746520766964656f206d657461646174612077686560408201527a6e20746865206368616e6e656c206973206e6f742061637469766560281b606082015260800190565b6020808252603a908201527f546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746040820152796564207468726f7567682070726f706f73616c2073797374656d60301b606082015260800190565b6020808252601f908201527f43757261746f7220697320616c726561647920696e207468652067726f757000604082015260600190565b60208082526030908201527f6173416464726573732063616c6c6564206f6e206e6f6e2d616464726573732060408201526f04368616e6e656c4f776e6572736869760841b606082015260800190565b60208082526015908201527413dddb995c881858d8d95cdcc81c995c5d5a5c9959605a1b604082015260600190565b60208082526056908201527f766964656f735065724368616e6e656c4d61784c696d6974206d75737420626560408201527f2067726561746572207468616e206f7220657175616c20746f20766964656f7360608201527514195c90da185b9b995b111959985d5b1d131a5b5a5d60521b608082015260a00190565b6020808252602f908201527f43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746860408201526e61742069736e27742061637469766560881b606082015260800190565b6020808252601b908201527a10da185b9b995b08185b1c9958591e4819195858dd1a5d985d1959602a1b604082015260600190565b6020808252601c908201527b416374697665206c656164206163636573732072657175697265642160201b604082015260600190565b6020808252601690820152754368616e6e656c20616c72656164792061637469766560501b604082015260600190565b6020808252600d908201526c1058d8d95cdcc819195b9a5959609a1b604082015260600190565b60208082526024908201527f47726f757027732063757261746f727320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252604b908201527f766964656f735065724368616e6e656c44656661756c744c696d69742063616e60408201527f6e6f74206578636565642063757272656e7420766964656f735065724368616e60608201526a1b995b13585e131a5b5a5d60aa1b608082015260a00190565b60208082526023908201527f43757261746f7220697320616c7265616479206e6f7420696e2074686520677260408201526206f75760ec1b606082015260800190565b6040810161295982846133f8565b61ffff91909116815260200190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0383168152604060208201819052600090613c9f9083018461332e565b949350505050565b6001600160401b039290921682521515602082015260400190565b6001600160401b0383168152604060208201819052600090613c9f908301846133ad565b6001600160401b038316815260608101612f9b60208301846133f8565b6001600160401b03841681526000613d1e60208301856133f8565b60806060830152613d32608083018461332e565b95945050505050565b6001600160401b0392909216825261ffff16602082015260400190565b6001600160401b0392909216825263ffffffff16602082015260400190565b6001600160401b03848116825283166020820152606060408201819052600090613d329083018461332e565b60ff92909216825261ffff16602082015260400190565b6040518181016001600160401b0381118282101715613dd857600080fd5b604052919050565b6001600160a01b0381168114613df557600080fd5b50565b61ffff81168114613df557600080fd5b63ffffffff81168114613df557600080fd5b6001600160401b0381168114613df557600080fd5b60ff81168114613df557600080fdfea2646970667358221220c5a70b25fd66d21cff818f02e8dcf2e14dbf7d28340cdbf94e9e0f399e51f0bc64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101285760003560e01c80630333f5361461012d5780630d00a78f1461014257806311ff105e1461015557806313c6e4ed146101685780632ca880d41461017b5780633f4ba83a1461019957806344ff3e81146101a15780634d70d709146101b45780635c975abb146101c757806372c95f83146101dc57806375ef1f1e146101ef5780638456cb59146102025780638edaea6e1461020a57806396cbd61b1461021d5780639a055bbf146102305780639da9f33514610243578063a51a83f214610256578063ae90430a14610269578063b94c9c9d1461027c578063be16b3531461028f578063c251e585146102a2578063d8b457fc146102b5578063e30ac74e146102c8578063eb1762d7146102db575b600080fd5b61014061013b366004613301565b6102ee565b005b61014061015036600461318e565b6104a3565b6101406101633660046131e2565b6106af565b61014061017636600461301d565b6108cd565b610183610ab2565b604051610190919061340a565b60405180910390f35b610140610ac1565b6101406101af366004613251565b610b7f565b6101406101c236600461321a565b610d36565b6101cf610fdf565b604051610190919061346b565b6101406101ea3660046131e2565b610fef565b6101406101fd3660046131e2565b611102565b6101406112a0565b610140610218366004613251565b61135c565b61014061022b3660046131e2565b611586565b61014061023e3660046131e2565b611702565b6101406102513660046131aa565b611911565b610140610264366004613251565b611a3d565b6101406102773660046131aa565b611c7e565b61014061028a36600461321a565b611dab565b61014061029d3660046132c9565b611f8f565b6101406102b036600461321a565b6121b2565b6101406102c33660046132c9565b61230c565b6101406102d6366004612fa2565b6125c7565b6101406102e9366004613294565b612763565b600054600160a01b900460ff16156103215760405162461bcd60e51b81526004016103189061372f565b60405180910390fd5b610329612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610359908690600401613c67565b60a06040518083038186803b15801561037157600080fd5b505afa158015610385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a99190613069565b90506103b9338260000151612930565b6103d55760405162461bcd60e51b815260040161031890613b1a565b60065463ffffffff90811690831611156104015760405162461bcd60e51b8152600401610318906137f2565b6001546040516364c8121f60e01b81526001600160a01b03909116906364c8121f906104339086908690600401613d58565b600060405180830381600087803b15801561044d57600080fd5b505af1158015610461573d6000803e3d6000fd5b505050507f352e5a9ddfcadef33ec611971e6cabd1b96b665c0c773ab0d2f9aa14d3b484378383604051610496929190613d58565b60405180910390a1505050565b600054600160a01b900460ff16156104cd5760405162461bcd60e51b81526004016103189061372f565b6104d63361295f565b6104f25760405162461bcd60e51b815260040161031890613ab4565b6104fa612ddb565b600354604051631003065b60e21b81526001600160a01b039091169063400c196c9061052a908590600401613c47565b604080518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057991906130fa565b9050806020015163ffffffff166000146105a55760405162461bcd60e51b815260040161031890613b41565b6001546001600160a01b03166371fff9c56002846040518363ffffffff1660e01b81526004016105d6929190613da3565b60206040518083038186803b1580156105ee57600080fd5b505afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062691906131c6565b63ffffffff16156106495760405162461bcd60e51b81526004016103189061369d565b600354604051631e5edb8160e11b81526001600160a01b0390911690633cbdb70290610679908590600401613c47565b600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505050505050565b600054600160a01b900460ff16156106d95760405162461bcd60e51b81526004016103189061372f565b6106e1612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390610711908590600401613c67565b60606040518083038186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610761919061313b565b905061076b612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161079b91600401613c67565b60a06040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190613069565b90506107fb338260000151612930565b6108175760405162461bcd60e51b815260040161031890613b1a565b8160200151156108395760405162461bcd60e51b81526004016103189061366f565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc919061086c908690600190600401613ca7565b600060405180830381600087803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050507f2d8dcea899443d25755914a7b607b6f35803f7021d4bbd6b3751703ef93ad0f9836040516104969190613c67565b600054600160a01b900460ff16156108f75760405162461bcd60e51b81526004016103189061372f565b610900826129e8565b61091c5760405162461bcd60e51b815260040161031890613611565b6005546001546040805162f4606f60e81b81529051600160a01b9093046001600160401b0316926001600160a01b039092169163f4606f0091600480820192602092909190829003018186803b15801561097557600080fd5b505afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad91906131fe565b6001600160401b031611156109d45760405162461bcd60e51b8152600401610318906135da565b6109de3383612a74565b6109fa5760405162461bcd60e51b8152600401610318906134a4565b600154604051631c6a427b60e31b81526000916001600160a01b03169063e35213d890610a2b908690600401613c39565b602060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d91906131fe565b90507f8471ac76eed4fd351411fc932eab0d50749b8c1a424687616ce8969d94f290ca81848460405161049693929190613d03565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0d57600080fd5b505afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190612f7f565b6001600160a01b0316336001600160a01b031614610b755760405162461bcd60e51b8152600401610318906138a4565b610b7d612b85565b565b600054600160a01b900460ff1615610ba95760405162461bcd60e51b81526004016103189061372f565b610bb1612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610be1908690600401613c67565b60a06040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c319190613069565b9050610c41338260000151612930565b610c5d5760405162461bcd60e51b815260040161031890613b1a565b8060200151610c7e5760405162461bcd60e51b815260040161031890613a7f565b600282511015610ca05760405162461bcd60e51b8152600401610318906134ea565b60015460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190610cd3908690600090600401613ca7565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b505050507fac1583ef0ca4644b771be9cff6935d3533d0adfccd12b257ea34593a9405a8748383604051610496929190613cc2565b600054600160a01b900460ff1615610d605760405162461bcd60e51b81526004016103189061372f565b610d68612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610d98908690600401613c67565b60a06040518083038186803b158015610db057600080fd5b505afa158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190613069565b9050610df8338260000151612a74565b80610e0e5750610e0e3382600001516001612bfb565b610e2a5760405162461bcd60e51b815260040161031890613b1a565b8060200151610e4b5760405162461bcd60e51b815260040161031890613a30565b6000816040015163ffffffff1660001415610e7557600554600160e01b900463ffffffff16610e7b565b81604001515b600254604051628294c160e11b815291925063ffffffff8316916001600160a01b0390911690630105298290610eb5908890600401613c67565b60206040518083038186803b158015610ecd57600080fd5b505afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0591906131fe565b6001600160401b031610610f1857600080fd5b6002546040516313b1aa3f60e31b81526000916001600160a01b031690639d8d51f890610f49908890600401613c67565b602060405180830381600087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b91906131fe565b90507fe410e3564249423983b096bc44efa22aca4f7ba32f9aa07dca10910cb859689b818686604051610fd093929190613d77565b60405180910390a15050505050565b600054600160a01b900460ff1690565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190612f7f565b6001600160a01b0316336001600160a01b0316146110a35760405162461bcd60e51b8152600401610318906138a4565b60058054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517fa234354155278a122a79de09e47c7bb0793b5c6f69d0870a46f758e50a00446f906110f7908390613c67565b60405180910390a150565b600054600160a01b900460ff161561112c5760405162461bcd60e51b81526004016103189061372f565b611134612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90611164908590600401613c67565b60a06040518083038186803b15801561117c57600080fd5b505afa158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b49190613069565b90506111c4338260000151612930565b6111e05760405162461bcd60e51b815260040161031890613b1a565b8060200151156112025760405162461bcd60e51b815260040161031890613aea565b6001805460405163b5b9dc9160e01b81526001600160a01b039091169163b5b9dc9191611233918691600401613ca7565b600060405180830381600087803b15801561124d57600080fd5b505af1158015611261573d6000803e3d6000fd5b505050507f46dd4cb3caf3352a6088116e52d560593e4b8720047256bc5738237dec1fe387826040516112949190613c67565b60405180910390a15050565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b1580156112ec57600080fd5b505afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190612f7f565b6001600160a01b0316336001600160a01b0316146113545760405162461bcd60e51b8152600401610318906138a4565b610b7d612c04565b600054600160a01b900460ff16156113865760405162461bcd60e51b81526004016103189061372f565b61138e612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a1063906113be908690600401613c67565b60606040518083038186803b1580156113d657600080fd5b505afa1580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e919061313b565b9050611418612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161144891600401613c67565b60a06040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190613069565b90506114a8338260000151612930565b6114c45760405162461bcd60e51b815260040161031890613b1a565b60028351116114e55760405162461bcd60e51b8152600401610318906134ea565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf90611515908790600401613c67565b600060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b505050507f4fa4eab72679f15f58e711bb7a122ff036c272d75aa3857b401782af2fd8ea438484604051611578929190613cc2565b60405180910390a150505050565b600054600160a01b900460ff16156115b05760405162461bcd60e51b81526004016103189061372f565b6115b93361295f565b6115d55760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b0390911690637106695690611605908490600401613c67565b60206040518083038186803b15801561161d57600080fd5b505afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612ffd565b6116715760405162461bcd60e51b815260040161031890613759565b6003546040516396cbd61b60e01b81526001600160a01b03909116906396cbd61b906116a1908490600401613c67565b600060405180830381600087803b1580156116bb57600080fd5b505af11580156116cf573d6000803e3d6000fd5b505050507f97c2ae95ac83b91a5a298dab10c65cd756b98181999089e6826e65fbdac20926816040516110f79190613c67565b600054600160a01b900460ff161561172c5760405162461bcd60e51b81526004016103189061372f565b611734612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611764908590600401613c67565b60606040518083038186803b15801561177c57600080fd5b505afa158015611790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b4919061313b565b90506117be612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d916117ee91600401613c67565b60a06040518083038186803b15801561180657600080fd5b505afa15801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190613069565b905061184e338260000151612a74565b8061186457506118643382600001516003612bfb565b6118805760405162461bcd60e51b815260040161031890613b1a565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf906118b0908690600401613c67565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050507f8f75fc93671c07b9e40b8bbe17e3a620511136319755e9481845aafca8dc1aa1836040516104969190613c67565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561195d57600080fd5b505afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190612f7f565b6001600160a01b0316336001600160a01b0316146119c55760405162461bcd60e51b8152600401610318906138a4565b60055463ffffffff600160e01b909104811690821610156119f85760405162461bcd60e51b8152600401610318906139b4565b6006805463ffffffff191663ffffffff83161790556040517f6a101addaeb36f0540c39e9da515b78ec6a64a7afc1353ad453cac27c20019e2906110f7908390613c56565b600054600160a01b900460ff1615611a675760405162461bcd60e51b81526004016103189061372f565b611a6f612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611a9f908690600401613c67565b60606040518083038186803b158015611ab757600080fd5b505afa158015611acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aef919061313b565b9050611af9612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611b2991600401613c67565b60a06040518083038186803b158015611b4157600080fd5b505afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b799190613069565b9050611b89338260000151612930565b611ba55760405162461bcd60e51b815260040161031890613b1a565b8160200151611bc65760405162461bcd60e51b81526004016103189061363c565b600283511015611be85760405162461bcd60e51b8152600401610318906134ea565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190611c1b908790600090600401613ca7565b600060405180830381600087803b158015611c3557600080fd5b505af1158015611c49573d6000803e3d6000fd5b505050507fe4a6189a3a227169fa9e9a63e2a0fb3eed9e24a6fcfb924b0aad2e383c38b6e18484604051611578929190613cc2565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015611cca57600080fd5b505afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d029190612f7f565b6001600160a01b0316336001600160a01b031614611d325760405162461bcd60e51b8152600401610318906138a4565b60065463ffffffff9081169082161115611d5e5760405162461bcd60e51b815260040161031890613b85565b600580546001600160e01b0316600160e01b63ffffffff8416021790556040517f98963f0532a697d7898270c055c3b680774afb0ef5c1dbfeac5667b93277a429906110f7908390613c56565b600054600160a01b900460ff1615611dd55760405162461bcd60e51b81526004016103189061372f565b611ddd612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611e0d908690600401613c67565b60606040518083038186803b158015611e2557600080fd5b505afa158015611e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5d919061313b565b9050611e67612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611e9791600401613c67565b60a06040518083038186803b158015611eaf57600080fd5b505afa158015611ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee79190613069565b9050611ef7338260000151612a74565b80611f0d5750611f0d3382600001516002612bfb565b80611f215750611f21338260000151612930565b611f3d5760405162461bcd60e51b815260040161031890613b1a565b8060200151611f5e5760405162461bcd60e51b815260040161031890613849565b7f6ae15f9316c5fc53e8e2372fd9e88f97030a66b96d398650f6ba0399ac0d91b48484604051611578929190613c7b565b600054600160a01b900460ff1615611fb95760405162461bcd60e51b81526004016103189061372f565b611fc23361295f565b611fde5760405162461bcd60e51b815260040161031890613ab4565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e9061200e908490600401613c47565b60206040518083038186803b15801561202657600080fd5b505afa15801561203a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205e9190612ffd565b61207a5760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906120ac9085908590600401613d3b565b60206040518083038186803b1580156120c457600080fd5b505afa1580156120d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fc9190612ffd565b151560011461211d5760405162461bcd60e51b815260040161031890613bf6565b60035460405163be16b35360e01b81526001600160a01b039091169063be16b3539061214f9085908590600401613d3b565b600060405180830381600087803b15801561216957600080fd5b505af115801561217d573d6000803e3d6000fd5b505050507f509b6f4e4a643a51ebb76e1f4d63753e23c00161d81385e3d92122aa081070998282604051611294929190613d3b565b600054600160a01b900460ff16156121dc5760405162461bcd60e51b81526004016103189061372f565b6121e4612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90612214908690600401613c67565b60a06040518083038186803b15801561222c57600080fd5b505afa158015612240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122649190613069565b9050612274338260000151612a74565b806122885750612288338260000151612930565b8061229e575061229e3382600001516000612bfb565b6122ba5760405162461bcd60e51b815260040161031890613b1a565b80602001516122db5760405162461bcd60e51b81526004016103189061378c565b7f123e1f2e117cd190e1cfbe2a43d5f0247033690e4efb749b6e2b8cca75e0d3668383604051610496929190613c7b565b600054600160a01b900460ff16156123365760405162461bcd60e51b81526004016103189061372f565b61233f3361295f565b61235b5760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b039091169063710669569061238b908590600401613c67565b60206040518083038186803b1580156123a357600080fd5b505afa1580156123b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123db9190612ffd565b6123f75760405162461bcd60e51b815260040161031890613759565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e90612427908490600401613c47565b60206040518083038186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124779190612ffd565b6124935760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906124c59085908590600401613d3b565b60206040518083038186803b1580156124dd57600080fd5b505afa1580156124f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125159190612ffd565b156125325760405162461bcd60e51b8152600401610318906138fe565b60035460405163362d15ff60e21b81526001600160a01b039091169063d8b457fc906125649085908590600401613d3b565b600060405180830381600087803b15801561257e57600080fd5b505af1158015612592573d6000803e3d6000fd5b505050507f999834ed6c0c90437cd70656e57e667804b476062c06bf59612ee7e6737d007a8282604051611294929190613d3b565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561261357600080fd5b505afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190612f7f565b6001600160a01b0316336001600160a01b03161461267b5760405162461bcd60e51b8152600401610318906138a4565b600254612692906001600160a01b03168486612c6a565b6001546126a9906001600160a01b03168386612c6a565b6003546126c0906001600160a01b03168286612c6a565b7f415f0af8f5b6deaac4fa61971b0153fa777da7c922b5f0031947b017bd0658d1846001600160a01b038516156126f75784612704565b6002546001600160a01b03165b6001600160a01b038516156127195784612726565b6001546001600160a01b03165b6001600160a01b0385161561273b5784612748565b6003546001600160a01b03165b604051612758949392919061341e565b60405180910390a133ff5b600054600160a01b900460ff161561278d5760405162461bcd60e51b81526004016103189061372f565b612795612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d906127c5908690600401613c67565b60a06040518083038186803b1580156127dd57600080fd5b505afa1580156127f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128159190613069565b9050612825338260000151612a74565b6128415760405162461bcd60e51b815260040161031890613985565b61284a826129e8565b6128665760405162461bcd60e51b815260040161031890613611565b61286f82612cd0565b158061287f575061287f3361295f565b61289b5760405162461bcd60e51b8152600401610318906136e1565b60015460405163199b26e560e11b81526001600160a01b03909116906333364dca906128cd9086908690600401613ce6565b600060405180830381600087803b1580156128e757600080fd5b505af11580156128fb573d6000803e3d6000fd5b505050507f2e95886722a90513837fce57d448fdad9e03cad92ffa72904ba909ccd96e24708383604051610496929190613ce6565b600061293b82612cd0565b61294d5761294883612ce8565b612956565b6129568361295f565b90505b92915050565b600554604051631ec2232760e01b81526000916001600160a01b031690631ec223279061299090859060040161340a565b60206040518083038186803b1580156129a857600080fd5b505afa1580156129bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e09190612ffd565b90505b919050565b60006129f382612d1b565b15612a17578160200151612a0683612d23565b6001600160a01b03161490506129e3565b612a2082612d52565b15612a44578160200151612a3383612d5b565b6001600160401b03161490506129e3565b612a4d82612cd0565b15612a6c578160200151612a6083612d82565b61ffff161490506129e3565b506000919050565b6000612a7f82612d1b565b15612aa857612a8d82612d23565b6001600160a01b0316836001600160a01b0316149050612959565b612ab182612d52565b15612b45576004546001600160a01b0316632746272984612ad185612d5b565b6040518363ffffffff1660e01b8152600401612aee929190613449565b60206040518083038186803b158015612b0657600080fd5b505afa158015612b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3e9190612ffd565b9050612959565b612b4e82612cd0565b15612b8357600554604051631ec2232760e01b81526001600160a01b0390911690631ec2232790612aee90339060040161340a565bfe5b600054600160a01b900460ff16612bae5760405162461bcd60e51b815260040161031890613476565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612be4612da9565b604051612bf1919061340a565b60405180910390a1565b60009392505050565b600054600160a01b900460ff1615612c2e5760405162461bcd60e51b81526004016103189061372f565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612be4612da9565b60405163f2fde38b60e01b815283906001600160a01b0382169063f2fde38b90612c9890859060040161340a565b600060405180830381600087803b158015612cb257600080fd5b505af1158015612cc6573d6000803e3d6000fd5b5050505050505050565b600060025b60ff16826000015160ff16149050919050565b600554604051630e830b8760e41b81526000916001600160a01b03169063e830b870906129909085908590600401613449565b600080612cd5565b6000612d2e82612d1b565b612d4a5760405162461bcd60e51b815260040161031890613935565b506020015190565b60006001612cd5565b6000612d6682612d52565b612d4a5760405162461bcd60e51b815260040161031890613539565b6000612d8d82612cd0565b612d4a5760405162461bcd60e51b815260040161031890613587565b3390565b6040518060800160405280612dc0612ddb565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112612e22578081fd5b81356001600160401b03811115612e37578182fd5b6020612e468182840201613dba565b828152925080830184820160005b84811015612ec0578135870188603f820112612e6f57600080fd5b612e796040613dba565b8086830160005b6002811015612eaa57612e988d8a8435880101612edb565b84529288019290880190600101612e80565b5050855250509183019190830190600101612e54565b505050505092915050565b8051801515811461295957600080fd5b600082601f830112612eeb578081fd5b81356001600160401b03811115612f00578182fd5b612f13601f8201601f1916602001613dba565b9150808252836020828501011115612f2a57600080fd5b8060208401602084013760009082016020015292915050565b600060408284031215612f54578081fd5b612f5e6040613dba565b90508135612f6b81613e2f565b808252506020820135602082015292915050565b600060208284031215612f90578081fd5b8151612f9b81613de0565b9392505050565b60008060008060808587031215612fb7578283fd5b8435612fc281613de0565b93506020850135612fd281613de0565b92506040850135612fe281613de0565b91506060850135612ff281613de0565b939692955090935050565b60006020828403121561300e578081fd5b81518015158114612f9b578182fd5b6000806060838503121561302f578182fd5b6130398484612f43565b915060408301356001600160401b03811115613053578182fd5b61305f85828601612e12565b9150509250929050565b600081830360a081121561307b578182fd5b6130856080613dba565b6040821215613092578283fd5b61309c6040613dba565b915083516130a981613e2f565b8252602084810151908301528181526130c58560408601612ecb565b6020820152606084015191506130da82613e08565b8160408201526130ed8560808601612ecb565b6060820152949350505050565b60006040828403121561310b578081fd5b6131156040613dba565b61311f8484612ecb565b8152602083015161312f81613e08565b60208201529392505050565b60006060828403121561314c578081fd5b6131566060613dba565b825161316181613e1a565b81526131708460208501612ecb565b60208201526131828460408501612ecb565b60408201529392505050565b60006020828403121561319f578081fd5b8135612f9b81613df8565b6000602082840312156131bb578081fd5b8135612f9b81613e08565b6000602082840312156131d7578081fd5b8151612f9b81613e08565b6000602082840312156131f3578081fd5b8135612f9b81613e1a565b60006020828403121561320f578081fd5b8151612f9b81613e1a565b6000806040838503121561322c578182fd5b823561323781613e1a565b915060208301356001600160401b03811115613053578182fd5b60008060408385031215613263578182fd5b823561326e81613e1a565b915060208301356001600160401b03811115613288578182fd5b61305f85828601612edb565b600080606083850312156132a6578182fd5b82356132b181613e1a565b91506132c08460208501612f43565b90509250929050565b600080604083850312156132db578182fd5b82356132e681613e1a565b915060208301356132f681613df8565b809150509250929050565b60008060408385031215613313578182fd5b823561331e81613e1a565b915060208301356132f681613e08565b6000815180845260208085018081965082840281019150828601855b858110156133a057828403895281518460408101895b600281101561338b5787820383526133798285516133ad565b93890193928901929150600101613360565b509a87019a955050509084019060010161334a565b5091979650505050505050565b60008151808452815b818110156133d2576020818501810151868301820152016133b6565b818111156133e35782602083870101525b50601f01601f19169290920160200192915050565b805160ff168252602090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b039290921682526001600160401b0316602082015260400190565b901515815260200190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4163636573732064656e69656420756e6465722070726f7669646564206f776e60408201526506572736869760d41b606082015260800190565b6020808252602f908201527f54686520726561736f6e2073686f756c64206265206174206c6561737420322060408201526e63686172616374657273206c6f6e6760881b606082015260800190565b6020808252602e908201527f61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d62657220436860408201526d0616e6e656c4f776e6572736869760941b606082015260800190565b60208082526033908201527f617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f60408201527207570204368616e6e656c4f776e65727368697606c1b606082015260800190565b6020808252601f908201527f4368616e6e656c20696e7374616e636573206c696d6974207265616368656400604082015260600190565b6020808252601190820152700496e76616c6964206f776e65727368697607c1b604082015260600190565b602080825260199082015278159a59195bc8185b1c9958591e4819195858dd1a5d985d1959603a1b604082015260600190565b602080825260149082015273566964656f20616c72656164792061637469766560601b604082015260600190565b60208082526024908201527f47726f75702773206368616e6e656c7320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252602e908201527f4f6e6c79206c6561642063616e20757064617465206f776e657273686970207460408201526d06f2043757261746f7247726f75760941b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526019908201527810dd5c985d1bdc881a59081b9bdd081c9958dbd9db9a5e9959603a1b604082015260600190565b6020808252601b908201527a151a1a5cc818da185b9b995b081a5cc819195858dd1a5d985d1959602a1b604082015260600190565b60208082526017908201527611dc9bdd5c081a59081b9bdd081c9958dbd9db9a5e9959604a1b604082015260600190565b60208082526037908201527f546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766040820152761a59195bdcd4195c90da185b9b995b13585e131a5b5a5d604a1b606082015260800190565b6020808252603b908201527f43616e6e6f742075706461746520766964656f206d657461646174612077686560408201527a6e20746865206368616e6e656c206973206e6f742061637469766560281b606082015260800190565b6020808252603a908201527f546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746040820152796564207468726f7567682070726f706f73616c2073797374656d60301b606082015260800190565b6020808252601f908201527f43757261746f7220697320616c726561647920696e207468652067726f757000604082015260600190565b60208082526030908201527f6173416464726573732063616c6c6564206f6e206e6f6e2d616464726573732060408201526f04368616e6e656c4f776e6572736869760841b606082015260800190565b60208082526015908201527413dddb995c881858d8d95cdcc81c995c5d5a5c9959605a1b604082015260600190565b60208082526056908201527f766964656f735065724368616e6e656c4d61784c696d6974206d75737420626560408201527f2067726561746572207468616e206f7220657175616c20746f20766964656f7360608201527514195c90da185b9b995b111959985d5b1d131a5b5a5d60521b608082015260a00190565b6020808252602f908201527f43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746860408201526e61742069736e27742061637469766560881b606082015260800190565b6020808252601b908201527a10da185b9b995b08185b1c9958591e4819195858dd1a5d985d1959602a1b604082015260600190565b6020808252601c908201527b416374697665206c656164206163636573732072657175697265642160201b604082015260600190565b6020808252601690820152754368616e6e656c20616c72656164792061637469766560501b604082015260600190565b6020808252600d908201526c1058d8d95cdcc819195b9a5959609a1b604082015260600190565b60208082526024908201527f47726f757027732063757261746f727320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252604b908201527f766964656f735065724368616e6e656c44656661756c744c696d69742063616e60408201527f6e6f74206578636565642063757272656e7420766964656f735065724368616e60608201526a1b995b13585e131a5b5a5d60aa1b608082015260a00190565b60208082526023908201527f43757261746f7220697320616c7265616479206e6f7420696e2074686520677260408201526206f75760ec1b606082015260800190565b6040810161295982846133f8565b61ffff91909116815260200190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0383168152604060208201819052600090613c9f9083018461332e565b949350505050565b6001600160401b039290921682521515602082015260400190565b6001600160401b0383168152604060208201819052600090613c9f908301846133ad565b6001600160401b038316815260608101612f9b60208301846133f8565b6001600160401b03841681526000613d1e60208301856133f8565b60806060830152613d32608083018461332e565b95945050505050565b6001600160401b0392909216825261ffff16602082015260400190565b6001600160401b0392909216825263ffffffff16602082015260400190565b6001600160401b03848116825283166020820152606060408201819052600090613d329083018461332e565b60ff92909216825261ffff16602082015260400190565b6040518181016001600160401b0381118282101715613dd857600080fd5b604052919050565b6001600160a01b0381168114613df557600080fd5b50565b61ffff81168114613df557600080fd5b63ffffffff81168114613df557600080fd5b6001600160401b0381168114613df557600080fd5b60ff81168114613df557600080fdfea2646970667358221220c5a70b25fd66d21cff818f02e8dcf2e14dbf7d28340cdbf94e9e0f399e51f0bc64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "485:15062:0:-:0;;;927:33;;;-1:-1:-1;;;;;;;;927:33:0;-1:-1:-1;;;927:33:0;-1:-1:-1;;;;;966:39:0;-1:-1:-1;;;966:39:0;;;1011:38;;;1045:4;-1:-1:-1;;1011:38:0;;;;;;3909:506;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;649:22:4;:48;;-1:-1:-1;;;;;;649:48:4;;;-1:-1:-1;;;;;649:48:4;;;;-1:-1:-1;;;;923:15:17;;;;4203:16:0::1;:36:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4243:25:::1;:54:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;4301:32:0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4337:12:::1;:28:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;4369:42:0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;485:15062;;1175:1270:-1;;;;;;;1537:3;1525:9;1516:7;1512:23;1508:33;1505:2;;;-1:-1;;1544:12;1505:2;904:6;898:13;916:64;974:5;916:64;:::i;:::-;1738:2;1813:22;;701:13;1596:105;;-1:-1;719:58;701:13;719:58;:::i;:::-;1882:2;1966:22;;304:13;1746:99;;-1:-1;322:67;304:13;322:67;:::i;:::-;2035:2;2108:22;;106:13;1890:108;;-1:-1;124:56;106:13;124:56;:::i;:::-;2177:3;2249:22;;1091:13;2043:97;;-1:-1;1109:54;1091:13;1109:54;:::i;:::-;2318:3;2397:22;;507:13;2186:95;;-1:-1;525:61;507:13;525:61;:::i;:::-;2327:102;;;;1499:946;;;;;;;;:::o;3428:163::-;-1:-1;;;;;3362:54;;3510:58;;3500:2;;3582:1;;3572:12;3500:2;3494:97;:::o;:::-;485:15062:0;;;;;;", + "deployedSourceMap": "485:15062:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8590:656;;;;;;:::i;:::-;;:::i;:::-;;11749:431;;;;;;:::i;:::-;;:::i;15128:417::-;;;;;;:::i;:::-;;:::i;6814:536::-;;;;;;:::i;:::-;;:::i;521:52:4:-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3850:56:0;;;:::i;9252:495::-;;;;;;:::i;:::-;;:::i;12194:729::-;;;;;;:::i;:::-;;:::i;1040:76:17:-;;;:::i;:::-;;;;;;;:::i;2927:161:0:-;;;;;;:::i;:::-;;:::i;9753:453::-;;;;;;:::i;:::-;;:::i;3795:52::-;;;:::i;14076:492::-;;;;;;:::i;:::-;;:::i;11268:478::-;;;;;;:::i;:::-;;:::i;13604:469::-;;;;;;:::i;:::-;;:::i;3421:324::-;;;;;;:::i;:::-;;:::i;14574:548::-;;;;;;:::i;:::-;;:::i;3094:321::-;;;;;;:::i;:::-;;:::i;12926:675::-;;;;;;:::i;:::-;;:::i;10737:528::-;;;;;;:::i;:::-;;:::i;7353:619::-;;;;;;:::i;:::-;;:::i;10228:506::-;;;;;;:::i;:::-;;:::i;4465:731::-;;;;;;:::i;:::-;;:::i;7975:612::-;;;;;;:::i;:::-;;:::i;8590:656::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;;;;;;;;;8748:22:0::1;;:::i;:::-;8773:14;::::0;:45:::1;::::0;-1:-1:-1;;;8773:45:0;;-1:-1:-1;;;;;8773:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;8807:10;;8773:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8748:70;;8919:41;8930:10;8942:7;:17;;;8919:10;:41::i;:::-;8911:67;;;;-1:-1:-1::0;;;8911:67:0::1;;;;;;;:::i;:::-;9000:24;::::0;::::1;::::0;;::::1;8990:34:::0;;::::1;;;8982:102;;;;-1:-1:-1::0;;;8982:102:0::1;;;;;;;:::i;:::-;9088:14;::::0;:55:::1;::::0;-1:-1:-1;;;9088:55:0;;-1:-1:-1;;;;;9088:14:0;;::::1;::::0;:35:::1;::::0;:55:::1;::::0;9124:10;;9136:6;;9088:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9198:44;9223:10;9235:6;9198:44;;;;;;;:::i;:::-;;;;;;;;1384:1:17;8590:656:0::0;;:::o;11749:431::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;11833:18:::2;;:::i;:::-;11854:19;::::0;:46:::2;::::0;-1:-1:-1;;;11854:46:0;;-1:-1:-1;;;;;11854:19:0;;::::2;::::0;:36:::2;::::0;:46:::2;::::0;11891:8;;11854:46:::2;;;:::i;:::-;;::::0;::::2;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11833:67;;11912:5;:19;;;:24;;11935:1;11912:24;11904:73;;;;-1:-1:-1::0;;;11904:73:0::2;;;;;;;:::i;:::-;11993:14;::::0;-1:-1:-1;;;;;11993:14:0::2;:38;12038:29;12070:8;11993:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:91;;::::0;11981:150:::2;;;;-1:-1:-1::0;;;11981:150:0::2;;;;;;;:::i;:::-;12135:19;::::0;:41:::2;::::0;-1:-1:-1;;;12135:41:0;;-1:-1:-1;;;;;12135:19:0;;::::2;::::0;:31:::2;::::0;:41:::2;::::0;12167:8;;12135:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2859:1;11749:431:::0;:::o;15128:417::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;15199:18:0::1;;:::i;:::-;15220:12;::::0;:39:::1;::::0;-1:-1:-1;;;15220:39:0;;-1:-1:-1;;;;;15220:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;15250:8;;15220:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15199:60;;15263:22;;:::i;:::-;15288:14;::::0;15322:15;;15288:50:::1;::::0;-1:-1:-1;;;15288:50:0;;-1:-1:-1;;;;;15288:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15263:75;;15350:41;15361:10;15373:7;:17;;;15350:10;:41::i;:::-;15342:67;;;;-1:-1:-1::0;;;15342:67:0::1;;;;;;;:::i;:::-;15422:5;:14;;;15421:15;15413:48;;;;-1:-1:-1::0;;;15413:48:0::1;;;;;;;:::i;:::-;15465:12;::::0;:41:::1;::::0;-1:-1:-1;;;15465:41:0;;-1:-1:-1;;;;;15465:12:0;;::::1;::::0;:25:::1;::::0;:41:::1;::::0;15491:8;;15465:12;;:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15515:26;15532:8;15515:26;;;;;;:::i;6814:536::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;6944:20:0::1;:10;:18;:20::i;:::-;6936:50;;;;-1:-1:-1::0;;;6936:50:0::1;;;;;;;:::i;:::-;7032:21;::::0;6998:14:::1;::::0;:30:::1;::::0;;-1:-1:-1;;;6998:30:0;;;;-1:-1:-1;;;7032:21:0;;::::1;-1:-1:-1::0;;;;;7032:21:0::1;::::0;-1:-1:-1;;;;;6998:14:0;;::::1;::::0;:28:::1;::::0;:30:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:14;:30;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6998:55:0::1;;;6990:99;;;;-1:-1:-1::0;;;6990:99:0::1;;;;;;;:::i;:::-;7101:39;7117:10;7129;7101:15;:39::i;:::-;7093:90;;;;-1:-1:-1::0;;;7093:90:0::1;;;;;;;:::i;:::-;7206:14;::::0;:37:::1;::::0;-1:-1:-1;;;7206:37:0;;7187:16:::1;::::0;-1:-1:-1;;;;;7206:14:0::1;::::0;:25:::1;::::0;:37:::1;::::0;7232:10;;7206:37:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7187:56;;7298:48;7313:9;7324:10;7336:9;7298:48;;;;;;;;:::i;521:52:4:-:0;;;-1:-1:-1;;;;;521:52:4;;:::o;3850:56:0:-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3892:10:0::1;:8;:10::i;:::-;3850:56::o:0;9252:495::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;9354:22:0::1;;:::i;:::-;9379:14;::::0;:45:::1;::::0;-1:-1:-1;;;9379:45:0;;-1:-1:-1;;;;;9379:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;9413:10;;9379:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9354:70;;9436:41;9447:10;9459:7;:17;;;9436:10;:41::i;:::-;9428:67;;;;-1:-1:-1::0;;;9428:67:0::1;;;;;;;:::i;:::-;9507:7;:16;;;9499:56;;;;-1:-1:-1::0;;;9499:56:0::1;;;;;;;:::i;:::-;9592:1;9573:7;9567:21;:26;;9559:86;;;;-1:-1:-1::0;;;9559:86:0::1;;;;;;;:::i;:::-;9649:14;::::0;:46:::1;::::0;-1:-1:-1;;;9649:46:0;;-1:-1:-1;;;;;9649:14:0;;::::1;::::0;:27:::1;::::0;:46:::1;::::0;9677:10;;9649:14:::1;::::0;:46:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9704:39;9723:10;9735:7;9704:39;;;;;;;:::i;12194:729::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;12293:22:0::1;;:::i;:::-;12318:14;::::0;:45:::1;::::0;-1:-1:-1;;;12318:45:0;;-1:-1:-1;;;;;12318:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;12352:10;;12318:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12293:70;;12379:46;12395:10;12407:7;:17;;;12379:15;:46::i;:::-;:146;;;;12432:93;12459:10;12471:7;:17;;;12490:34;12432:26;:93::i;:::-;12367:182;;;;-1:-1:-1::0;;;12367:182:0::1;;;;;;;:::i;:::-;12561:7;:16;;;12553:76;;;;-1:-1:-1::0;;;12553:76:0::1;;;;;;;:::i;:::-;12633:24;12660:7;:18;;;:23;;12682:1;12660:23;;:75;;12707:28;::::0;-1:-1:-1;;;12707:28:0;::::1;;;12660:75;;;12686:7;:18;;;12660:75;12747:12;::::0;:46:::1;::::0;-1:-1:-1;;;12747:46:0;;12633:102;;-1:-1:-1;12747:66:0::1;::::0;::::1;::::0;-1:-1:-1;;;;;12747:12:0;;::::1;::::0;:34:::1;::::0;:46:::1;::::0;12782:10;;12747:46:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12747:66:0::1;;12739:75;;;::::0;::::1;;12835:12;::::0;:33:::1;::::0;-1:-1:-1;;;12835:33:0;;12818:14:::1;::::0;-1:-1:-1;;;;;12835:12:0::1;::::0;:21:::1;::::0;:33:::1;::::0;12857:10;;12835:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12818:50;;12877:42;12888:7;12897:10;12909:9;12877:42;;;;;;;;:::i;:::-;;;;;;;;1384:1:17;;;12194:729:0::0;;:::o;1040:76:17:-;1079:4;1102:7;-1:-1:-1;;;1102:7:17;;;;;1040:76::o;2927:161:0:-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3003:21:0::1;:33:::0;;-1:-1:-1;;;;;;;;3003:33:0::1;-1:-1:-1::0;;;;;;;;3003:33:0;::::1;;;::::0;;3045:39:::1;::::0;::::1;::::0;::::1;::::0;3003:33;;3045:39:::1;:::i;:::-;;;;;;;;2927:161:::0;:::o;9753:453::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;9828:22:0::1;;:::i;:::-;9853:14;::::0;:45:::1;::::0;-1:-1:-1;;;9853:45:0;;-1:-1:-1;;;;;9853:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;9887:10;;9853:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9828:70;;9999:41;10010:10;10022:7;:17;;;9999:10;:41::i;:::-;9991:67;;;;-1:-1:-1::0;;;9991:67:0::1;;;;;;;:::i;:::-;10071:7;:16;;;10070:17;10062:52;;;;-1:-1:-1::0;;;10062:52:0::1;;;;;;;:::i;:::-;10118:14;::::0;;:45:::1;::::0;-1:-1:-1;;;10118:45:0;;-1:-1:-1;;;;;10118:14:0;;::::1;::::0;:27:::1;::::0;:45:::1;::::0;10146:10;;10118:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10172:30;10191:10;10172:30;;;;;;:::i;:::-;;;;;;;;1384:1:17;9753:453:0::0;:::o;3795:52::-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3835:8:0::1;:6;:8::i;14076:492::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;14178:18:0::1;;:::i;:::-;14199:12;::::0;:39:::1;::::0;-1:-1:-1;;;14199:39:0;;-1:-1:-1;;;;;14199:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;14229:8;;14199:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14178:60;;14242:22;;:::i;:::-;14267:14;::::0;14301:15;;14267:50:::1;::::0;-1:-1:-1;;;14267:50:0;;-1:-1:-1;;;;;14267:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14242:75;;14329:41;14340:10;14352:7;:17;;;14329:10;:41::i;:::-;14321:67;;;;-1:-1:-1::0;;;14321:67:0::1;;;;;;;:::i;:::-;14424:1;14406:7;14400:21;:25;14392:85;;;;-1:-1:-1::0;;;14392:85:0::1;;;;;;;:::i;:::-;14481:12;::::0;:34:::1;::::0;-1:-1:-1;;;14481:34:0;;-1:-1:-1;;;;;14481:12:0;;::::1;::::0;:24:::1;::::0;:34:::1;::::0;14506:8;;14481:34:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14524:40;14546:8;14556:7;14524:40;;;;;;;:::i;:::-;;;;;;;;1384:1:17;;14076:492:0::0;;:::o;11268:478::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;11370:25:::2;::::0;:51:::2;::::0;-1:-1:-1;;;11370:51:0;;-1:-1:-1;;;;;11370:25:0;;::::2;::::0;:39:::2;::::0;:51:::2;::::0;11410:10;;11370:51:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11362:89;;;;-1:-1:-1::0;;;11362:89:0::2;;;;;;;:::i;:::-;11455:19;::::0;:58:::2;::::0;-1:-1:-1;;;11455:58:0;;-1:-1:-1;;;;;11455:19:0;;::::2;::::0;:46:::2;::::0;:58:::2;::::0;11502:10;;11455:58:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;11522:39;11550:10;11522:39;;;;;;:::i;13604:469::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;13672:18:0::1;;:::i;:::-;13693:12;::::0;:39:::1;::::0;-1:-1:-1;;;13693:39:0;;-1:-1:-1;;;;;13693:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;13723:8;;13693:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13672:60;;13736:22;;:::i;:::-;13761:14;::::0;13795:15;;13761:50:::1;::::0;-1:-1:-1;;;13761:50:0;;-1:-1:-1;;;;;13761:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13736:75;;13827:46;13843:10;13855:7;:17;;;13827:15;:46::i;:::-;:149;;;;13880:96;13907:10;13919:7;:17;;;13938:37;13880:26;:96::i;:::-;13815:185;;;;-1:-1:-1::0;;;13815:185:0::1;;;;;;;:::i;:::-;14004:12;::::0;:34:::1;::::0;-1:-1:-1;;;14004:34:0;;-1:-1:-1;;;;;14004:12:0;;::::1;::::0;:24:::1;::::0;:34:::1;::::0;14029:8;;14004:34:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14047:22;14060:8;14047:22;;;;;;:::i;3421:324::-:0;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3525:28:0::1;::::0;::::1;-1:-1:-1::0;;;3525:28:0;;::::1;::::0;::::1;3512:41:::0;;::::1;;;3500:150;;;;-1:-1:-1::0;;;3500:150:0::1;;;;;;;:::i;:::-;3654:24;:36:::0;;-1:-1:-1;;3654:36:0::1;;::::0;::::1;;::::0;;3699:42:::1;::::0;::::1;::::0;::::1;::::0;3654:36;;3699:42:::1;:::i;14574:548::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;14672:18:0::1;;:::i;:::-;14693:12;::::0;:39:::1;::::0;-1:-1:-1;;;14693:39:0;;-1:-1:-1;;;;;14693:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;14723:8;;14693:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14672:60;;14736:22;;:::i;:::-;14761:14;::::0;14795:15;;14761:50:::1;::::0;-1:-1:-1;;;14761:50:0;;-1:-1:-1;;;;;14761:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14736:75;;14823:41;14834:10;14846:7;:17;;;14823:10;:41::i;:::-;14815:67;;;;-1:-1:-1::0;;;14815:67:0::1;;;;;;;:::i;:::-;14894:5;:14;;;14886:52;;;;-1:-1:-1::0;;;14886:52:0::1;;;;;;;:::i;:::-;14975:1;14956:7;14950:21;:26;;14942:86;;;;-1:-1:-1::0;;;14942:86:0::1;;;;;;;:::i;:::-;15032:12;::::0;:42:::1;::::0;-1:-1:-1;;;15032:42:0;;-1:-1:-1;;;;;15032:12:0;;::::1;::::0;:25:::1;::::0;:42:::1;::::0;15058:8;;15032:12:::1;::::0;:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15083:35;15100:8;15110:7;15083:35;;;;;;;:::i;3094:321::-:0;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3202:24:0::1;::::0;::::1;::::0;;::::1;3189:37:::0;;::::1;;;3177:135;;;;-1:-1:-1::0;;;3177:135:0::1;;;;;;;:::i;:::-;3316:28;:40:::0;;-1:-1:-1;;;;;3316:40:0::1;-1:-1:-1::0;;;3316:40:0::1;::::0;::::1;;;::::0;;3365:46:::1;::::0;::::1;::::0;::::1;::::0;3316:40;;3365:46:::1;:::i;12926:675::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;13034:18:0::1;;:::i;:::-;13055:12;::::0;:39:::1;::::0;-1:-1:-1;;;13055:39:0;;-1:-1:-1;;;;;13055:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;13085:8;;13055:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13034:60;;13098:22;;:::i;:::-;13123:14;::::0;13157:15;;13123:50:::1;::::0;-1:-1:-1;;;13123:50:0;;-1:-1:-1;;;;;13123:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13098:75;;13189:46;13205:10;13217:7;:17;;;13189:15;:46::i;:::-;:157;;;;13242:104;13269:10;13281:7;:17;;;13300:45;13242:26;:104::i;:::-;13189:205;;;;13353:41;13364:10;13376:7;:17;;;13353:10;:41::i;:::-;13177:241;;;;-1:-1:-1::0;;;13177:241:0::1;;;;;;;:::i;:::-;13467:7;:16;;;13459:88;;;;-1:-1:-1::0;;;13459:88:0::1;;;;;;;:::i;:::-;13556:41;13577:8;13587:9;13556:41;;;;;;;:::i;10737:528::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;10952:19:::2;::::0;:41:::2;::::0;-1:-1:-1;;;10952:41:0;;-1:-1:-1;;;;;10952:19:0;;::::2;::::0;:31:::2;::::0;:41:::2;::::0;10984:8;;10952:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10944:77;;;;-1:-1:-1::0;;;10944:77:0::2;;;;;;;:::i;:::-;11033:19;::::0;:58:::2;::::0;-1:-1:-1;;;11033:58:0;;-1:-1:-1;;;;;11033:19:0;;::::2;::::0;:36:::2;::::0;:58:::2;::::0;11070:10;;11082:8;;11033:58:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;;11095:4;11033:66;11025:114;;;;-1:-1:-1::0;;;11025:114:0::2;;;;;;;:::i;:::-;11143:19;::::0;:64:::2;::::0;-1:-1:-1;;;11143:64:0;;-1:-1:-1;;;;;11143:19:0;;::::2;::::0;:42:::2;::::0;:64:::2;::::0;11186:10;;11198:8;;11143:64:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;11216:45;11240:10;11252:8;11216:45;;;;;;;:::i;7353:619::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;7466:22:0::1;;:::i;:::-;7491:14;::::0;:45:::1;::::0;-1:-1:-1;;;7491:45:0;;-1:-1:-1;;;;;7491:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;7525:10;;7491:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7466:70;;7552:46;7568:10;7580:7;:17;;;7552:15;:46::i;:::-;:94;;;;7605:41;7616:10;7628:7;:17;;;7605:10;:41::i;:::-;7552:207;;;;7653:106;7680:10;7692:7;:17;;;7711:47;7653:26;:106::i;:::-;7540:243;;;;-1:-1:-1::0;;;7540:243:0::1;;;;;;;:::i;:::-;7866:7;:16;;;7858:56;;;;-1:-1:-1::0;;;7858:56:0::1;;;;;;;:::i;:::-;7923:45;7946:10;7958:9;7923:45;;;;;;;:::i;10228:506::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;10340:25:::2;::::0;:51:::2;::::0;-1:-1:-1;;;10340:51:0;;-1:-1:-1;;;;;10340:25:0;;::::2;::::0;:39:::2;::::0;:51:::2;::::0;10380:10;;10340:51:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10332:89;;;;-1:-1:-1::0;;;10332:89:0::2;;;;;;;:::i;:::-;10433:19;::::0;:41:::2;::::0;-1:-1:-1;;;10433:41:0;;-1:-1:-1;;;;;10433:19:0;;::::2;::::0;:31:::2;::::0;:41:::2;::::0;10465:8;;10433:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10425:77;;;;-1:-1:-1::0;;;10425:77:0::2;;;;;;;:::i;:::-;10514:19;::::0;:58:::2;::::0;-1:-1:-1;;;10514:58:0;;-1:-1:-1;;;;;10514:19:0;;::::2;::::0;:36:::2;::::0;:58:::2;::::0;10551:10;;10563:8;;10514:58:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:67;10506:111;;;;-1:-1:-1::0;;;10506:111:0::2;;;;;;;:::i;:::-;10621:19;::::0;:59:::2;::::0;-1:-1:-1;;;10621:59:0;;-1:-1:-1;;;;;10621:19:0;;::::2;::::0;:37:::2;::::0;:59:::2;::::0;10659:10;;10671:8;;10621:59:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;10689:41;10709:10;10721:8;10689:41;;;;;;;:::i;4465:731::-:0;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;4665:12:0::1;::::0;4641:67:::1;::::0;-1:-1:-1;;;;;4665:12:0::1;4680:16:::0;4698:9;4641:15:::1;:67::i;:::-;4736:14;::::0;4712:71:::1;::::0;-1:-1:-1;;;;;4736:14:0::1;4753:18:::0;4773:9;4712:15:::1;:71::i;:::-;4811:19;::::0;4787:81:::1;::::0;-1:-1:-1;;;;;4811:19:0::1;4833:23:::0;4858:9;4787:15:::1;:81::i;:::-;4877:287;4890:9:::0;-1:-1:-1;;;;;4904:30:0;::::1;::::0;:73:::1;;4961:16;4904:73;;;4945:12;::::0;-1:-1:-1;;;;;4945:12:0::1;4904:73;-1:-1:-1::0;;;;;4982:32:0;::::1;::::0;:79:::1;;5043:18;4982:79;;;5025:14;::::0;-1:-1:-1;;;;;5025:14:0::1;4982:79;-1:-1:-1::0;;;;;5066:37:0;::::1;::::0;:94:::1;;5137:23;5066:94;;;5114:19;::::0;-1:-1:-1;;;;;5114:19:0::1;5066:94;4877:287;;;;;;;;;:::i;:::-;;;;;;;;5181:10;5168:24;7975:612:::0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;8095:22:0::1;;:::i;:::-;8120:14;::::0;:45:::1;::::0;-1:-1:-1;;;8120:45:0;;-1:-1:-1;;;;;8120:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;8154:10;;8120:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8095:70;;8177:46;8193:10;8205:7;:17;;;8177:15;:46::i;:::-;8169:80;;;;-1:-1:-1::0;;;8169:80:0::1;;;;;;;:::i;:::-;8261:20;:10;:18;:20::i;:::-;8253:50;;;;-1:-1:-1::0;;;8253:50:0::1;;;;;;;:::i;:::-;8316:27;:10;:25;:27::i;:::-;8315:28;:57;;;;8347:25;8361:10;8347:13;:25::i;:::-;8307:116;;;;-1:-1:-1::0;;;8307:116:0::1;;;;;;;:::i;:::-;8427:14;::::0;:54:::1;::::0;-1:-1:-1;;;8427:54:0;;-1:-1:-1;;;;;8427:14:0;;::::1;::::0;:30:::1;::::0;:54:::1;::::0;8458:10;;8470;;8427:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8536:47;8560:10;8572;8536:47;;;;;;;:::i;6422:195::-:0;6520:4;6537:27;:10;:25;:27::i;:::-;:76;;6593:20;6604:8;6593:10;:20::i;:::-;6537:76;;;6567:23;6581:8;6567:13;:23::i;:::-;6530:83;;6422:195;;;;;:::o;2302:134::-;2384:25;;:48;;-1:-1:-1;;;2384:48:0;;2367:4;;-1:-1:-1;;;;;2384:25:0;;:38;;:48;;2423:8;;2384:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2377:55;;2302:134;;;;:::o;2294:416:9:-;2370:4;2384:21;2394:10;2384:9;:21::i;:::-;2380:105;;;2462:10;:18;;;2435:21;2445:10;2435:9;:21::i;:::-;-1:-1:-1;;;;;2419:39:9;:61;2412:68;;;;2380:105;2492:20;2501:10;2492:8;:20::i;:::-;2488:94;;;2559:10;:18;;;2534:20;2543:10;2534:8;:20::i;:::-;-1:-1:-1;;;;;2526:29:9;:51;2519:58;;;;2488:94;2589:26;2604:10;2589:14;:26::i;:::-;2585:106;;;2668:10;:18;;;2637:26;2652:10;2637:14;:26::i;:::-;2629:35;;:57;2622:64;;;;2585:106;-1:-1:-1;2701:5:9;2294:416;;;:::o;5893:526:0:-;5995:4;6009:22;:10;:20;:22::i;:::-;6005:411;;;6057:22;:10;:20;:22::i;:::-;-1:-1:-1;;;;;6045:34:0;:8;-1:-1:-1;;;;;6045:34:0;;6038:41;;;;6005:411;6096:21;:10;:19;:21::i;:::-;6092:324;;;6131:16;;-1:-1:-1;;;;;6131:16:0;:35;6167:8;6177:21;:10;:19;:21::i;:::-;6131:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6124:75;;;;6092:324;6216:27;:10;:25;:27::i;:::-;6212:204;;;6307:25;;:50;;-1:-1:-1;;;6307:50:0;;-1:-1:-1;;;;;6307:25:0;;;;:38;;:50;;6346:10;;6307:50;;;:::i;6212:204::-;6375:13;2042:117:17;1610:7;;-1:-1:-1;;;1610:7:17;;;;1602:40;;;;-1:-1:-1;;;1602:40:17;;;;;;;:::i;:::-;2110:5:::1;2100:15:::0;;-1:-1:-1;;;;2100:15:17::1;::::0;;2130:22:::1;2139:12;:10;:12::i;:::-;2130:22;;;;;;:::i;:::-;;;;;;;;2042:117::o:0;6620:191:0:-;6780:4;6620:191;;;;;:::o;1795:115:17:-;1346:7;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;1854:7:::1;:14:::0;;-1:-1:-1;;;;1854:14:17::1;-1:-1:-1::0;;;1854:14:17::1;::::0;;1883:20:::1;1890:12;:10;:12::i;5199:348:0:-:0;5497:46;;-1:-1:-1;;;5497:46:0;;5474:18;;-1:-1:-1;;;;;5497:28:0;;;;;:46;;5526:16;;5497:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5199:348;;;;:::o;1425:168:9:-;1508:4;1559:29;1553:36;1525:64;;:10;:24;;;:64;;;1518:71;;1425:168;;;:::o;2439:323:0:-;2710:25;;:48;;-1:-1:-1;;;2710:48:0;;2501:4;;-1:-1:-1;;;;;2710:25:0;;:35;;:48;;2746:8;;2501:4;;2710:48;;;:::i;1105:158:9:-;1183:4;;1228:31;;1596:234;1674:7;1699:21;1709:10;1699:9;:21::i;:::-;1687:92;;;;-1:-1:-1;;;1687:92:9;;;;;;;:::i;:::-;-1:-1:-1;1806:18:9;;;;1596:234::o;1266:156::-;1343:4;1394:23;1388:30;;1833:219;1910:6;1934:20;1943:10;1934:8;:20::i;:::-;1922:89;;;;-1:-1:-1;;;1922:89:9;;;;;;;:::i;2055:236::-;2138:6;2162:26;2177:10;2162:14;:26::i;:::-;2150:100;;;;-1:-1:-1;;;2150:100:9;;;;;;;:::i;590:104:13:-;677:10;590:104;:::o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;303:777::-;;453:3;446:4;438:6;434:17;430:27;420:2;;-1:-1;;461:12;420:2;495:20;;-1:-1;;;;;50658:30;;50655:2;;;-1:-1;;50691:12;50655:2;50736:4;530:113;50736:4;;50728:6;50724:17;50789:15;530:113;:::i;:::-;671:21;;;521:122;-1:-1;728:14;;;703:17;;;823:1;808:266;833:6;830:1;827:13;808:266;;;916:3;903:17;707:6;891:30;1231:3;1212:17;891:30;1212:17;1208:27;1198:2;;823:1;;1239:12;1198:2;1292:88;51043:17;1292:88;:::i;:::-;1386:16;50736:4;891:30;;823:1;1474:243;1273:4;1496:1;1493:13;1474:243;;;1606:47;1649:3;50736:4;1582:3;1569:17;891:30;1557;;1606:47;:::i;:::-;1594:60;;1668:14;;;;1696;;;;855:1;1514:9;1474:243;;;-1:-1;;928:83;;-1:-1;;1025:14;;;;1053;;;;855:1;848:9;808:266;;;812:14;;;;;413:667;;;;:::o;1731:128::-;1806:13;;53285;;53278:21;55672:32;;55662:2;;55718:1;;55708:12;1867:442;;1969:3;1962:4;1954:6;1950:17;1946:27;1936:2;;-1:-1;;1977:12;1936:2;2011:20;;-1:-1;;;;;51215:30;;51212:2;;;-1:-1;;51248:12;51212:2;2046:65;51321:9;51302:17;;-1:-1;;51298:33;51389:4;51379:15;2046:65;:::i;:::-;2037:74;;2131:6;2124:5;2117:21;2235:3;51389:4;2226:6;2159;2217:16;;2214:25;2211:2;;;2252:1;;2242:12;2211:2;55038:6;51389:4;2159:6;2155:17;51389:4;2193:5;2189:16;55015:30;55094:1;55076:16;;;51389:4;55076:16;55069:27;2193:5;1929:380;-1:-1;;1929:380::o;2347:486::-;;2470:4;2458:9;2453:3;2449:19;2445:30;2442:2;;;-1:-1;;2478:12;2442:2;2506:20;2470:4;2506:20;:::i;:::-;2497:29;;6544:6;6531:20;6556:31;6581:5;6556:31;:::i;:::-;2617:47;2599:16;2592:73;;2729:2;2787:9;2783:22;5707:20;2729:2;2748:5;2744:16;2737:75;2436:397;;;;:::o;6736:263::-;;6851:2;6839:9;6830:7;6826:23;6822:32;6819:2;;;-1:-1;;6857:12;6819:2;226:6;220:13;238:33;265:5;238:33;:::i;:::-;6909:74;6813:186;-1:-1;;;6813:186::o;7006:617::-;;;;;7161:3;7149:9;7140:7;7136:23;7132:33;7129:2;;;-1:-1;;7168:12;7129:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;7220:63;-1:-1;7320:2;7359:22;;72:20;97:33;72:20;97:33;:::i;:::-;7328:63;-1:-1;7428:2;7467:22;;72:20;97:33;72:20;97:33;:::i;:::-;7436:63;-1:-1;7536:2;7575:22;;72:20;97:33;72:20;97:33;:::i;:::-;7123:500;;;;-1:-1;7123:500;;-1:-1;;7123:500::o;7630:257::-;;7742:2;7730:9;7721:7;7717:23;7713:32;7710:2;;;-1:-1;;7748:12;7710:2;1812:6;1806:13;55697:5;53285:13;53278:21;55675:5;55672:32;55662:2;;-1:-1;;55708:12;7894:636;;;8107:2;8095:9;8086:7;8082:23;8078:32;8075:2;;;-1:-1;;8113:12;8075:2;8175:87;8254:7;8230:22;8175:87;:::i;:::-;8165:97;-1:-1;8327:2;8312:18;;8299:32;-1:-1;;;;;8340:30;;8337:2;;;-1:-1;;8373:12;8337:2;8403:111;8506:7;8497:6;8486:9;8482:22;8403:111;:::i;:::-;8393:121;;;8069:461;;;;;:::o;8537:314::-;;8665:9;8656:7;8652:23;8677:3;8652:23;8648:33;8645:2;;;-1:-1;;8684:12;8645:2;3578:20;3593:4;3578:20;:::i;:::-;3004:4;2983:19;2979:30;2976:2;;;-1:-1;;3012:12;2976:2;3040:20;3004:4;3040:20;:::i;:::-;3031:29;;6681:6;6675:13;6693:31;6718:5;6693:31;:::i;:::-;3126:84;;3274:2;3339:22;;;5855:13;3289:16;;;3282:86;3660:120;;;3878:57;3931:3;3004:4;3907:22;;3878:57;:::i;:::-;3274:2;3864:5;3860:16;3853:83;4003:2;4071:9;4067:22;6130:13;6121:22;;6148:32;6174:5;6148:32;:::i;:::-;4036:59;3004:4;4022:5;4018:16;4011:85;4197:57;4250:3;3593:4;4230:9;4226:22;4197:57;:::i;:::-;4003:2;4179:16;;4172:83;4183:5;8639:212;-1:-1;;;;8639:212::o;8858:309::-;;8996:2;8984:9;8975:7;8971:23;8967:32;8964:2;;;-1:-1;;9002:12;8964:2;4461:20;8996:2;4461:20;:::i;:::-;4569:57;4622:3;4598:22;4569:57;:::i;:::-;4551:16;4544:83;4697:2;4765:9;4761:22;6130:13;6148:32;6174:5;6148:32;:::i;:::-;4697:2;4712:16;;4705:85;4716:5;8958:209;-1:-1;;;8958:209::o;9174:309::-;;9312:2;9300:9;9291:7;9287:23;9283:32;9280:2;;;-1:-1;;9318:12;9280:2;4996:20;9312:2;4996:20;:::i;:::-;6410:6;6404:13;6422:32;6448:5;6422:32;:::i;:::-;5078:85;;5261:57;5314:3;5228:2;5290:22;;5261:57;:::i;:::-;5228:2;5247:5;5243:16;5236:83;5419:57;5472:3;5386:2;5452:9;5448:22;5419:57;:::i;:::-;5386:2;5401:16;;5394:83;5405:5;9274:209;-1:-1;;;9274:209::o;9490:239::-;;9593:2;9581:9;9572:7;9568:23;9564:32;9561:2;;;-1:-1;;9599:12;9561:2;5584:6;5571:20;5596:32;5622:5;5596:32;:::i;9736:239::-;;9839:2;9827:9;9818:7;9814:23;9810:32;9807:2;;;-1:-1;;9845:12;9807:2;5997:6;5984:20;6009:32;6035:5;6009:32;:::i;9982:261::-;;10096:2;10084:9;10075:7;10071:23;10067:32;10064:2;;;-1:-1;;10102:12;10064:2;6136:6;6130:13;6148:32;6174:5;6148:32;:::i;10250:239::-;;10353:2;10341:9;10332:7;10328:23;10324:32;10321:2;;;-1:-1;;10359:12;10321:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;10496:261::-;;10610:2;10598:9;10589:7;10585:23;10581:32;10578:2;;;-1:-1;;10616:12;10578:2;6410:6;6404:13;6422:32;6448:5;6422:32;:::i;10764:566::-;;;10942:2;10930:9;10921:7;10917:23;10913:32;10910:2;;;-1:-1;;10948:12;10910:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;11000:62;-1:-1;11127:2;11112:18;;11099:32;-1:-1;;;;;11140:30;;11137:2;;;-1:-1;;11173:12;11337:470;;;11467:2;11455:9;11446:7;11442:23;11438:32;11435:2;;;-1:-1;;11473:12;11435:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;11525:62;-1:-1;11652:2;11637:18;;11624:32;-1:-1;;;;;11665:30;;11662:2;;;-1:-1;;11698:12;11662:2;11728:63;11783:7;11774:6;11763:9;11759:22;11728:63;:::i;11814:432::-;;;11968:2;11956:9;11947:7;11943:23;11939:32;11936:2;;;-1:-1;;11974:12;11936:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;12026:62;-1:-1;12143:87;12222:7;12125:2;12198:22;;12143:87;:::i;:::-;12133:97;;11930:316;;;;;:::o;12253:362::-;;;12372:2;12360:9;12351:7;12347:23;12343:32;12340:2;;;-1:-1;;12378:12;12340:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;12430:62;-1:-1;12529:2;12567:22;;5571:20;5596:32;5571:20;5596:32;:::i;:::-;12537:62;;;;12334:281;;;;;:::o;12622:362::-;;;12741:2;12729:9;12720:7;12716:23;12712:32;12709:2;;;-1:-1;;12747:12;12709:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;12799:62;-1:-1;12898:2;12936:22;;5984:20;6009:32;5984:20;6009:32;:::i;13791:1112::-;;14083:5;51852:12;52582:6;52577:3;52570:19;52619:4;;52614:3;52610:14;14095:126;;;;52619:4;14278:6;14274:17;14269:3;14265:27;14253:39;;52619:4;14396:5;51559:14;-1:-1;14435:429;14460:6;14457:1;14454:13;14435:429;;;14512:20;;;14500:33;;14561:13;;14516:4;15305:17;15296:27;;-1:-1;15441:358;51997:4;15463:1;15460:13;15441:358;;;15528:9;15522:4;15518:20;15513:3;15506:33;13407:66;13469:3;15573:6;15567:13;13407:66;:::i;:::-;52269:14;;;;15778;;;;15587:92;-1:-1;14482:1;15481:9;15441:358;;;-1:-1;14843:14;;;;14581:138;-1:-1;;;52269:14;;;;14482:1;14475:9;14435:429;;;-1:-1;14887:10;;13981:922;-1:-1;;;;;;;13981:922::o;16299:327::-;;16434:5;51852:12;52582:6;52577:3;52570:19;-1:-1;55183:101;55197:6;55194:1;55191:13;55183:101;;;52619:4;55264:11;;;;;55258:18;55245:11;;;;;55238:39;55212:10;55183:101;;;55299:6;55296:1;55293:13;55290:2;;;-1:-1;52619:4;55355:6;52614:3;55346:16;;55339:27;55290:2;-1:-1;51321:9;55455:14;-1:-1;;55451:28;16582:39;;;;52619:4;16582:39;;16381:245;-1:-1;;16381:245::o;28052:502::-;28288:23;;53878:4;53867:16;29339:35;;28458:4;28447:16;;;28441:23;28518:14;;28870:37;28186:368::o;29500:222::-;-1:-1;;;;;53464:54;;;;13707:37;;29627:2;29612:18;;29598:124::o;29974:556::-;-1:-1;;;;;53464:54;;;13707:37;;53464:54;;;30350:2;30335:18;;13707:37;53464:54;;;30433:2;30418:18;;13707:37;53464:54;;;30516:2;30501:18;;13707:37;30185:3;30170:19;;30156:374::o;30537:347::-;-1:-1;;;;;53464:54;;;;13707:37;;-1:-1;;;;;53765:30;30870:2;30855:18;;16230:57;30699:2;30684:18;;30670:214::o;31227:210::-;53285:13;;53278:21;15911:34;;31348:2;31333:18;;31319:118::o;31735:416::-;31935:2;31949:47;;;17212:2;31920:18;;;52570:19;-1:-1;;;52610:14;;;17228:43;17290:12;;;31906:245::o;32158:416::-;32358:2;32372:47;;;17541:2;32343:18;;;52570:19;17577:34;52610:14;;;17557:55;-1:-1;;;17632:12;;;17625:30;17674:12;;;32329:245::o;32581:416::-;32781:2;32795:47;;;17925:2;32766:18;;;52570:19;17961:34;52610:14;;;17941:55;-1:-1;;;18016:12;;;18009:39;18067:12;;;32752:245::o;33004:416::-;33204:2;33218:47;;;18318:2;33189:18;;;52570:19;18354:34;52610:14;;;18334:55;-1:-1;;;18409:12;;;18402:38;18459:12;;;33175:245::o;33427:416::-;33627:2;33641:47;;;18710:2;33612:18;;;52570:19;18746:34;52610:14;;;18726:55;-1:-1;;;18801:12;;;18794:43;18856:12;;;33598:245::o;33850:416::-;34050:2;34064:47;;;19107:2;34035:18;;;52570:19;19143:33;52610:14;;;19123:54;19196:12;;;34021:245::o;34273:416::-;34473:2;34487:47;;;19447:2;34458:18;;;52570:19;-1:-1;;;52610:14;;;19463:40;19522:12;;;34444:245::o;34696:416::-;34896:2;34910:47;;;19773:2;34881:18;;;52570:19;-1:-1;;;52610:14;;;19789:48;19856:12;;;34867:245::o;35119:416::-;35319:2;35333:47;;;20107:2;35304:18;;;52570:19;-1:-1;;;52610:14;;;20123:43;20185:12;;;35290:245::o;35542:416::-;35742:2;35756:47;;;20436:2;35727:18;;;52570:19;20472:34;52610:14;;;20452:55;-1:-1;;;20527:12;;;20520:28;20567:12;;;35713:245::o;35965:416::-;36165:2;36179:47;;;20818:2;36150:18;;;52570:19;20854:34;52610:14;;;20834:55;-1:-1;;;20909:12;;;20902:38;20959:12;;;36136:245::o;36388:416::-;36588:2;36602:47;;;21210:2;36573:18;;;52570:19;-1:-1;;;52610:14;;;21226:39;21284:12;;;36559:245::o;36811:416::-;37011:2;37025:47;;;21535:2;36996:18;;;52570:19;-1:-1;;;52610:14;;;21551:48;21618:12;;;36982:245::o;37234:416::-;37434:2;37448:47;;;21869:2;37419:18;;;52570:19;-1:-1;;;52610:14;;;21885:50;21954:12;;;37405:245::o;37657:416::-;37857:2;37871:47;;;22205:2;37842:18;;;52570:19;-1:-1;;;52610:14;;;22221:46;22286:12;;;37828:245::o;38080:416::-;38280:2;38294:47;;;22537:2;38265:18;;;52570:19;22573:34;52610:14;;;22553:55;-1:-1;;;22628:12;;;22621:47;22687:12;;;38251:245::o;38503:416::-;38703:2;38717:47;;;22938:2;38688:18;;;52570:19;22974:34;52610:14;;;22954:55;-1:-1;;;23029:12;;;23022:51;23092:12;;;38674:245::o;38926:416::-;39126:2;39140:47;;;23343:2;39111:18;;;52570:19;23379:34;52610:14;;;23359:55;-1:-1;;;23434:12;;;23427:50;23496:12;;;39097:245::o;39349:416::-;39549:2;39563:47;;;23747:2;39534:18;;;52570:19;23783:33;52610:14;;;23763:54;23836:12;;;39520:245::o;39772:416::-;39972:2;39986:47;;;24087:2;39957:18;;;52570:19;24123:34;52610:14;;;24103:55;-1:-1;;;24178:12;;;24171:40;24230:12;;;39943:245::o;40195:416::-;40395:2;40409:47;;;24481:2;40380:18;;;52570:19;-1:-1;;;52610:14;;;24497:44;24560:12;;;40366:245::o;40618:416::-;40818:2;40832:47;;;24811:2;40803:18;;;52570:19;24847:34;52610:14;;;24827:55;24916:34;24902:12;;;24895:56;-1:-1;;;24971:12;;;24964:46;25029:12;;;40789:245::o;41041:416::-;41241:2;41255:47;;;25280:2;41226:18;;;52570:19;25316:34;52610:14;;;25296:55;-1:-1;;;25371:12;;;25364:39;25422:12;;;41212:245::o;41464:416::-;41664:2;41678:47;;;25673:2;41649:18;;;52570:19;-1:-1;;;52610:14;;;25689:50;25758:12;;;41635:245::o;41887:416::-;42087:2;42101:47;;;26009:2;42072:18;;;52570:19;-1:-1;;;52610:14;;;26025:51;26095:12;;;42058:245::o;42310:416::-;42510:2;42524:47;;;26346:2;42495:18;;;52570:19;-1:-1;;;52610:14;;;26362:45;26426:12;;;42481:245::o;42733:416::-;42933:2;42947:47;;;26677:2;42918:18;;;52570:19;-1:-1;;;52610:14;;;26693:36;26748:12;;;42904:245::o;43156:416::-;43356:2;43370:47;;;26999:2;43341:18;;;52570:19;27035:34;52610:14;;;27015:55;-1:-1;;;27090:12;;;27083:28;27130:12;;;43327:245::o;43579:416::-;43779:2;43793:47;;;27381:2;43764:18;;;52570:19;27417:34;52610:14;;;27397:55;27486:34;27472:12;;;27465:56;-1:-1;;;27541:12;;;27534:35;27588:12;;;43750:245::o;44002:416::-;44202:2;44216:47;;;27839:2;44187:18;;;52570:19;27875:34;52610:14;;;27855:55;-1:-1;;;27930:12;;;27923:27;27969:12;;;44173:245::o;44425:358::-;44620:2;44605:18;;44634:139;44609:9;44746:6;44634:139;:::i;44790:218::-;53383:6;53372:18;;;;28630:36;;44915:2;44900:18;;44886:122::o;45015:218::-;53681:10;53670:22;;;;28988:36;;45140:2;45125:18;;45111:122::o;45240:218::-;-1:-1;;;;;53765:30;;;;29234:36;;45365:2;45350:18;;45336:122::o;45465:609::-;-1:-1;;;;;53765:30;;29234:36;;50669:18;45850:2;45835:18;;45828:48;;;45465:609;;45890:174;;45719:18;;46050:6;45890:174;:::i;:::-;45882:182;45705:369;-1:-1;;;;45705:369::o;46081:317::-;-1:-1;;;;;53765:30;;;;29234:36;;53285:13;53278:21;46384:2;46369:18;;15911:34;46228:2;46213:18;;46199:199::o;46405:417::-;-1:-1;;;;;53765:30;;29234:36;;50669:18;46694:2;46679:18;;46672:48;;;46405:417;;46734:78;;46563:18;;46798:6;46734:78;:::i;46829:465::-;-1:-1;;;;;53765:30;;29234:36;;47050:2;47035:18;;47144:140;47280:2;47265:18;;47256:6;47144:140;:::i;47301:857::-;-1:-1;;;;;53765:30;;29234:36;;47301:857;47761:140;47897:2;47882:18;;47873:6;47761:140;:::i;:::-;47666:3;47934:2;47923:9;47919:18;47912:48;47974:174;47666:3;47655:9;47651:19;48134:6;47974:174;:::i;:::-;47966:182;47637:521;-1:-1;;;;;47637:521::o;48165:325::-;-1:-1;;;;;53765:30;;;;29234:36;;53383:6;53372:18;48476:2;48461:18;;28630:36;48316:2;48301:18;;48287:203::o;48497:325::-;-1:-1;;;;;53765:30;;;;29234:36;;53681:10;53670:22;48808:2;48793:18;;28988:36;48648:2;48633:18;;48619:203::o;49161:716::-;-1:-1;;;;;53765:30;;;29234:36;;53765:30;;49616:2;49601:18;;29234:36;49456:2;50669:18;49638;;49631:48;;;49161:716;;49693:174;;49441:18;;49853:6;49693:174;:::i;49884:323::-;53878:4;53867:16;;;;29339:35;;53383:6;53372:18;50193:2;50178:18;;28748:49;50034:2;50019:18;;50005:202::o;50214:256::-;50276:2;50270:9;50302:17;;;-1:-1;;;;;50362:34;;50398:22;;;50359:62;50356:2;;;50434:1;;50424:12;50356:2;50276;50443:22;50254:216;;-1:-1;50254:216::o;55492:117::-;-1:-1;;;;;53464:54;;55551:35;;55541:2;;55600:1;;55590:12;55541:2;55535:74;:::o;55734:115::-;53383:6;55819:5;53372:18;55795:5;55792:34;55782:2;;55840:1;;55830:12;55980:115;53681:10;56065:5;53670:22;56041:5;56038:34;56028:2;;56086:1;;56076:12;56102:115;-1:-1;;;;;53765:30;;56160:34;;56150:2;;56208:1;;56198:12;56224:113;53878:4;56307:5;53867:16;56284:5;56281:33;56271:2;;56328:1;;56318:12", + "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\n// TODO: Use interfaces?\nimport \"./storage/ChannelStorage.sol\";\nimport \"./storage/CuratorGroupStorage.sol\";\nimport \"./storage/VideoStorage.sol\";\n\nimport \"./bridge/MembershipBridge.sol\";\nimport \"./bridge/ContentWorkingGroupBridge.sol\";\nimport \"./bridge/auth.sol\";\n\nimport \"../node_modules/@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\n\nimport \"./types.sol\";\n\ncontract ContentDirectory is RuntimeManageable, Pausable {\n // Storage contracts\n ChannelStorage channelStorage;\n VideoStorage videoStorage;\n CuratorGroupStorage curatorGroupStorage;\n\t// \"Bridge\" contracts\n\tMembershipBridge membershipBridge;\n\tContentWorkingGroupBridge contentWorkingGroupBridge;\n\n \t// Limits\n // (they can me \"migrated\" just be setting a default value here, so no need to keep them in a separate storage)\n uint64 channelInstancesLimit = 10;\n uint32 videosPerChannelDefaultLimit = 5;\n uint32 videosPerChannelMaxLimit = 1000;\n\n\tevent ChannelInstancesLimitUpdated(uint64 _newLimit);\n\tevent VideosPerChannelDefaultLimitUpdated(uint32 _newLimit);\n\tevent VideosPerChannelMaxLimitUpdated(uint32 _newLimit);\n\n\tevent Migrated(address _logic, address _videoStorage, address _channelStorage, address _curatorGroupStorage);\n\n\t// Channels\n\tevent ChannelCreated(uint64 _id, ChannelOwnership _ownership, string[2][] _metadata);\n\tevent ChannelMetadataUpdated(uint64 _id, string[2][] _metadata);\n\tevent ChannelOwnershipUpdated(uint64 _id, ChannelOwnership _ownership);\n\tevent ChannelVideoLimitUpdated(uint64 _id, uint64 _newLimit);\n\tevent ChannelDeactivated(uint64 _id, string _reason);\n\tevent ChannelReactivated(uint64 _id);\n\t// Curator Groups\n\tevent CuratorAddedToGroup(uint64 _curatorId, uint16 _groupId);\n\tevent CuratorRemovedFromGroup(uint64 _curatorId, uint16 _groupId);\n\tevent CuratorRemovedFromAllGroups(uint64 _curatorId);\n\t// Videos\n\tevent VideoAdded(uint64 _id, uint64 _channelId, string[2][] _metadata);\n\tevent VideoMetadataUpdated(uint64 _id, string[2][] _metadata);\n\tevent VideoRemoved(uint64 _id);\n\tevent VideoRemovedByCurator(uint64 _id, string _reason);\n\tevent VideoDeactivated(uint64 _id, string _reason);\n\tevent VideoReactivated(uint64 _id);\n\n\t// Common modifiers/helpers\n\tfunction _isActiveLead (address _address) internal view returns (bool) {\n\t\treturn contentWorkingGroupBridge.isActiveLead(_address);\n\t}\n\n\tfunction _isCurator (address _address) internal view returns (bool) {\n\t\t// FIXME: We either:\n\t\t// - need to provide curatorId\n\t\t// - have a separate address => curatorId[] map\n\t\t// - wait until the bridge alternative is implemented (with special address format)\n\t\treturn contentWorkingGroupBridge.isCurator(_address, 0);\n\t}\n\n\tmodifier onlyLead() {\n\t\trequire(_isActiveLead(msg.sender), \"Active lead access required!\");\n\t\t_;\n\t}\n\n\t// Limit setters that can be called via proposal module\n function setChannelInstancesLimit (uint64 _newLimit) public onlyCouncil {\n\t\tchannelInstancesLimit = _newLimit;\n\t\temit ChannelInstancesLimitUpdated(_newLimit);\n\t}\n\n function setVideosPerChannelDefaultLimit (uint32 _newLimit) public onlyCouncil {\n\t\trequire(\n\t\t\t_newLimit <= videosPerChannelMaxLimit,\n\t\t\t\"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"\n\t\t);\n\t\tvideosPerChannelDefaultLimit = _newLimit;\n\t\temit VideosPerChannelDefaultLimitUpdated(_newLimit);\n\t}\n\n function setVideosPerChannelMaxLimit (uint32 _newLimit) public onlyCouncil {\n\t\trequire(\n\t\t\t_newLimit >= videosPerChannelDefaultLimit,\n\t\t\t\"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"\n\t\t);\n\t\tvideosPerChannelMaxLimit = _newLimit;\n\t\temit VideosPerChannelMaxLimitUpdated(_newLimit);\n\t}\n\n\t// Pause/unpause contract (through proposals)\n\tfunction pause() public onlyCouncil {\n\t\t_pause();\n\t}\n\n\tfunction unpause() public onlyCouncil {\n\t\t_unpause();\n\t}\n\n\tconstructor (\n\t\tRuntimeAddressProvider _provider,\n\t\tMembershipBridge _membershipBridge,\n\t\tContentWorkingGroupBridge _contentWorkingGroupBridge,\n\t\tChannelStorage _channelStorage,\n\t\tVideoStorage _videoStorage,\n\t\tCuratorGroupStorage _curatorGroupStorage\n\t) public RuntimeManageable(_provider) {\n\t\tmembershipBridge = _membershipBridge;\n\t\tcontentWorkingGroupBridge = _contentWorkingGroupBridge;\n\t\tchannelStorage = _channelStorage;\n\t\tvideoStorage = _videoStorage;\n\t\tcuratorGroupStorage = _curatorGroupStorage;\n\t}\n\n\t// Faciliates migration to new logic contract\n\tfunction migrate (\n\t\taddress _newLogic,\n address _newVideoStorage,\n address _newChannelStorage,\n address _newCuratorGroupStorage\n\t) public onlyCouncil {\n\t\t_migrateStorage(address(videoStorage), _newVideoStorage, _newLogic);\n\t\t_migrateStorage(address(channelStorage), _newChannelStorage, _newLogic);\n\t\t_migrateStorage(address(curatorGroupStorage), _newCuratorGroupStorage, _newLogic);\n\t\temit Migrated(\n\t\t\t_newLogic,\n\t\t\t_newVideoStorage == address(0) ? address(videoStorage) : _newVideoStorage,\n\t\t\t_newChannelStorage == address(0) ? address(channelStorage) : _newChannelStorage,\n\t\t\t_newCuratorGroupStorage == address(0) ? address(curatorGroupStorage) : _newCuratorGroupStorage\n\t\t);\n\t\tselfdestruct(msg.sender);\n\t}\n\n\tfunction _migrateStorage (\n\t\taddress _oldStorageAddress,\n\t\taddress _newStorageAddress,\n\t\taddress _newLogicAddress\n\t) internal {\n\t\tif (_newStorageAddress != address(0)) {\n\t\t\t// TODO: Destroy old contract?\n\t\t\t// TODO: Set new contract owner?\n\t\t}\n\t\tOwnable oldStorage = Ownable(_oldStorageAddress);\n\t\toldStorage.transferOwnership(_newLogicAddress);\n\t}\n\n\t// CHANNELS\n\tusing ChannelOwnershipDecoder for ChannelOwnership;\n\n\tfunction _validateOwnership(ChannelOwnership memory _ownership) internal view returns (bool) {\n\t\trequire(_ownership.isValid(), \"Invalid ownership data\");\n\t\t// TODO: Check if member / group exists\n\t\t// (note that member check would be impossible without bridge contracts)\n\t}\n\n\tfunction _hasOwnerAccess(address _address, ChannelOwnership memory _ownership) internal view returns (bool) {\n\t\tif (_ownership.isAddress()) {\n\t\t\treturn _address == _ownership.asAddress();\n\t\t}\n\t\telse if (_ownership.isMember()) {\n\t\t\treturn membershipBridge.isMemberController(_address, _ownership.asMember());\n\t\t}\n\t\telse if (_ownership.isCuratorGroup()) {\n\t\t\t// Only lead can act as owner of group channel\n\t\t\treturn contentWorkingGroupBridge.isActiveLead(msg.sender);\n\t\t}\n\t\telse {\n\t\t\tassert(false); // Should never happen\n\t\t}\n\t}\n\n\tfunction _canCurate (address _address, ChannelOwnership memory _ownership) internal view returns (bool) {\n\t\treturn _ownership.isCuratorGroup() ? _isActiveLead(_address) : _isCurator(_address);\n\t}\n\n\tfunction _hasGroupAccessToOperation (\n\t\taddress _address,\n\t\tChannelOwnership memory _ownership,\n\t\tContentDirectoryOperation _operation\n\t) internal view returns(bool) {\n\t\t// TODO: Implement\n\t}\n\n\tfunction createChannel (\n\t\tChannelOwnership memory _ownership,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\trequire(_ownership.isValid(), \"Invalid ownership\");\n\t\trequire(channelStorage.nextChannelId() <= channelInstancesLimit, \"Channel instances limit reached\");\n\t\trequire(_hasOwnerAccess(msg.sender, _ownership), \"Access denied under provided ownership\");\n\t\tuint64 channelId = channelStorage.addChannel(_ownership); // TODO: Some additional call-related checks?\n\t\temit ChannelCreated(channelId, _ownership, _metadata);\n\t}\n\n\tfunction updateChannelMetadata (\n\t\tuint64 _channelId,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_canCurate(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.UpdateChannelMetadata),\n\t\t\t\"Access denied\"\n\t\t);\n\t\t// TODO: Shouldn't curator/owner be able update deactivated channel?\n\t\trequire(channel.isActive, \"This channel is deactivated\");\n\t\temit ChannelMetadataUpdated(_channelId, _metadata);\n\t}\n\n\tfunction updateChannelOwnership (\n\t\tuint64 _channelId,\n\t\tChannelOwnership memory _ownership\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(_hasOwnerAccess(msg.sender, channel.ownership), \"Owner access required\");\n\t\trequire(_ownership.isValid(), \"Invalid ownership\");\n\t\trequire(!_ownership.isCuratorGroup() || _isActiveLead(msg.sender), \"Only lead can update ownership to CuratorGroup\");\n\t\tchannelStorage.updateOwnership(_channelId, _ownership); // TODO: Some additional call-related checks?\n\t\temit ChannelOwnershipUpdated(_channelId, _ownership);\n\t}\n\n\tfunction updateChannelVideoLimit (\n\t\tuint64 _channelId,\n\t\tuint32 _limit // Note that \"0\" here means \"use currently default limit\"\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\t// FIXME: We either need curatorId or wait until the bridge alternative is implemented\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(_limit <= videosPerChannelMaxLimit, \"The limit cannot exceed global videosPerChannelMaxLimit\");\n\t\tchannelStorage.setChannelVideoLimit(_channelId, _limit); // TODO: Some additional call-related checks?\n\t\temit ChannelVideoLimitUpdated(_channelId, _limit);\n\t}\n\n function deactivateChannel (\n\t\tuint64 _channelId,\n\t\tstring memory _reason\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(channel.isActive, \"Channel already deactivated\");\n\t\trequire(bytes(_reason).length >= 2, \"The reason should be at least 2 characters long\");\n\t\tchannelStorage.updateStatus(_channelId, false);\n\t\temit ChannelDeactivated(_channelId, _reason);\n\t}\n\n function activateChannel (\n\t\tuint64 _channelId\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\t// FIXME: We either need curatorId or wait until the bridge alternative is implemented\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(!channel.isActive, \"Channel already active\");\n\t\tchannelStorage.updateStatus(_channelId, true);\n\t\temit ChannelReactivated(_channelId);\n\t}\n\n\t// CURATOR GROUPS\n\tfunction addCuratorToGroup(\n\t\tuint64 _curatorId,\n\t\tuint16 _groupId\n\t) public whenNotPaused onlyLead {\n\t\trequire(contentWorkingGroupBridge.curatorExists(_curatorId), \"Curator id not recognized\");\n\t\trequire(curatorGroupStorage.groupExists(_groupId), \"Group id not recognized\");\n\t\trequire(curatorGroupStorage.isCuratorInGroup(_curatorId, _groupId) == false, \"Curator is already in the group\");\n\t\tcuratorGroupStorage.addCuratorToGroup(_curatorId, _groupId);\n\t\temit CuratorAddedToGroup(_curatorId, _groupId);\n\t}\n\n\tfunction removeCuratorFromGroup(\n\t\tuint64 _curatorId,\n\t\tuint16 _groupId\n\t) public whenNotPaused onlyLead {\n\t\t// We don't validate if curator exists here, it's enough to check that isCuratorInGroup == true\n\t\trequire(curatorGroupStorage.groupExists(_groupId), \"Group id not recognized\");\n\t\trequire(curatorGroupStorage.isCuratorInGroup(_curatorId, _groupId) == true, \"Curator is already not in the group\");\n\t\tcuratorGroupStorage.removeCuratorFromGroup(_curatorId, _groupId);\n\t\temit CuratorRemovedFromGroup(_curatorId, _groupId);\n\t}\n\n\tfunction removeCuratorFromAllGroups(\n\t\tuint64 _curatorId\n\t) public whenNotPaused onlyLead {\n\t\trequire(contentWorkingGroupBridge.curatorExists(_curatorId), \"Curator id not recognized\");\n\t\tcuratorGroupStorage.removeCuratorFromAllGroups(_curatorId);\n\t\temit CuratorRemovedFromAllGroups(_curatorId);\n\t\t// TODO: Alternatively iterate here and execute \"removeCuratorFromGroup\" sending multiple events\n\t\t// The gas cost can get much higher, but perhaps that simplify handling events?\n\t}\n\n\tfunction removeCuratorGroup(\n\t\tuint16 _groupId\n\t) public whenNotPaused onlyLead {\n\t\tGroup memory group = curatorGroupStorage.getExistingGroup(_groupId);\n\t\trequire(group.curatorsCount == 0, \"Group's curators count needs to be 0\");\n\t\trequire(\n\t\t\tchannelStorage.channelCountByOwnership(uint8(ChannelOwnerType.CuratorGroup), _groupId) == 0,\n\t\t\t\"Group's channels count needs to be 0\"\n\t\t);\n\t\tcuratorGroupStorage.removeGroup(_groupId);\n\t}\n\n\t// VIDEOS\n\tfunction addVideo(\n\t\tuint64 _channelId,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.AddVideo),\n\t\t\t\"Access denied\"\n\t\t);\n\t\trequire(channel.isActive, \"Cannot add video to a channel that isn't active\");\n\t\tuint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit;\n\t\trequire(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit);\n\t\tuint64 videoId = videoStorage.addVideo(_channelId);\n\t\temit VideoAdded(videoId, _channelId, _metadata);\n\t}\n\n\tfunction updateVideoMetadata(\n\t\tuint64 _videoId,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.UpdateVideoMetadata) ||\n\t\t\t_canCurate(msg.sender, channel.ownership),\n\t\t\t\"Access denied\"\n\t\t);\n\t\t// TODO: Curator can still update?\n\t\trequire(channel.isActive, \"Cannot update video metadata when the channel is not active\");\n\t\temit VideoMetadataUpdated(_videoId, _metadata);\n\t}\n\n\tfunction removeVideo(\n\t\tuint64 _videoId\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.RemoveVideo),\n\t\t\t\"Access denied\"\n\t\t);\n\t\tvideoStorage.removeVideo(_videoId);\n\t\temit VideoRemoved(_videoId);\n\t}\n\n\tfunction removeVideoAsCurator(\n\t\tuint64 _videoId,\n\t\tstring memory _reason\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(bytes(_reason).length > 2, \"The reason should be at least 2 characters long\");\n\t\tvideoStorage.removeVideo(_videoId);\n\t\temit VideoRemovedByCurator(_videoId, _reason);\n\t}\n\n function deactivateVideo (\n\t\tuint64 _videoId,\n\t\tstring memory _reason\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(video.isActive, \"Video already deactivated\");\n\t\trequire(bytes(_reason).length >= 2, \"The reason should be at least 2 characters long\");\n\t\tvideoStorage.updateStatus(_videoId, false);\n\t\temit VideoDeactivated(_videoId, _reason);\n\t}\n\n function activateVideo (\n\t\tuint64 _videoId\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(!video.isActive, \"Video already active\");\n\t\tvideoStorage.updateStatus(_videoId, true);\n\t\temit VideoReactivated(_videoId);\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol", + "exportedSymbols": { + "ContentDirectory": [ + 1377 + ] + }, + "id": 1378, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:0" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "file": "./storage/ChannelStorage.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 2876, + "src": "84:38:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", + "file": "./storage/CuratorGroupStorage.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3115, + "src": "123:43:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", + "file": "./storage/VideoStorage.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3264, + "src": "167:36:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", + "file": "./bridge/MembershipBridge.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 1614, + "src": "205:39:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", + "file": "./bridge/ContentWorkingGroupBridge.sol", + "id": 7, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 1546, + "src": "245:48:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "file": "./bridge/auth.sol", + "id": 8, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 1678, + "src": "294:27:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", + "file": "../node_modules/@openzeppelin/contracts/utils/Pausable.sol", + "id": 9, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 4144, + "src": "323:68:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 10, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3403, + "src": "392:68:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/types.sol", + "file": "./types.sol", + "id": 11, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3271, + "src": "462:21:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12, + "name": "RuntimeManageable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1677, + "src": "514:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeManageable_$1677", + "typeString": "contract RuntimeManageable" + } + }, + "id": 13, + "nodeType": "InheritanceSpecifier", + "src": "514:17:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 14, + "name": "Pausable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4143, + "src": "533:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pausable_$4143", + "typeString": "contract Pausable" + } + }, + "id": 15, + "nodeType": "InheritanceSpecifier", + "src": "533:8:0" + } + ], + "contractDependencies": [ + 1677, + 3293, + 4143 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1377, + "linearizedBaseContracts": [ + 1377, + 4143, + 3293, + 1677 + ], + "name": "ContentDirectory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "channelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "573:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + }, + "typeName": { + "contractScope": null, + "id": 16, + "name": "ChannelStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2875, + "src": "573:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "videoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "608:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + }, + "typeName": { + "contractScope": null, + "id": 18, + "name": "VideoStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3263, + "src": "608:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "curatorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "639:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + }, + "typeName": { + "contractScope": null, + "id": 20, + "name": "CuratorGroupStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3114, + "src": "639:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 23, + "mutability": "mutable", + "name": "membershipBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "704:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + }, + "typeName": { + "contractScope": null, + "id": 22, + "name": "MembershipBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1613, + "src": "704:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "contentWorkingGroupBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "740:51:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + }, + "typeName": { + "contractScope": null, + "id": 24, + "name": "ContentWorkingGroupBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1545, + "src": "740:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "channelInstancesLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "927:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 26, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "927:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3130", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "videosPerChannelDefaultLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "966:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 29, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "966:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "35", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1004:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "videosPerChannelMaxLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "1011:38:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 32, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1045:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 38, + "name": "ChannelInstancesLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 37, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 36, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 38, + "src": "1088:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 35, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1088:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1087:18:0" + }, + "src": "1053:53:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 42, + "name": "VideosPerChannelDefaultLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 40, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 42, + "src": "1150:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 39, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1150:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1149:18:0" + }, + "src": "1108:60:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 46, + "name": "VideosPerChannelMaxLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 46, + "src": "1208:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 43, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1208:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1207:18:0" + }, + "src": "1170:56:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 56, + "name": "Migrated", + "nodeType": "EventDefinition", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "indexed": false, + "mutability": "mutable", + "name": "_logic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1244:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1244:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 50, + "indexed": false, + "mutability": "mutable", + "name": "_videoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1260:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 49, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1260:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 52, + "indexed": false, + "mutability": "mutable", + "name": "_channelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1283:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 51, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 54, + "indexed": false, + "mutability": "mutable", + "name": "_curatorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1308:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1243:94:0" + }, + "src": "1229:109:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 67, + "name": "ChannelCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1375:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 57, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1375:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "indexed": false, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1387:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 59, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1387:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1416:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 61, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1416:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 63, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1423:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1416:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 64, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1416:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1374:64:0" + }, + "src": "1354:85:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 76, + "name": "ChannelMetadataUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 76, + "src": "1470:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 68, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1470:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 76, + "src": "1482:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 70, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 72, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1489:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1482:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 73, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1482:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1469:35:0" + }, + "src": "1441:64:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 82, + "name": "ChannelOwnershipUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 81, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 78, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 82, + "src": "1537:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 77, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1537:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 80, + "indexed": false, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 82, + "src": "1549:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 79, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1549:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1536:41:0" + }, + "src": "1507:71:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 88, + "name": "ChannelVideoLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 84, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 88, + "src": "1611:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 83, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1611:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 88, + "src": "1623:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 85, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1623:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1610:30:0" + }, + "src": "1580:61:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 94, + "name": "ChannelDeactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 93, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 90, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 94, + "src": "1668:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 89, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1668:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "indexed": false, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 94, + "src": "1680:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 91, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1680:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1667:28:0" + }, + "src": "1643:53:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 98, + "name": "ChannelReactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 96, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 98, + "src": "1723:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 95, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1723:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1722:12:0" + }, + "src": "1698:37:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 104, + "name": "CuratorAddedToGroup", + "nodeType": "EventDefinition", + "parameters": { + "id": 103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "indexed": false, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 104, + "src": "1782:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 99, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1782:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 102, + "indexed": false, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 104, + "src": "1801:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 101, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1801:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1781:36:0" + }, + "src": "1756:62:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 110, + "name": "CuratorRemovedFromGroup", + "nodeType": "EventDefinition", + "parameters": { + "id": 109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 106, + "indexed": false, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 110, + "src": "1850:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 105, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1850:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 108, + "indexed": false, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 110, + "src": "1869:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 107, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1869:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1849:36:0" + }, + "src": "1820:66:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 114, + "name": "CuratorRemovedFromAllGroups", + "nodeType": "EventDefinition", + "parameters": { + "id": 113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 112, + "indexed": false, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 114, + "src": "1922:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 111, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1922:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1921:19:0" + }, + "src": "1888:53:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 125, + "name": "VideoAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 124, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 116, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1971:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 115, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1971:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 118, + "indexed": false, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1983:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 117, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1983:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 123, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "2002:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 119, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2002:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 121, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2009:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "2002:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 122, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2002:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:54:0" + }, + "src": "1954:71:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 134, + "name": "VideoMetadataUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 127, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "2054:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 126, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2054:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "2066:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 128, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2066:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 130, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2073:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "2066:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 131, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2066:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2053:35:0" + }, + "src": "2027:62:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 138, + "name": "VideoRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 138, + "src": "2110:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 135, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2110:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2109:12:0" + }, + "src": "2091:31:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 144, + "name": "VideoRemovedByCurator", + "nodeType": "EventDefinition", + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 140, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 144, + "src": "2152:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 139, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2152:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 142, + "indexed": false, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 144, + "src": "2164:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 141, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2164:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2151:28:0" + }, + "src": "2124:56:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 150, + "name": "VideoDeactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 146, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 150, + "src": "2205:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 145, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2205:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 148, + "indexed": false, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 150, + "src": "2217:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 147, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2217:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2204:28:0" + }, + "src": "2182:51:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 154, + "name": "VideoReactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 152, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 154, + "src": "2258:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 151, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2258:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:12:0" + }, + "src": "2235:35:0" + }, + { + "body": { + "id": 166, + "nodeType": "Block", + "src": "2373:63:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 163, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "2423:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 161, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "2384:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isActiveLead", + "nodeType": "MemberAccess", + "referencedDeclaration": 1544, + "src": "2384:38:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2384:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 160, + "id": 165, + "nodeType": "Return", + "src": "2377:55:0" + } + ] + }, + "documentation": null, + "id": 167, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isActiveLead", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 156, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 167, + "src": "2326:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2325:18:0" + }, + "returnParameters": { + "id": 160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 167, + "src": "2367:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 158, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2367:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2366:6:0" + }, + "scope": 1377, + "src": "2302:134:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 180, + "nodeType": "Block", + "src": "2507:255:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 176, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "2746:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2756:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "argumentTypes": null, + "id": 174, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "2710:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isCurator", + "nodeType": "MemberAccess", + "referencedDeclaration": 1513, + "src": "2710:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", + "typeString": "function (address,uint64) view external returns (bool)" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2710:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 173, + "id": 179, + "nodeType": "Return", + "src": "2703:55:0" + } + ] + }, + "documentation": null, + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isCurator", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 181, + "src": "2460:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2460:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2459:18:0" + }, + "returnParameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 181, + "src": "2501:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 171, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2501:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2500:6:0" + }, + "scope": 1377, + "src": "2439:323:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 192, + "nodeType": "Block", + "src": "2785:79:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 185, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2811:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2811:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 184, + "name": "_isActiveLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2797:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2797:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "416374697665206c6561642061636365737320726571756972656421", + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2824:30:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", + "typeString": "literal_string \"Active lead access required!\"" + }, + "value": "Active lead access required!" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", + "typeString": "literal_string \"Active lead access required!\"" + } + ], + "id": 183, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2789:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2789:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 190, + "nodeType": "ExpressionStatement", + "src": "2789:66:0" + }, + { + "id": 191, + "nodeType": "PlaceholderStatement", + "src": "2859:1:0" + } + ] + }, + "documentation": null, + "id": 193, + "name": "onlyLead", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 182, + "nodeType": "ParameterList", + "parameters": [], + "src": "2782:2:0" + }, + "src": "2765:99:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 208, + "nodeType": "Block", + "src": "2999:89:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 200, + "name": "channelInstancesLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "3003:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 201, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "3027:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "3003:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 203, + "nodeType": "ExpressionStatement", + "src": "3003:33:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 205, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "3074:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 204, + "name": "ChannelInstancesLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "3045:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3045:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 207, + "nodeType": "EmitStatement", + "src": "3040:44:0" + } + ] + }, + "documentation": null, + "functionSelector": "72c95f83", + "id": 209, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 198, + "modifierName": { + "argumentTypes": null, + "id": 197, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "2987:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2987:11:0" + } + ], + "name": "setChannelInstancesLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 195, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 209, + "src": "2962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 194, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2962:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2961:18:0" + }, + "returnParameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "2999:0:0" + }, + "scope": 1377, + "src": "2927:161:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 231, + "nodeType": "Block", + "src": "3173:242:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 217, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "3189:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 218, + "name": "videosPerChannelMaxLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3202:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3189:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766964656f735065724368616e6e656c44656661756c744c696d69742063616e6e6f74206578636565642063757272656e7420766964656f735065724368616e6e656c4d61784c696d6974", + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3231:77:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", + "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" + }, + "value": "videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", + "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" + } + ], + "id": 216, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3177:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3177:135:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 222, + "nodeType": "ExpressionStatement", + "src": "3177:135:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 223, + "name": "videosPerChannelDefaultLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "3316:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 224, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "3347:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3316:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 226, + "nodeType": "ExpressionStatement", + "src": "3316:40:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 228, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "3401:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 227, + "name": "VideosPerChannelDefaultLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "3365:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3365:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 230, + "nodeType": "EmitStatement", + "src": "3360:51:0" + } + ] + }, + "documentation": null, + "functionSelector": "ae90430a", + "id": 232, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 214, + "modifierName": { + "argumentTypes": null, + "id": 213, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3161:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3161:11:0" + } + ], + "name": "setVideosPerChannelDefaultLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 232, + "src": "3136:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 210, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3136:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3135:18:0" + }, + "returnParameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [], + "src": "3173:0:0" + }, + "scope": 1377, + "src": "3094:321:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 254, + "nodeType": "Block", + "src": "3496:249:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 240, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3512:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 241, + "name": "videosPerChannelDefaultLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "3525:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3512:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766964656f735065724368616e6e656c4d61784c696d6974206d7573742062652067726561746572207468616e206f7220657175616c20746f20766964656f735065724368616e6e656c44656661756c744c696d6974", + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:88:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", + "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" + }, + "value": "videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", + "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3500:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3500:150:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 245, + "nodeType": "ExpressionStatement", + "src": "3500:150:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 246, + "name": "videosPerChannelMaxLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3654:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 247, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3681:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3654:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 249, + "nodeType": "ExpressionStatement", + "src": "3654:36:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 251, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3731:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 250, + "name": "VideosPerChannelMaxLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "3699:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 253, + "nodeType": "EmitStatement", + "src": "3694:47:0" + } + ] + }, + "documentation": null, + "functionSelector": "9da9f335", + "id": 255, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 237, + "modifierName": { + "argumentTypes": null, + "id": 236, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3484:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3484:11:0" + } + ], + "name": "setVideosPerChannelMaxLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 255, + "src": "3459:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 233, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3459:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3458:18:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [], + "src": "3496:0:0" + }, + "scope": 1377, + "src": "3421:324:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 263, + "nodeType": "Block", + "src": "3831:16:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 260, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4126, + "src": "3835:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3835:8:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 262, + "nodeType": "ExpressionStatement", + "src": "3835:8:0" + } + ] + }, + "documentation": null, + "functionSelector": "8456cb59", + "id": 264, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 258, + "modifierName": { + "argumentTypes": null, + "id": 257, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3819:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3819:11:0" + } + ], + "name": "pause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 256, + "nodeType": "ParameterList", + "parameters": [], + "src": "3809:2:0" + }, + "returnParameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [], + "src": "3831:0:0" + }, + "scope": 1377, + "src": "3795:52:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 272, + "nodeType": "Block", + "src": "3888:18:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 269, + "name": "_unpause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4142, + "src": "3892:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3892:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 271, + "nodeType": "ExpressionStatement", + "src": "3892:10:0" + } + ] + }, + "documentation": null, + "functionSelector": "3f4ba83a", + "id": 273, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 267, + "modifierName": { + "argumentTypes": null, + "id": 266, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3876:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3876:11:0" + } + ], + "name": "unpause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [], + "src": "3866:2:0" + }, + "returnParameters": { + "id": 268, + "nodeType": "ParameterList", + "parameters": [], + "src": "3888:0:0" + }, + "scope": 1377, + "src": "3850:56:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 311, + "nodeType": "Block", + "src": "4199:216:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 291, + "name": "membershipBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "4203:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 292, + "name": "_membershipBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 277, + "src": "4222:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "src": "4203:36:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "id": 294, + "nodeType": "ExpressionStatement", + "src": "4203:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 295, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4243:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 296, + "name": "_contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 279, + "src": "4271:26:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "src": "4243:54:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4243:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 299, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "4301:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 300, + "name": "_channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4318:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "src": "4301:32:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 302, + "nodeType": "ExpressionStatement", + "src": "4301:32:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 303, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "4337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 304, + "name": "_videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4352:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "src": "4337:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 306, + "nodeType": "ExpressionStatement", + "src": "4337:28:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 307, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "4369:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 308, + "name": "_curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "4391:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "src": "4369:42:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 310, + "nodeType": "ExpressionStatement", + "src": "4369:42:0" + } + ] + }, + "documentation": null, + "id": 312, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 288, + "name": "_provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 275, + "src": "4188:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + } + ], + "id": 289, + "modifierName": { + "argumentTypes": null, + "id": 287, + "name": "RuntimeManageable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "4170:17:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", + "typeString": "type(contract RuntimeManageable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4170:28:0" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 275, + "mutability": "mutable", + "name": "_provider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "3925:32:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 274, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "3925:22:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 277, + "mutability": "mutable", + "name": "_membershipBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "3961:34:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + }, + "typeName": { + "contractScope": null, + "id": 276, + "name": "MembershipBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1613, + "src": "3961:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 279, + "mutability": "mutable", + "name": "_contentWorkingGroupBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "3999:52:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + }, + "typeName": { + "contractScope": null, + "id": 278, + "name": "ContentWorkingGroupBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1545, + "src": "3999:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "_channelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "4055:30:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + }, + "typeName": { + "contractScope": null, + "id": 280, + "name": "ChannelStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2875, + "src": "4055:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "_videoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "4089:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + }, + "typeName": { + "contractScope": null, + "id": 282, + "name": "VideoStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3263, + "src": "4089:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 285, + "mutability": "mutable", + "name": "_curatorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "4119:40:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + }, + "typeName": { + "contractScope": null, + "id": 284, + "name": "CuratorGroupStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3114, + "src": "4119:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3921:241:0" + }, + "returnParameters": { + "id": 290, + "nodeType": "ParameterList", + "parameters": [], + "src": "4199:0:0" + }, + "scope": 1377, + "src": "3909:506:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 397, + "nodeType": "Block", + "src": "4637:559:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 328, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "4665:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + ], + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4657:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4657:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4657:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 330, + "name": "_newVideoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "4680:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 331, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4698:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 325, + "name": "_migrateStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4641:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4641:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 333, + "nodeType": "ExpressionStatement", + "src": "4641:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 337, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "4736:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + ], + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4728:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4728:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 339, + "name": "_newChannelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "4753:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 340, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4773:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 334, + "name": "_migrateStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4712:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4712:71:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 342, + "nodeType": "ExpressionStatement", + "src": "4712:71:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 346, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "4811:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + ], + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4803:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4803:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4803:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 348, + "name": "_newCuratorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "4833:23:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 349, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4858:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 343, + "name": "_migrateStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4787:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4787:81:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 351, + "nodeType": "ExpressionStatement", + "src": "4787:81:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 353, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4890:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 354, + "name": "_newVideoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "4904:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4932:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4924:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4924:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4924:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4904:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 364, + "name": "_newVideoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "4961:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4904:73:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 362, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "4945:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4937:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4937:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4937:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 366, + "name": "_newChannelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "4982:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5012:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5004:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5004:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5004:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4982:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 376, + "name": "_newChannelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "5043:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4982:79:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 374, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "5025:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + ], + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5017:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5017:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5017:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 378, + "name": "_newCuratorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "5066:23:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5101:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5093:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5093:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5093:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5066:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 388, + "name": "_newCuratorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "5137:23:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5066:94:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 386, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5114:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + ], + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5106:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5106:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5106:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 352, + "name": "Migrated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "4877:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address,address)" + } + }, + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4877:287:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 391, + "nodeType": "EmitStatement", + "src": "4872:292:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5181:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5181:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 392, + "name": "selfdestruct", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -21, + "src": "5168:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", + "typeString": "function (address payable)" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 396, + "nodeType": "ExpressionStatement", + "src": "5168:24:0" + } + ] + }, + "documentation": null, + "functionSelector": "e30ac74e", + "id": 398, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 323, + "modifierName": { + "argumentTypes": null, + "id": 322, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "4625:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4625:11:0" + } + ], + "name": "migrate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "_newLogic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4486:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 313, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4486:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 316, + "mutability": "mutable", + "name": "_newVideoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4513:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4513:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "_newChannelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4547:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4547:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "_newCuratorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4583:31:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4583:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4482:135:0" + }, + "returnParameters": { + "id": 324, + "nodeType": "ParameterList", + "parameters": [], + "src": "4637:0:0" + }, + "scope": 1377, + "src": "4465:731:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 427, + "nodeType": "Block", + "src": "5325:222:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 407, + "name": "_newStorageAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 402, + "src": "5333:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5363:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5355:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5355:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5355:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5333:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 414, + "nodeType": "IfStatement", + "src": "5329:113:0", + "trueBody": { + "id": 413, + "nodeType": "Block", + "src": "5367:75:0", + "statements": [] + } + }, + { + "assignments": [ + 416 + ], + "declarations": [ + { + "constant": false, + "id": 416, + "mutability": "mutable", + "name": "oldStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 427, + "src": "5445:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + }, + "typeName": { + "contractScope": null, + "id": 415, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "5445:7:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 420, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 418, + "name": "_oldStorageAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 400, + "src": "5474:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 417, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3402, + "src": "5466:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Ownable_$3402_$", + "typeString": "type(contract Ownable)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5466:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5445:48:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 424, + "name": "_newLogicAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "5526:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 421, + "name": "oldStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5497:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 3401, + "src": "5497:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5497:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "5497:46:0" + } + ] + }, + "documentation": null, + "id": 428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_migrateStorage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "_oldStorageAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 428, + "src": "5228:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5228:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 402, + "mutability": "mutable", + "name": "_newStorageAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 428, + "src": "5258:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5258:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 404, + "mutability": "mutable", + "name": "_newLogicAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 428, + "src": "5288:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5224:91:0" + }, + "returnParameters": { + "id": 406, + "nodeType": "ParameterList", + "parameters": [], + "src": "5325:0:0" + }, + "scope": 1377, + "src": "5199:348:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 431, + "libraryName": { + "contractScope": null, + "id": 429, + "name": "ChannelOwnershipDecoder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2658, + "src": "5569:23:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelOwnershipDecoder_$2658", + "typeString": "library ChannelOwnershipDecoder" + } + }, + "nodeType": "UsingForDirective", + "src": "5563:51:0", + "typeName": { + "contractScope": null, + "id": 430, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "5597:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + } + }, + { + "body": { + "id": 445, + "nodeType": "Block", + "src": "5710:180:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 439, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "5722:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 440, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 2657, + "src": "5722:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5722:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964206f776e6572736869702064617461", + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5744:24:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", + "typeString": "literal_string \"Invalid ownership data\"" + }, + "value": "Invalid ownership data" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", + "typeString": "literal_string \"Invalid ownership data\"" + } + ], + "id": 438, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5714:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5714:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 444, + "nodeType": "ExpressionStatement", + "src": "5714:55:0" + } + ] + }, + "documentation": null, + "id": 446, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validateOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 433, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 446, + "src": "5645:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 432, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "5645:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5644:36:0" + }, + "returnParameters": { + "id": 437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 436, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 446, + "src": "5704:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 435, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5704:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5703:6:0" + }, + "scope": 1377, + "src": "5617:273:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 495, + "nodeType": "Block", + "src": "6001:418:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 455, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6009:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 456, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "6009:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6009:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 465, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6096:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "6096:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6096:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 477, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6216:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 478, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2533, + "src": "6216:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6216:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 491, + "nodeType": "Block", + "src": "6370:46:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6382:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 487, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "6375:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6375:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 490, + "nodeType": "ExpressionStatement", + "src": "6375:13:0" + } + ] + }, + "id": 492, + "nodeType": "IfStatement", + "src": "6212:204:0", + "trueBody": { + "id": 486, + "nodeType": "Block", + "src": "6245:117:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 482, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6346:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6346:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 480, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "6307:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isActiveLead", + "nodeType": "MemberAccess", + "referencedDeclaration": 1544, + "src": "6307:38:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6307:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 454, + "id": 485, + "nodeType": "Return", + "src": "6300:57:0" + } + ] + } + }, + "id": 493, + "nodeType": "IfStatement", + "src": "6092:324:0", + "trueBody": { + "id": 476, + "nodeType": "Block", + "src": "6119:85:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 470, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "6167:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 471, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6177:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 472, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "asMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 2578, + "src": "6177:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6177:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 468, + "name": "membershipBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "6131:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isMemberController", + "nodeType": "MemberAccess", + "referencedDeclaration": 1595, + "src": "6131:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", + "typeString": "function (address,uint64) view external returns (bool)" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6131:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 454, + "id": 475, + "nodeType": "Return", + "src": "6124:75:0" + } + ] + } + }, + "id": 494, + "nodeType": "IfStatement", + "src": "6005:411:0", + "trueBody": { + "id": 464, + "nodeType": "Block", + "src": "6033:51:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 458, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "6045:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 459, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6057:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 460, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "asAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2557, + "src": "6057:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (address)" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6057:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6045:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 454, + "id": 463, + "nodeType": "Return", + "src": "6038:41:0" + } + ] + } + } + ] + }, + "documentation": null, + "id": 496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_hasOwnerAccess", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 496, + "src": "5918:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5918:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 450, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 496, + "src": "5936:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 449, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "5936:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5917:54:0" + }, + "returnParameters": { + "id": 454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 496, + "src": "5995:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 452, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5995:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5994:6:0" + }, + "scope": 1377, + "src": "5893:526:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 516, + "nodeType": "Block", + "src": "6526:91:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 505, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "6537:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2533, + "src": "6537:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6537:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 512, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6604:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 511, + "name": "_isCurator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "6593:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6593:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "6537:76:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 509, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6581:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 508, + "name": "_isActiveLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6567:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6567:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 504, + "id": 515, + "nodeType": "Return", + "src": "6530:83:0" + } + ] + }, + "documentation": null, + "id": 517, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_canCurate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 498, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 517, + "src": "6443:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6443:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 500, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 517, + "src": "6461:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 499, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "6461:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6442:54:0" + }, + "returnParameters": { + "id": 504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 503, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 517, + "src": "6520:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 502, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6520:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6519:6:0" + }, + "scope": 1377, + "src": "6422:195:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "6786:25:0", + "statements": [] + }, + "documentation": null, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_hasGroupAccessToOperation", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 519, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6660:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6660:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6680:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 520, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "6680:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 523, + "mutability": "mutable", + "name": "_operation", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6718:36:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + }, + "typeName": { + "contractScope": null, + "id": 522, + "name": "ContentDirectoryOperation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3270, + "src": "6718:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6656:101:0" + }, + "returnParameters": { + "id": 527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 526, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6780:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 525, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6780:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6779:6:0" + }, + "scope": 1377, + "src": "6620:191:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 579, + "nodeType": "Block", + "src": "6932:418:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 542, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "6944:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 2657, + "src": "6944:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6944:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964206f776e657273686970", + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6966:19:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + }, + "value": "Invalid ownership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + } + ], + "id": 541, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6936:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6936:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 547, + "nodeType": "ExpressionStatement", + "src": "6936:50:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 549, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "6998:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nextChannelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2673, + "src": "6998:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", + "typeString": "function () view external returns (uint64)" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6998:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 552, + "name": "channelInstancesLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "7032:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6998:55:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4368616e6e656c20696e7374616e636573206c696d69742072656163686564", + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7055:33:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", + "typeString": "literal_string \"Channel instances limit reached\"" + }, + "value": "Channel instances limit reached" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", + "typeString": "literal_string \"Channel instances limit reached\"" + } + ], + "id": 548, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6990:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 556, + "nodeType": "ExpressionStatement", + "src": "6990:99:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 559, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7117:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7117:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 561, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "7129:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 558, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "7101:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7101:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e69656420756e6465722070726f7669646564206f776e657273686970", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7142:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", + "typeString": "literal_string \"Access denied under provided ownership\"" + }, + "value": "Access denied under provided ownership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", + "typeString": "literal_string \"Access denied under provided ownership\"" + } + ], + "id": 557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7093:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7093:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 565, + "nodeType": "ExpressionStatement", + "src": "7093:90:0" + }, + { + "assignments": [ + 567 + ], + "declarations": [ + { + "constant": false, + "id": 567, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 579, + "src": "7187:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 566, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "7187:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 572, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 570, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "7232:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 568, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "7206:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2757, + "src": "7206:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (struct ChannelOwnership memory) external returns (uint64)" + } + }, + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7206:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7187:56:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 574, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "7313:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "7324:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "id": 576, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7336:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 573, + "name": "ChannelCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "7298:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,struct ChannelOwnership memory,string memory[2] memory[] memory)" + } + }, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7298:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 578, + "nodeType": "EmitStatement", + "src": "7293:53:0" + } + ] + }, + "documentation": null, + "functionSelector": "13c6e4ed", + "id": 580, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 539, + "modifierName": { + "argumentTypes": null, + "id": 538, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "6918:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6918:13:0" + } + ], + "name": "createChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 580, + "src": "6841:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 530, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "6841:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 580, + "src": "6879:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 532, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6879:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 534, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6886:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "6879:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 535, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6879:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6837:73:0" + }, + "returnParameters": { + "id": 540, + "nodeType": "ParameterList", + "parameters": [], + "src": "6932:0:0" + }, + "scope": 1377, + "src": "6814:536:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 636, + "nodeType": "Block", + "src": "7462:510:0", + "statements": [ + { + "assignments": [ + 593 + ], + "declarations": [ + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 636, + "src": "7466:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 592, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "7466:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 598, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 596, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 582, + "src": "7525:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 594, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "7491:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "7491:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7491:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7466:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 601, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7568:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7568:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 603, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7580:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "7580:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 600, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "7552:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7552:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 607, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7616:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7616:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 609, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7628:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "7628:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 606, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "7605:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7605:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7552:94:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 614, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7680:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7680:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 616, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "7692:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 618, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "7711:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "UpdateChannelMetadata", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7711:47:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 613, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "7653:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7653:106:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7552:207:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7764:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 599, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7540:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7540:243:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 624, + "nodeType": "ExpressionStatement", + "src": "7540:243:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 626, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7866:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 627, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "7866:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686973206368616e6e656c206973206465616374697661746564", + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7884:29:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", + "typeString": "literal_string \"This channel is deactivated\"" + }, + "value": "This channel is deactivated" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", + "typeString": "literal_string \"This channel is deactivated\"" + } + ], + "id": 625, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7858:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7858:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 630, + "nodeType": "ExpressionStatement", + "src": "7858:56:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 632, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 582, + "src": "7946:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 633, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "7958:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 631, + "name": "ChannelMetadataUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "7923:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory[2] memory[] memory)" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7923:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 635, + "nodeType": "EmitStatement", + "src": "7918:50:0" + } + ] + }, + "documentation": null, + "functionSelector": "c251e585", + "id": 637, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 590, + "modifierName": { + "argumentTypes": null, + "id": 589, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "7448:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7448:13:0" + } + ], + "name": "updateChannelMetadata", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 582, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 637, + "src": "7388:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 581, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "7388:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 587, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 637, + "src": "7409:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7409:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 585, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7416:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "7409:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 586, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7409:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7384:56:0" + }, + "returnParameters": { + "id": 591, + "nodeType": "ParameterList", + "parameters": [], + "src": "7462:0:0" + }, + "scope": 1377, + "src": "7353:619:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 695, + "nodeType": "Block", + "src": "8091:496:0", + "statements": [ + { + "assignments": [ + 647 + ], + "declarations": [ + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 695, + "src": "8095:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 646, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "8095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 650, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8154:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 648, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "8120:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "8120:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8120:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8095:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 655, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8193:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8193:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "8205:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "8205:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 654, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8177:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f776e657220616363657373207265717569726564", + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8225:23:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", + "typeString": "literal_string \"Owner access required\"" + }, + "value": "Owner access required" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", + "typeString": "literal_string \"Owner access required\"" + } + ], + "id": 653, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8169:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8169:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 662, + "nodeType": "ExpressionStatement", + "src": "8169:80:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 664, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8261:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 665, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 2657, + "src": "8261:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8261:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964206f776e657273686970", + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8283:19:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + }, + "value": "Invalid ownership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + } + ], + "id": 663, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8253:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8253:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 669, + "nodeType": "ExpressionStatement", + "src": "8253:50:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8315:28:0", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 671, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8316:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 672, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2533, + "src": "8316:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8316:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 676, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8361:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8361:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 675, + "name": "_isActiveLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "8347:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8347:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8315:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f6e6c79206c6561642063616e20757064617465206f776e65727368697020746f2043757261746f7247726f7570", + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8374:48:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", + "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" + }, + "value": "Only lead can update ownership to CuratorGroup" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", + "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" + } + ], + "id": 670, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8307:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8307:116:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 682, + "nodeType": "ExpressionStatement", + "src": "8307:116:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 686, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8458:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 687, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8470:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 683, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "8427:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2810, + "src": "8427:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (uint64,struct ChannelOwnership memory) external" + } + }, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8427:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 689, + "nodeType": "ExpressionStatement", + "src": "8427:54:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 691, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8560:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 692, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8572:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 690, + "name": "ChannelOwnershipUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 82, + "src": "8536:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (uint64,struct ChannelOwnership memory)" + } + }, + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8536:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 694, + "nodeType": "EmitStatement", + "src": "8531:52:0" + } + ] + }, + "documentation": null, + "functionSelector": "eb1762d7", + "id": 696, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 644, + "modifierName": { + "argumentTypes": null, + "id": 643, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "8077:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8077:13:0" + } + ], + "name": "updateChannelOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 639, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 696, + "src": "8011:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 638, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 641, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 696, + "src": "8032:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 640, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "8032:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8007:62:0" + }, + "returnParameters": { + "id": 645, + "nodeType": "ParameterList", + "parameters": [], + "src": "8091:0:0" + }, + "scope": 1377, + "src": "7975:612:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 741, + "nodeType": "Block", + "src": "8744:502:0", + "statements": [ + { + "assignments": [ + 706 + ], + "declarations": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 741, + "src": "8748:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 705, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "8748:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 711, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 709, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8807:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 707, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "8773:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "8773:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8773:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8748:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 714, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8930:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8930:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 716, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "8942:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "8942:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 713, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "8919:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8919:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8962:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8911:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8911:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 721, + "nodeType": "ExpressionStatement", + "src": "8911:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 723, + "name": "_limit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "8990:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 724, + "name": "videosPerChannelMaxLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "9000:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "8990:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766964656f735065724368616e6e656c4d61784c696d6974", + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9026:57:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", + "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" + }, + "value": "The limit cannot exceed global videosPerChannelMaxLimit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", + "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" + } + ], + "id": 722, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8982:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8982:102:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 728, + "nodeType": "ExpressionStatement", + "src": "8982:102:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 732, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "9124:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 733, + "name": "_limit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "9136:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 729, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9088:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setChannelVideoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2854, + "src": "9088:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint32_$returns$__$", + "typeString": "function (uint64,uint32) external" + } + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9088:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 735, + "nodeType": "ExpressionStatement", + "src": "9088:55:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 737, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "9223:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "_limit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "9235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 736, + "name": "ChannelVideoLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "9198:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", + "typeString": "function (uint64,uint64)" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9198:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 740, + "nodeType": "EmitStatement", + "src": "9193:49:0" + } + ] + }, + "documentation": null, + "functionSelector": "0333f536", + "id": 742, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 703, + "modifierName": { + "argumentTypes": null, + "id": 702, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "8730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8730:13:0" + } + ], + "name": "updateChannelVideoLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 742, + "src": "8627:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 697, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8627:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 700, + "mutability": "mutable", + "name": "_limit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 742, + "src": "8648:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 699, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8648:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8623:99:0" + }, + "returnParameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [], + "src": "8744:0:0" + }, + "scope": 1377, + "src": "8590:656:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "9350:397:0", + "statements": [ + { + "assignments": [ + 752 + ], + "declarations": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 797, + "src": "9354:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 751, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "9354:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 757, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 755, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "9413:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 753, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9379:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "9379:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9379:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9354:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 760, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9447:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9447:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 762, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "9459:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "9459:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 759, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "9436:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9436:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9479:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9428:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9428:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 767, + "nodeType": "ExpressionStatement", + "src": "9428:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 769, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "9507:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "9507:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4368616e6e656c20616c7265616479206465616374697661746564", + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9525:29:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", + "typeString": "literal_string \"Channel already deactivated\"" + }, + "value": "Channel already deactivated" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", + "typeString": "literal_string \"Channel already deactivated\"" + } + ], + "id": 768, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9499:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 773, + "nodeType": "ExpressionStatement", + "src": "9499:56:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 777, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "9573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9567:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 775, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9567:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9567:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9567:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9592:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9567:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9595:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + }, + "value": "The reason should be at least 2 characters long" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + } + ], + "id": 774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9559:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9559:86:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 784, + "nodeType": "ExpressionStatement", + "src": "9559:86:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 788, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "9677:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9689:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 785, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9649:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 2832, + "src": "9649:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9649:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 791, + "nodeType": "ExpressionStatement", + "src": "9649:46:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 793, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "9723:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 794, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "9735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 792, + "name": "ChannelDeactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "9704:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory)" + } + }, + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9704:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 796, + "nodeType": "EmitStatement", + "src": "9699:44:0" + } + ] + }, + "documentation": null, + "functionSelector": "44ff3e81", + "id": 798, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 749, + "modifierName": { + "argumentTypes": null, + "id": 748, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "9336:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9336:13:0" + } + ], + "name": "deactivateChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 744, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 798, + "src": "9283:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 743, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9283:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 798, + "src": "9304:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9304:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9279:49:0" + }, + "returnParameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "9350:0:0" + }, + "scope": 1377, + "src": "9252:495:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "9824:382:0", + "statements": [ + { + "assignments": [ + 806 + ], + "declarations": [ + { + "constant": false, + "id": 806, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 840, + "src": "9828:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 805, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "9828:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 811, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 809, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "9887:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 807, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9853:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "9853:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9853:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9828:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 814, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10010:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10010:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 816, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "10022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 817, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "10022:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 813, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "9999:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9999:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10042:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 812, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9991:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9991:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "9991:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10070:17:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 823, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "10071:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "10071:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4368616e6e656c20616c726561647920616374697665", + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10089:24:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", + "typeString": "literal_string \"Channel already active\"" + }, + "value": "Channel already active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", + "typeString": "literal_string \"Channel already active\"" + } + ], + "id": 822, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10062:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10062:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 828, + "nodeType": "ExpressionStatement", + "src": "10062:52:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "10146:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10158:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 829, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "10118:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 2832, + "src": "10118:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10118:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "ExpressionStatement", + "src": "10118:45:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 837, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "10191:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 836, + "name": "ChannelReactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "10172:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10172:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 839, + "nodeType": "EmitStatement", + "src": "10167:35:0" + } + ] + }, + "documentation": null, + "functionSelector": "75ef1f1e", + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 803, + "modifierName": { + "argumentTypes": null, + "id": 802, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "9810:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9810:13:0" + } + ], + "name": "activateChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 800, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 841, + "src": "9782:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 799, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9782:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9778:24:0" + }, + "returnParameters": { + "id": 804, + "nodeType": "ParameterList", + "parameters": [], + "src": "9824:0:0" + }, + "scope": 1377, + "src": "9753:453:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 891, + "nodeType": "Block", + "src": "10328:406:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 855, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10380:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 853, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "10340:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 1530, + "src": "10340:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", + "typeString": "function (uint64) view external returns (bool)" + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10340:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10393:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + }, + "value": "Curator id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + } + ], + "id": 852, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10332:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10332:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 859, + "nodeType": "ExpressionStatement", + "src": "10332:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 863, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10465:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 861, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10433:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "groupExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 2994, + "src": "10433:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) view external returns (bool)" + } + }, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10433:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10476:25:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + }, + "value": "Group id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + } + ], + "id": 860, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10425:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10425:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 867, + "nodeType": "ExpressionStatement", + "src": "10425:77:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10551:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 872, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10563:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 869, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10514:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorInGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2904, + "src": "10514:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint64,uint16) view external returns (bool)" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10514:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10576:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "10514:67:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f7220697320616c726561647920696e207468652067726f7570", + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10583:33:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", + "typeString": "literal_string \"Curator is already in the group\"" + }, + "value": "Curator is already in the group" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", + "typeString": "literal_string \"Curator is already in the group\"" + } + ], + "id": 868, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10506:111:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 878, + "nodeType": "ExpressionStatement", + "src": "10506:111:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 882, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10659:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 883, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10671:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 879, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10621:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addCuratorToGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3040, + "src": "10621:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16) external" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10621:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "ExpressionStatement", + "src": "10621:59:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 887, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10709:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 888, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10721:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 886, + "name": "CuratorAddedToGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "10689:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16)" + } + }, + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10689:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 890, + "nodeType": "EmitStatement", + "src": "10684:46:0" + } + ] + }, + "documentation": null, + "functionSelector": "d8b457fc", + "id": 892, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 848, + "modifierName": { + "argumentTypes": null, + "id": 847, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "10305:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10305:13:0" + }, + { + "arguments": null, + "id": 850, + "modifierName": { + "argumentTypes": null, + "id": 849, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "10319:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10319:8:0" + } + ], + "name": "addCuratorToGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 846, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 843, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 892, + "src": "10258:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 842, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10258:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 845, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 892, + "src": "10279:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 844, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "10279:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10254:43:0" + }, + "returnParameters": { + "id": 851, + "nodeType": "ParameterList", + "parameters": [], + "src": "10328:0:0" + }, + "scope": 1377, + "src": "10228:506:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 934, + "nodeType": "Block", + "src": "10842:423:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 906, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "10984:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 904, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10952:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "groupExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 2994, + "src": "10952:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) view external returns (bool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10952:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10995:25:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + }, + "value": "Group id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + } + ], + "id": 903, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10944:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10944:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 910, + "nodeType": "ExpressionStatement", + "src": "10944:77:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 914, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "11070:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 915, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "11082:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 912, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11033:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorInGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2904, + "src": "11033:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint64,uint16) view external returns (bool)" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11033:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11095:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "11033:66:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f7220697320616c7265616479206e6f7420696e207468652067726f7570", + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11101:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", + "typeString": "literal_string \"Curator is already not in the group\"" + }, + "value": "Curator is already not in the group" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", + "typeString": "literal_string \"Curator is already not in the group\"" + } + ], + "id": 911, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11025:114:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 921, + "nodeType": "ExpressionStatement", + "src": "11025:114:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 925, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "11186:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 926, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "11198:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 922, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11143:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeCuratorFromGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3066, + "src": "11143:42:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16) external" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11143:64:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "11143:64:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 930, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "11240:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 931, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "11252:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 929, + "name": "CuratorRemovedFromGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "11216:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16)" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11216:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 933, + "nodeType": "EmitStatement", + "src": "11211:50:0" + } + ] + }, + "documentation": null, + "functionSelector": "be16b353", + "id": 935, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 899, + "modifierName": { + "argumentTypes": null, + "id": 898, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "10819:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10819:13:0" + }, + { + "arguments": null, + "id": 901, + "modifierName": { + "argumentTypes": null, + "id": 900, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "10833:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10833:8:0" + } + ], + "name": "removeCuratorFromGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 894, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 935, + "src": "10772:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 893, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10772:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 896, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 935, + "src": "10793:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 895, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "10793:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10768:43:0" + }, + "returnParameters": { + "id": 902, + "nodeType": "ParameterList", + "parameters": [], + "src": "10842:0:0" + }, + "scope": 1377, + "src": "10737:528:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 962, + "nodeType": "Block", + "src": "11358:388:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 947, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "11410:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 945, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "11370:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 1530, + "src": "11370:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", + "typeString": "function (uint64) view external returns (bool)" + } + }, + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11370:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11423:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + }, + "value": "Curator id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + } + ], + "id": 944, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11362:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 951, + "nodeType": "ExpressionStatement", + "src": "11362:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 955, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "11502:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 952, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11455:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeCuratorFromAllGroups", + "nodeType": "MemberAccess", + "referencedDeclaration": 3100, + "src": "11455:46:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64) external" + } + }, + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11455:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 957, + "nodeType": "ExpressionStatement", + "src": "11455:58:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 959, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "11550:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 958, + "name": "CuratorRemovedFromAllGroups", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "11522:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11522:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 961, + "nodeType": "EmitStatement", + "src": "11517:44:0" + } + ] + }, + "documentation": null, + "functionSelector": "96cbd61b", + "id": 963, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 940, + "modifierName": { + "argumentTypes": null, + "id": 939, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "11335:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11335:13:0" + }, + { + "arguments": null, + "id": 942, + "modifierName": { + "argumentTypes": null, + "id": 941, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "11349:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11349:8:0" + } + ], + "name": "removeCuratorFromAllGroups", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 963, + "src": "11307:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 936, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "11307:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11303:24:0" + }, + "returnParameters": { + "id": 943, + "nodeType": "ParameterList", + "parameters": [], + "src": "11358:0:0" + }, + "scope": 1377, + "src": "11268:478:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1008, + "nodeType": "Block", + "src": "11829:351:0", + "statements": [ + { + "assignments": [ + 973 + ], + "declarations": [ + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "group", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1008, + "src": "11833:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group" + }, + "typeName": { + "contractScope": null, + "id": 972, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "11833:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 978, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 976, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11891:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 974, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11854:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3014, + "src": "11854:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_struct$_Group_$2887_memory_ptr_$", + "typeString": "function (uint16) view external returns (struct Group memory)" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11854:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11833:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 980, + "name": "group", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "11912:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group memory" + } + }, + "id": 981, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2886, + "src": "11912:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11935:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11912:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f757027732063757261746f727320636f756e74206e6565647320746f2062652030", + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11938:38:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", + "typeString": "literal_string \"Group's curators count needs to be 0\"" + }, + "value": "Group's curators count needs to be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", + "typeString": "literal_string \"Group's curators count needs to be 0\"" + } + ], + "id": 979, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11904:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11904:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 986, + "nodeType": "ExpressionStatement", + "src": "11904:73:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 992, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "12038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "CuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12038:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12032:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 990, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "12032:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12032:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 995, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "12070:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 988, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "11993:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "channelCountByOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2670, + "src": "11993:38:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$", + "typeString": "function (uint8,uint256) view external returns (uint32)" + } + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11993:86:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12083:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11993:91:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f75702773206368616e6e656c7320636f756e74206e6565647320746f2062652030", + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12089:38:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", + "typeString": "literal_string \"Group's channels count needs to be 0\"" + }, + "value": "Group's channels count needs to be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", + "typeString": "literal_string \"Group's channels count needs to be 0\"" + } + ], + "id": 987, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11981:150:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1001, + "nodeType": "ExpressionStatement", + "src": "11981:150:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1005, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "12167:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 1002, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "12135:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3113, + "src": "12135:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$", + "typeString": "function (uint16) external" + } + }, + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12135:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1007, + "nodeType": "ExpressionStatement", + "src": "12135:41:0" + } + ] + }, + "documentation": null, + "functionSelector": "0d00a78f", + "id": 1009, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 968, + "modifierName": { + "argumentTypes": null, + "id": 967, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "11806:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11806:13:0" + }, + { + "arguments": null, + "id": 970, + "modifierName": { + "argumentTypes": null, + "id": 969, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "11820:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11820:8:0" + } + ], + "name": "removeCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 966, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1009, + "src": "11780:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 964, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "11780:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11776:22:0" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [], + "src": "11829:0:0" + }, + "scope": 1377, + "src": "11749:431:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1086, + "nodeType": "Block", + "src": "12289:634:0", + "statements": [ + { + "assignments": [ + 1022 + ], + "declarations": [ + { + "constant": false, + "id": 1022, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1086, + "src": "12293:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1021, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "12293:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1027, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1025, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12352:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1023, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "12318:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "12318:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12318:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12293:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1030, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "12395:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12395:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1032, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12407:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "12407:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1029, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "12379:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12379:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1036, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "12459:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12459:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1038, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "12471:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1040, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "12490:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 1041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "AddVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12490:34:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 1035, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "12432:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12432:93:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12379:146:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12530:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12367:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12367:182:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "12367:182:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1048, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12561:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "12561:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746861742069736e277420616374697665", + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12579:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", + "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" + }, + "value": "Cannot add video to a channel that isn't active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", + "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" + } + ], + "id": 1047, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12553:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12553:76:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1052, + "nodeType": "ExpressionStatement", + "src": "12553:76:0" + }, + { + "assignments": [ + 1054 + ], + "declarations": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "channelVideoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1086, + "src": "12633:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1053, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12633:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1063, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1055, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "12660:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12682:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12660:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 1061, + "name": "videosPerChannelDefaultLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "12707:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12660:75:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1059, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12686:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "12686:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12633:102:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1067, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12782:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1065, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "12747:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "videoCountByChannelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3139, + "src": "12747:34:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_uint64_$", + "typeString": "function (uint64) view external returns (uint64)" + } + }, + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12747:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 1069, + "name": "channelVideoLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "12796:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12747:66:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1064, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12739:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12739:75:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1072, + "nodeType": "ExpressionStatement", + "src": "12739:75:0" + }, + { + "assignments": [ + 1074 + ], + "declarations": [ + { + "constant": false, + "id": 1074, + "mutability": "mutable", + "name": "videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1086, + "src": "12818:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1073, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12818:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1079, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12857:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1075, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "12835:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3195, + "src": "12835:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$_t_uint64_$", + "typeString": "function (uint64) external returns (uint64)" + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12835:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12818:50:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1081, + "name": "videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1074, + "src": "12888:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1082, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12897:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1083, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "12909:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 1080, + "name": "VideoAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "12877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,uint64,string memory[2] memory[] memory)" + } + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12877:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1085, + "nodeType": "EmitStatement", + "src": "12872:47:0" + } + ] + }, + "documentation": null, + "functionSelector": "4d70d709", + "id": 1087, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1019, + "modifierName": { + "argumentTypes": null, + "id": 1018, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "12275:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12275:13:0" + } + ], + "name": "addVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1011, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1087, + "src": "12215:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1010, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12215:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1016, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1087, + "src": "12236:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 1012, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12236:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1014, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12243:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12236:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 1015, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12236:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12211:56:0" + }, + "returnParameters": { + "id": 1020, + "nodeType": "ParameterList", + "parameters": [], + "src": "12289:0:0" + }, + "scope": 1377, + "src": "12194:729:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1151, + "nodeType": "Block", + "src": "13030:571:0", + "statements": [ + { + "assignments": [ + 1100 + ], + "declarations": [ + { + "constant": false, + "id": 1100, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1151, + "src": "13034:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1099, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "13034:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1105, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1103, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13085:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1101, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "13055:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "13055:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13055:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13034:60:0" + }, + { + "assignments": [ + 1107 + ], + "declarations": [ + { + "constant": false, + "id": 1107, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1151, + "src": "13098:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1106, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "13098:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1113, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1110, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "13157:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "13157:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "13123:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "13123:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13123:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13098:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13205:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13205:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1118, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13217:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13217:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1115, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "13189:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13189:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1122, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13269:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13269:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1124, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13281:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13281:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1126, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "13300:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "UpdateVideoMetadata", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13300:45:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 1121, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "13242:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13242:104:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13189:157:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1131, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13364:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13364:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1133, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13376:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1130, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "13353:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13353:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13189:205:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13399:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1114, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13177:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13177:241:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1139, + "nodeType": "ExpressionStatement", + "src": "13177:241:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1141, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13467:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1142, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "13467:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616e6e6f742075706461746520766964656f206d65746164617461207768656e20746865206368616e6e656c206973206e6f7420616374697665", + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13485:61:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", + "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" + }, + "value": "Cannot update video metadata when the channel is not active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", + "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" + } + ], + "id": 1140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13459:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13459:88:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1145, + "nodeType": "ExpressionStatement", + "src": "13459:88:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1147, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13577:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1148, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1094, + "src": "13587:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 1146, + "name": "VideoMetadataUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "13556:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory[2] memory[] memory)" + } + }, + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13556:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1150, + "nodeType": "EmitStatement", + "src": "13551:46:0" + } + ] + }, + "documentation": null, + "functionSelector": "b94c9c9d", + "id": 1152, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1097, + "modifierName": { + "argumentTypes": null, + "id": 1096, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "13016:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13016:13:0" + } + ], + "name": "updateVideoMetadata", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1152, + "src": "12958:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1088, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12958:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1094, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1152, + "src": "12977:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 1090, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12977:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1092, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12984:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12977:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 1093, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12977:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12954:54:0" + }, + "returnParameters": { + "id": 1098, + "nodeType": "ParameterList", + "parameters": [], + "src": "13030:0:0" + }, + "scope": 1377, + "src": "12926:675:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1203, + "nodeType": "Block", + "src": "13668:405:0", + "statements": [ + { + "assignments": [ + 1160 + ], + "declarations": [ + { + "constant": false, + "id": 1160, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1203, + "src": "13672:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1159, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "13672:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1165, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1163, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "13723:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1161, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "13693:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "13693:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13693:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13672:60:0" + }, + { + "assignments": [ + 1167 + ], + "declarations": [ + { + "constant": false, + "id": 1167, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1203, + "src": "13736:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1166, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "13736:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1173, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1170, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1160, + "src": "13795:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "13795:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1168, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "13761:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "13761:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13761:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13736:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13843:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13843:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1178, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1167, + "src": "13855:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13855:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1175, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "13827:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13827:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1182, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13907:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13907:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1184, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1167, + "src": "13919:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13919:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1186, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "13938:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RemoveVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13938:37:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 1181, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "13880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 1188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13880:96:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13827:149:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13981:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1174, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13815:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13815:185:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "13815:185:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1196, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "14029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1193, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14004:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3262, + "src": "14004:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64) external" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14004:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1198, + "nodeType": "ExpressionStatement", + "src": "14004:34:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1200, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "14060:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1199, + "name": "VideoRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "14047:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14047:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1202, + "nodeType": "EmitStatement", + "src": "14042:27:0" + } + ] + }, + "documentation": null, + "functionSelector": "9a055bbf", + "id": 1204, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1157, + "modifierName": { + "argumentTypes": null, + "id": 1156, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "13654:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13654:13:0" + } + ], + "name": "removeVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1154, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1204, + "src": "13628:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1153, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13628:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13624:22:0" + }, + "returnParameters": { + "id": 1158, + "nodeType": "ParameterList", + "parameters": [], + "src": "13668:0:0" + }, + "scope": 1377, + "src": "13604:469:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1260, + "nodeType": "Block", + "src": "14174:394:0", + "statements": [ + { + "assignments": [ + 1214 + ], + "declarations": [ + { + "constant": false, + "id": 1214, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1260, + "src": "14178:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1213, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "14178:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1219, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1217, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "14229:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1215, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14199:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "14199:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14199:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14178:60:0" + }, + { + "assignments": [ + 1221 + ], + "declarations": [ + { + "constant": false, + "id": 1221, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1260, + "src": "14242:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1220, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "14242:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1227, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1224, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "14301:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "14301:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1222, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "14267:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "14267:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14267:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14242:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1230, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14340:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14340:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1232, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "14352:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "14352:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1229, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "14329:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14329:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14372:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1228, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14321:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14321:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1237, + "nodeType": "ExpressionStatement", + "src": "14321:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1241, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "14406:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14400:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1239, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14400:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14400:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14400:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14424:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14400:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14427:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + }, + "value": "The reason should be at least 2 characters long" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + } + ], + "id": 1238, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14392:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14392:85:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "14392:85:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1252, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "14506:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1249, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14481:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3262, + "src": "14481:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64) external" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14481:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1254, + "nodeType": "ExpressionStatement", + "src": "14481:34:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1256, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "14546:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1257, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "14556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1255, + "name": "VideoRemovedByCurator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "14524:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory)" + } + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14524:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1259, + "nodeType": "EmitStatement", + "src": "14519:45:0" + } + ] + }, + "documentation": null, + "functionSelector": "8edaea6e", + "id": 1261, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1211, + "modifierName": { + "argumentTypes": null, + "id": 1210, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "14160:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "14160:13:0" + } + ], + "name": "removeVideoAsCurator", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1206, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1261, + "src": "14109:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1205, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "14109:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1261, + "src": "14128:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1207, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14128:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14105:47:0" + }, + "returnParameters": { + "id": 1212, + "nodeType": "ParameterList", + "parameters": [], + "src": "14174:0:0" + }, + "scope": 1377, + "src": "14076:492:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1324, + "nodeType": "Block", + "src": "14668:454:0", + "statements": [ + { + "assignments": [ + 1271 + ], + "declarations": [ + { + "constant": false, + "id": 1271, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1324, + "src": "14672:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1270, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "14672:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1276, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1274, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "14723:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1272, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14693:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "14693:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14693:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14672:60:0" + }, + { + "assignments": [ + 1278 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1324, + "src": "14736:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1277, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "14736:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1284, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1281, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1271, + "src": "14795:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "14795:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1279, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "14761:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "14761:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14761:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14736:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1287, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14834:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14834:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1289, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "14846:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "14846:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1286, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "14823:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14823:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14866:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1285, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14815:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14815:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1294, + "nodeType": "ExpressionStatement", + "src": "14815:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1296, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1271, + "src": "14894:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "14894:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "566964656f20616c7265616479206465616374697661746564", + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14910:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", + "typeString": "literal_string \"Video already deactivated\"" + }, + "value": "Video already deactivated" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", + "typeString": "literal_string \"Video already deactivated\"" + } + ], + "id": 1295, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14886:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14886:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1300, + "nodeType": "ExpressionStatement", + "src": "14886:52:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1304, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "14956:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14950:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14950:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14950:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14950:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14975:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14950:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14978:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + }, + "value": "The reason should be at least 2 characters long" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + } + ], + "id": 1301, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14942:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14942:86:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1311, + "nodeType": "ExpressionStatement", + "src": "14942:86:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1315, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "15058:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15068:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 1312, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "15032:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 3239, + "src": "15032:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15032:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1318, + "nodeType": "ExpressionStatement", + "src": "15032:42:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1320, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "15100:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1321, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "15110:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1319, + "name": "VideoDeactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "15083:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory)" + } + }, + "id": 1322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15083:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1323, + "nodeType": "EmitStatement", + "src": "15078:40:0" + } + ] + }, + "documentation": null, + "functionSelector": "a51a83f2", + "id": 1325, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1268, + "modifierName": { + "argumentTypes": null, + "id": 1267, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "14654:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "14654:13:0" + } + ], + "name": "deactivateVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1325, + "src": "14603:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1262, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "14603:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1265, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1325, + "src": "14622:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1264, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14622:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14599:47:0" + }, + "returnParameters": { + "id": 1269, + "nodeType": "ParameterList", + "parameters": [], + "src": "14668:0:0" + }, + "scope": 1377, + "src": "14574:548:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1375, + "nodeType": "Block", + "src": "15195:350:0", + "statements": [ + { + "assignments": [ + 1333 + ], + "declarations": [ + { + "constant": false, + "id": 1333, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1375, + "src": "15199:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1332, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "15199:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1338, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1336, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "15250:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1334, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "15220:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "15220:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15220:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15199:60:0" + }, + { + "assignments": [ + 1340 + ], + "declarations": [ + { + "constant": false, + "id": 1340, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1375, + "src": "15263:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1339, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "15263:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1346, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1343, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1333, + "src": "15322:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "15322:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1341, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "15288:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "15288:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15288:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15263:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1349, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15361:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15361:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1351, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1340, + "src": "15373:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "15373:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1348, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "15350:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15350:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15393:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1347, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15342:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "15342:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15421:15:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1358, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1333, + "src": "15422:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "15422:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "566964656f20616c726561647920616374697665", + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15438:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", + "typeString": "literal_string \"Video already active\"" + }, + "value": "Video already active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", + "typeString": "literal_string \"Video already active\"" + } + ], + "id": 1357, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15413:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15413:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1363, + "nodeType": "ExpressionStatement", + "src": "15413:48:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1367, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "15491:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15501:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 1364, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "15465:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 3239, + "src": "15465:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15465:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1370, + "nodeType": "ExpressionStatement", + "src": "15465:41:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1372, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "15532:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1371, + "name": "VideoReactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "15515:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 1373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15515:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1374, + "nodeType": "EmitStatement", + "src": "15510:31:0" + } + ] + }, + "documentation": null, + "functionSelector": "11ff105e", + "id": 1376, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1330, + "modifierName": { + "argumentTypes": null, + "id": 1329, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "15181:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15181:13:0" + } + ], + "name": "activateVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1327, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1376, + "src": "15155:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1326, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "15155:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15151:22:0" + }, + "returnParameters": { + "id": 1331, + "nodeType": "ParameterList", + "parameters": [], + "src": "15195:0:0" + }, + "scope": 1377, + "src": "15128:417:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1378, + "src": "485:15062:0" + } + ], + "src": "0:15548:0" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol", + "exportedSymbols": { + "ContentDirectory": [ + 1377 + ] + }, + "id": 1378, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:0" + }, + { + "id": 2, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:0" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", + "file": "./storage/ChannelStorage.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 2876, + "src": "84:38:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", + "file": "./storage/CuratorGroupStorage.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3115, + "src": "123:43:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", + "file": "./storage/VideoStorage.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3264, + "src": "167:36:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", + "file": "./bridge/MembershipBridge.sol", + "id": 6, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 1614, + "src": "205:39:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", + "file": "./bridge/ContentWorkingGroupBridge.sol", + "id": 7, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 1546, + "src": "245:48:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "file": "./bridge/auth.sol", + "id": 8, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 1678, + "src": "294:27:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", + "file": "../node_modules/@openzeppelin/contracts/utils/Pausable.sol", + "id": 9, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 4144, + "src": "323:68:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 10, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3403, + "src": "392:68:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/types.sol", + "file": "./types.sol", + "id": 11, + "nodeType": "ImportDirective", + "scope": 1378, + "sourceUnit": 3271, + "src": "462:21:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 12, + "name": "RuntimeManageable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1677, + "src": "514:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeManageable_$1677", + "typeString": "contract RuntimeManageable" + } + }, + "id": 13, + "nodeType": "InheritanceSpecifier", + "src": "514:17:0" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 14, + "name": "Pausable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4143, + "src": "533:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Pausable_$4143", + "typeString": "contract Pausable" + } + }, + "id": 15, + "nodeType": "InheritanceSpecifier", + "src": "533:8:0" + } + ], + "contractDependencies": [ + 1677, + 3293, + 4143 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1377, + "linearizedBaseContracts": [ + 1377, + 4143, + 3293, + 1677 + ], + "name": "ContentDirectory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "channelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "573:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + }, + "typeName": { + "contractScope": null, + "id": 16, + "name": "ChannelStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2875, + "src": "573:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "videoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "608:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + }, + "typeName": { + "contractScope": null, + "id": 18, + "name": "VideoStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3263, + "src": "608:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "curatorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "639:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + }, + "typeName": { + "contractScope": null, + "id": 20, + "name": "CuratorGroupStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3114, + "src": "639:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 23, + "mutability": "mutable", + "name": "membershipBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "704:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + }, + "typeName": { + "contractScope": null, + "id": 22, + "name": "MembershipBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1613, + "src": "704:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "contentWorkingGroupBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "740:51:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + }, + "typeName": { + "contractScope": null, + "id": 24, + "name": "ContentWorkingGroupBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1545, + "src": "740:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 28, + "mutability": "mutable", + "name": "channelInstancesLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "927:33:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 26, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "927:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "3130", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:2:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "mutability": "mutable", + "name": "videosPerChannelDefaultLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "966:39:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 29, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "966:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "35", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1004:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34, + "mutability": "mutable", + "name": "videosPerChannelMaxLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1377, + "src": "1011:38:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 32, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31303030", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1045:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 38, + "name": "ChannelInstancesLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 37, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 36, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 38, + "src": "1088:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 35, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1088:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1087:18:0" + }, + "src": "1053:53:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 42, + "name": "VideosPerChannelDefaultLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 41, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 40, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 42, + "src": "1150:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 39, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1150:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1149:18:0" + }, + "src": "1108:60:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 46, + "name": "VideosPerChannelMaxLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 44, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 46, + "src": "1208:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 43, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1208:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1207:18:0" + }, + "src": "1170:56:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 56, + "name": "Migrated", + "nodeType": "EventDefinition", + "parameters": { + "id": 55, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 48, + "indexed": false, + "mutability": "mutable", + "name": "_logic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1244:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 47, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1244:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 50, + "indexed": false, + "mutability": "mutable", + "name": "_videoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1260:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 49, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1260:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 52, + "indexed": false, + "mutability": "mutable", + "name": "_channelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1283:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 51, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 54, + "indexed": false, + "mutability": "mutable", + "name": "_curatorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 56, + "src": "1308:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 53, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1308:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1243:94:0" + }, + "src": "1229:109:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 67, + "name": "ChannelCreated", + "nodeType": "EventDefinition", + "parameters": { + "id": 66, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 58, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1375:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 57, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1375:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 60, + "indexed": false, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1387:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 59, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1387:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 65, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 67, + "src": "1416:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 61, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1416:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 63, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1423:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1416:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 64, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1416:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1374:64:0" + }, + "src": "1354:85:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 76, + "name": "ChannelMetadataUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 69, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 76, + "src": "1470:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 68, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1470:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 74, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 76, + "src": "1482:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 70, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 72, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 71, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1489:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1482:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 73, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1482:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1469:35:0" + }, + "src": "1441:64:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 82, + "name": "ChannelOwnershipUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 81, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 78, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 82, + "src": "1537:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 77, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1537:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 80, + "indexed": false, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 82, + "src": "1549:27:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 79, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "1549:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1536:41:0" + }, + "src": "1507:71:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 88, + "name": "ChannelVideoLimitUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 87, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 84, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 88, + "src": "1611:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 83, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1611:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 86, + "indexed": false, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 88, + "src": "1623:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 85, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1623:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1610:30:0" + }, + "src": "1580:61:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 94, + "name": "ChannelDeactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 93, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 90, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 94, + "src": "1668:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 89, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1668:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 92, + "indexed": false, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 94, + "src": "1680:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 91, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1680:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1667:28:0" + }, + "src": "1643:53:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 98, + "name": "ChannelReactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 97, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 96, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 98, + "src": "1723:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 95, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1723:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1722:12:0" + }, + "src": "1698:37:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 104, + "name": "CuratorAddedToGroup", + "nodeType": "EventDefinition", + "parameters": { + "id": 103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 100, + "indexed": false, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 104, + "src": "1782:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 99, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1782:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 102, + "indexed": false, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 104, + "src": "1801:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 101, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1801:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1781:36:0" + }, + "src": "1756:62:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 110, + "name": "CuratorRemovedFromGroup", + "nodeType": "EventDefinition", + "parameters": { + "id": 109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 106, + "indexed": false, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 110, + "src": "1850:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 105, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1850:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 108, + "indexed": false, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 110, + "src": "1869:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 107, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1869:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1849:36:0" + }, + "src": "1820:66:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 114, + "name": "CuratorRemovedFromAllGroups", + "nodeType": "EventDefinition", + "parameters": { + "id": 113, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 112, + "indexed": false, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 114, + "src": "1922:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 111, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1922:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1921:19:0" + }, + "src": "1888:53:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 125, + "name": "VideoAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 124, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 116, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1971:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 115, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1971:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 118, + "indexed": false, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "1983:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 117, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1983:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 123, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 125, + "src": "2002:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 119, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2002:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 121, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2009:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "2002:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 122, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2002:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:54:0" + }, + "src": "1954:71:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 134, + "name": "VideoMetadataUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 127, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "2054:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 126, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2054:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "indexed": false, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 134, + "src": "2066:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 128, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2066:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 130, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2073:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "2066:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 131, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2066:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2053:35:0" + }, + "src": "2027:62:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 138, + "name": "VideoRemoved", + "nodeType": "EventDefinition", + "parameters": { + "id": 137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 138, + "src": "2110:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 135, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2110:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2109:12:0" + }, + "src": "2091:31:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 144, + "name": "VideoRemovedByCurator", + "nodeType": "EventDefinition", + "parameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 140, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 144, + "src": "2152:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 139, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2152:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 142, + "indexed": false, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 144, + "src": "2164:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 141, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2164:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2151:28:0" + }, + "src": "2124:56:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 150, + "name": "VideoDeactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 146, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 150, + "src": "2205:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 145, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2205:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 148, + "indexed": false, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 150, + "src": "2217:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 147, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2217:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2204:28:0" + }, + "src": "2182:51:0" + }, + { + "anonymous": false, + "documentation": null, + "id": 154, + "name": "VideoReactivated", + "nodeType": "EventDefinition", + "parameters": { + "id": 153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 152, + "indexed": false, + "mutability": "mutable", + "name": "_id", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 154, + "src": "2258:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 151, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2258:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2257:12:0" + }, + "src": "2235:35:0" + }, + { + "body": { + "id": 166, + "nodeType": "Block", + "src": "2373:63:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 163, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 156, + "src": "2423:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 161, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "2384:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isActiveLead", + "nodeType": "MemberAccess", + "referencedDeclaration": 1544, + "src": "2384:38:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2384:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 160, + "id": 165, + "nodeType": "Return", + "src": "2377:55:0" + } + ] + }, + "documentation": null, + "id": 167, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isActiveLead", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 156, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 167, + "src": "2326:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2326:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2325:18:0" + }, + "returnParameters": { + "id": 160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 159, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 167, + "src": "2367:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 158, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2367:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2366:6:0" + }, + "scope": 1377, + "src": "2302:134:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 180, + "nodeType": "Block", + "src": "2507:255:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 176, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 169, + "src": "2746:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 177, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2756:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "argumentTypes": null, + "id": 174, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "2710:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isCurator", + "nodeType": "MemberAccess", + "referencedDeclaration": 1513, + "src": "2710:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", + "typeString": "function (address,uint64) view external returns (bool)" + } + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2710:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 173, + "id": 179, + "nodeType": "Return", + "src": "2703:55:0" + } + ] + }, + "documentation": null, + "id": 181, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isCurator", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 169, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 181, + "src": "2460:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2460:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2459:18:0" + }, + "returnParameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 181, + "src": "2501:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 171, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2501:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2500:6:0" + }, + "scope": 1377, + "src": "2439:323:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 192, + "nodeType": "Block", + "src": "2785:79:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 185, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "2811:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2811:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 184, + "name": "_isActiveLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2797:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2797:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "416374697665206c6561642061636365737320726571756972656421", + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2824:30:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", + "typeString": "literal_string \"Active lead access required!\"" + }, + "value": "Active lead access required!" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", + "typeString": "literal_string \"Active lead access required!\"" + } + ], + "id": 183, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2789:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2789:66:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 190, + "nodeType": "ExpressionStatement", + "src": "2789:66:0" + }, + { + "id": 191, + "nodeType": "PlaceholderStatement", + "src": "2859:1:0" + } + ] + }, + "documentation": null, + "id": 193, + "name": "onlyLead", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 182, + "nodeType": "ParameterList", + "parameters": [], + "src": "2782:2:0" + }, + "src": "2765:99:0", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 208, + "nodeType": "Block", + "src": "2999:89:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 200, + "name": "channelInstancesLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "3003:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 201, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "3027:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "3003:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 203, + "nodeType": "ExpressionStatement", + "src": "3003:33:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 205, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 195, + "src": "3074:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 204, + "name": "ChannelInstancesLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "3045:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3045:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 207, + "nodeType": "EmitStatement", + "src": "3040:44:0" + } + ] + }, + "documentation": null, + "functionSelector": "72c95f83", + "id": 209, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 198, + "modifierName": { + "argumentTypes": null, + "id": 197, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "2987:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2987:11:0" + } + ], + "name": "setChannelInstancesLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 196, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 195, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 209, + "src": "2962:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 194, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2962:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2961:18:0" + }, + "returnParameters": { + "id": 199, + "nodeType": "ParameterList", + "parameters": [], + "src": "2999:0:0" + }, + "scope": 1377, + "src": "2927:161:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 231, + "nodeType": "Block", + "src": "3173:242:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 217, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "3189:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 218, + "name": "videosPerChannelMaxLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3202:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3189:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766964656f735065724368616e6e656c44656661756c744c696d69742063616e6e6f74206578636565642063757272656e7420766964656f735065724368616e6e656c4d61784c696d6974", + "id": 220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3231:77:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", + "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" + }, + "value": "videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", + "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" + } + ], + "id": 216, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3177:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3177:135:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 222, + "nodeType": "ExpressionStatement", + "src": "3177:135:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 223, + "name": "videosPerChannelDefaultLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "3316:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 224, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "3347:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3316:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 226, + "nodeType": "ExpressionStatement", + "src": "3316:40:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 228, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 211, + "src": "3401:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 227, + "name": "VideosPerChannelDefaultLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "3365:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3365:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 230, + "nodeType": "EmitStatement", + "src": "3360:51:0" + } + ] + }, + "documentation": null, + "functionSelector": "ae90430a", + "id": 232, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 214, + "modifierName": { + "argumentTypes": null, + "id": 213, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3161:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3161:11:0" + } + ], + "name": "setVideosPerChannelDefaultLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 211, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 232, + "src": "3136:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 210, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3136:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3135:18:0" + }, + "returnParameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [], + "src": "3173:0:0" + }, + "scope": 1377, + "src": "3094:321:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 254, + "nodeType": "Block", + "src": "3496:249:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 240, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3512:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 241, + "name": "videosPerChannelDefaultLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "3525:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3512:41:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766964656f735065724368616e6e656c4d61784c696d6974206d7573742062652067726561746572207468616e206f7220657175616c20746f20766964656f735065724368616e6e656c44656661756c744c696d6974", + "id": 243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3558:88:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", + "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" + }, + "value": "videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", + "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" + } + ], + "id": 239, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3500:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3500:150:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 245, + "nodeType": "ExpressionStatement", + "src": "3500:150:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 246, + "name": "videosPerChannelMaxLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3654:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 247, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3681:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3654:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 249, + "nodeType": "ExpressionStatement", + "src": "3654:36:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 251, + "name": "_newLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3731:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 250, + "name": "VideosPerChannelMaxLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "3699:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3699:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 253, + "nodeType": "EmitStatement", + "src": "3694:47:0" + } + ] + }, + "documentation": null, + "functionSelector": "9da9f335", + "id": 255, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 237, + "modifierName": { + "argumentTypes": null, + "id": 236, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3484:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3484:11:0" + } + ], + "name": "setVideosPerChannelMaxLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "_newLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 255, + "src": "3459:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 233, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3459:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3458:18:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [], + "src": "3496:0:0" + }, + "scope": 1377, + "src": "3421:324:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 263, + "nodeType": "Block", + "src": "3831:16:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 260, + "name": "_pause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4126, + "src": "3835:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3835:8:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 262, + "nodeType": "ExpressionStatement", + "src": "3835:8:0" + } + ] + }, + "documentation": null, + "functionSelector": "8456cb59", + "id": 264, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 258, + "modifierName": { + "argumentTypes": null, + "id": 257, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3819:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3819:11:0" + } + ], + "name": "pause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 256, + "nodeType": "ParameterList", + "parameters": [], + "src": "3809:2:0" + }, + "returnParameters": { + "id": 259, + "nodeType": "ParameterList", + "parameters": [], + "src": "3831:0:0" + }, + "scope": 1377, + "src": "3795:52:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 272, + "nodeType": "Block", + "src": "3888:18:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 269, + "name": "_unpause", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4142, + "src": "3892:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3892:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 271, + "nodeType": "ExpressionStatement", + "src": "3892:10:0" + } + ] + }, + "documentation": null, + "functionSelector": "3f4ba83a", + "id": 273, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 267, + "modifierName": { + "argumentTypes": null, + "id": 266, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "3876:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3876:11:0" + } + ], + "name": "unpause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 265, + "nodeType": "ParameterList", + "parameters": [], + "src": "3866:2:0" + }, + "returnParameters": { + "id": 268, + "nodeType": "ParameterList", + "parameters": [], + "src": "3888:0:0" + }, + "scope": 1377, + "src": "3850:56:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 311, + "nodeType": "Block", + "src": "4199:216:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 291, + "name": "membershipBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "4203:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 292, + "name": "_membershipBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 277, + "src": "4222:17:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "src": "4203:36:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "id": 294, + "nodeType": "ExpressionStatement", + "src": "4203:36:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 295, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4243:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 296, + "name": "_contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 279, + "src": "4271:26:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "src": "4243:54:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 298, + "nodeType": "ExpressionStatement", + "src": "4243:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 299, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "4301:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 300, + "name": "_channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "4318:15:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "src": "4301:32:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 302, + "nodeType": "ExpressionStatement", + "src": "4301:32:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 303, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "4337:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 304, + "name": "_videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 283, + "src": "4352:13:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "src": "4337:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 306, + "nodeType": "ExpressionStatement", + "src": "4337:28:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 307, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "4369:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 308, + "name": "_curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "4391:20:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "src": "4369:42:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 310, + "nodeType": "ExpressionStatement", + "src": "4369:42:0" + } + ] + }, + "documentation": null, + "id": 312, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 288, + "name": "_provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 275, + "src": "4188:9:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + } + ], + "id": 289, + "modifierName": { + "argumentTypes": null, + "id": 287, + "name": "RuntimeManageable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "4170:17:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", + "typeString": "type(contract RuntimeManageable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "4170:28:0" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 275, + "mutability": "mutable", + "name": "_provider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "3925:32:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 274, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "3925:22:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 277, + "mutability": "mutable", + "name": "_membershipBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "3961:34:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + }, + "typeName": { + "contractScope": null, + "id": 276, + "name": "MembershipBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1613, + "src": "3961:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 279, + "mutability": "mutable", + "name": "_contentWorkingGroupBridge", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "3999:52:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + }, + "typeName": { + "contractScope": null, + "id": 278, + "name": "ContentWorkingGroupBridge", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1545, + "src": "3999:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "_channelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "4055:30:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + }, + "typeName": { + "contractScope": null, + "id": 280, + "name": "ChannelStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2875, + "src": "4055:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "_videoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "4089:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + }, + "typeName": { + "contractScope": null, + "id": 282, + "name": "VideoStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3263, + "src": "4089:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 285, + "mutability": "mutable", + "name": "_curatorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 312, + "src": "4119:40:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + }, + "typeName": { + "contractScope": null, + "id": 284, + "name": "CuratorGroupStorage", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3114, + "src": "4119:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3921:241:0" + }, + "returnParameters": { + "id": 290, + "nodeType": "ParameterList", + "parameters": [], + "src": "4199:0:0" + }, + "scope": 1377, + "src": "3909:506:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 397, + "nodeType": "Block", + "src": "4637:559:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 328, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "4665:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + ], + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4657:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 326, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4657:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4657:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 330, + "name": "_newVideoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "4680:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 331, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4698:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 325, + "name": "_migrateStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4641:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4641:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 333, + "nodeType": "ExpressionStatement", + "src": "4641:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 337, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "4736:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + ], + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4728:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 335, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4728:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4728:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 339, + "name": "_newChannelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "4753:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 340, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4773:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 334, + "name": "_migrateStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4712:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4712:71:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 342, + "nodeType": "ExpressionStatement", + "src": "4712:71:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 346, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "4811:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + ], + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4803:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4803:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4803:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 348, + "name": "_newCuratorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "4833:23:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 349, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4858:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 343, + "name": "_migrateStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 428, + "src": "4787:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address)" + } + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4787:81:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 351, + "nodeType": "ExpressionStatement", + "src": "4787:81:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 353, + "name": "_newLogic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 314, + "src": "4890:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 354, + "name": "_newVideoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "4904:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4932:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4924:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 355, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4924:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4924:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4904:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 364, + "name": "_newVideoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 316, + "src": "4961:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4904:73:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 362, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "4945:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + ], + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4937:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 360, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4937:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4937:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 366, + "name": "_newChannelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "4982:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5012:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5004:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5004:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5004:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4982:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 376, + "name": "_newChannelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 318, + "src": "5043:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4982:79:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 374, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "5025:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + ], + "id": 373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5017:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5017:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5017:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 378, + "name": "_newCuratorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "5066:23:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5101:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5093:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5093:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5093:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5066:37:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 388, + "name": "_newCuratorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 320, + "src": "5137:23:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "5066:94:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 386, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "5114:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + ], + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5106:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 384, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5106:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5106:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 352, + "name": "Migrated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 56, + "src": "4877:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address,address,address)" + } + }, + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4877:287:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 391, + "nodeType": "EmitStatement", + "src": "4872:292:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 393, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "5181:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5181:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 392, + "name": "selfdestruct", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -21, + "src": "5168:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", + "typeString": "function (address payable)" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 396, + "nodeType": "ExpressionStatement", + "src": "5168:24:0" + } + ] + }, + "documentation": null, + "functionSelector": "e30ac74e", + "id": 398, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 323, + "modifierName": { + "argumentTypes": null, + "id": 322, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "4625:11:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4625:11:0" + } + ], + "name": "migrate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 314, + "mutability": "mutable", + "name": "_newLogic", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4486:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 313, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4486:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 316, + "mutability": "mutable", + "name": "_newVideoStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4513:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4513:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "_newChannelStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4547:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 317, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4547:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 320, + "mutability": "mutable", + "name": "_newCuratorGroupStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 398, + "src": "4583:31:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4583:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4482:135:0" + }, + "returnParameters": { + "id": 324, + "nodeType": "ParameterList", + "parameters": [], + "src": "4637:0:0" + }, + "scope": 1377, + "src": "4465:731:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 427, + "nodeType": "Block", + "src": "5325:222:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 407, + "name": "_newStorageAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 402, + "src": "5333:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5363:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5355:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5355:7:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5355:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5333:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 414, + "nodeType": "IfStatement", + "src": "5329:113:0", + "trueBody": { + "id": 413, + "nodeType": "Block", + "src": "5367:75:0", + "statements": [] + } + }, + { + "assignments": [ + 416 + ], + "declarations": [ + { + "constant": false, + "id": 416, + "mutability": "mutable", + "name": "oldStorage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 427, + "src": "5445:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + }, + "typeName": { + "contractScope": null, + "id": 415, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "5445:7:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 420, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 418, + "name": "_oldStorageAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 400, + "src": "5474:18:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 417, + "name": "Ownable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3402, + "src": "5466:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Ownable_$3402_$", + "typeString": "type(contract Ownable)" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5466:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5445:48:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 424, + "name": "_newLogicAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 404, + "src": "5526:16:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 421, + "name": "oldStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "5497:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 3401, + "src": "5497:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", + "typeString": "function (address) external" + } + }, + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5497:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "5497:46:0" + } + ] + }, + "documentation": null, + "id": 428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_migrateStorage", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 400, + "mutability": "mutable", + "name": "_oldStorageAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 428, + "src": "5228:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5228:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 402, + "mutability": "mutable", + "name": "_newStorageAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 428, + "src": "5258:26:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 401, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5258:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 404, + "mutability": "mutable", + "name": "_newLogicAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 428, + "src": "5288:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5288:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5224:91:0" + }, + "returnParameters": { + "id": 406, + "nodeType": "ParameterList", + "parameters": [], + "src": "5325:0:0" + }, + "scope": 1377, + "src": "5199:348:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "id": 431, + "libraryName": { + "contractScope": null, + "id": 429, + "name": "ChannelOwnershipDecoder", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2658, + "src": "5569:23:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelOwnershipDecoder_$2658", + "typeString": "library ChannelOwnershipDecoder" + } + }, + "nodeType": "UsingForDirective", + "src": "5563:51:0", + "typeName": { + "contractScope": null, + "id": 430, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "5597:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + } + }, + { + "body": { + "id": 445, + "nodeType": "Block", + "src": "5710:180:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 439, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 433, + "src": "5722:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 440, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 2657, + "src": "5722:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5722:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964206f776e6572736869702064617461", + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5744:24:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", + "typeString": "literal_string \"Invalid ownership data\"" + }, + "value": "Invalid ownership data" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", + "typeString": "literal_string \"Invalid ownership data\"" + } + ], + "id": 438, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5714:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5714:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 444, + "nodeType": "ExpressionStatement", + "src": "5714:55:0" + } + ] + }, + "documentation": null, + "id": 446, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validateOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 433, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 446, + "src": "5645:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 432, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "5645:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5644:36:0" + }, + "returnParameters": { + "id": 437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 436, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 446, + "src": "5704:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 435, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5704:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5703:6:0" + }, + "scope": 1377, + "src": "5617:273:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 495, + "nodeType": "Block", + "src": "6001:418:0", + "statements": [ + { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 455, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6009:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 456, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2499, + "src": "6009:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6009:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 465, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6096:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "6096:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6096:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 477, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6216:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 478, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2533, + "src": "6216:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6216:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 491, + "nodeType": "Block", + "src": "6370:46:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6382:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 487, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "6375:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6375:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 490, + "nodeType": "ExpressionStatement", + "src": "6375:13:0" + } + ] + }, + "id": 492, + "nodeType": "IfStatement", + "src": "6212:204:0", + "trueBody": { + "id": 486, + "nodeType": "Block", + "src": "6245:117:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 482, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "6346:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6346:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 480, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "6307:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isActiveLead", + "nodeType": "MemberAccess", + "referencedDeclaration": 1544, + "src": "6307:38:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view external returns (bool)" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6307:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 454, + "id": 485, + "nodeType": "Return", + "src": "6300:57:0" + } + ] + } + }, + "id": 493, + "nodeType": "IfStatement", + "src": "6092:324:0", + "trueBody": { + "id": 476, + "nodeType": "Block", + "src": "6119:85:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 470, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "6167:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 471, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6177:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 472, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "asMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 2578, + "src": "6177:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" + } + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6177:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 468, + "name": "membershipBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "6131:16:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_MembershipBridge_$1613", + "typeString": "contract MembershipBridge" + } + }, + "id": 469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isMemberController", + "nodeType": "MemberAccess", + "referencedDeclaration": 1595, + "src": "6131:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", + "typeString": "function (address,uint64) view external returns (bool)" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6131:68:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 454, + "id": 475, + "nodeType": "Return", + "src": "6124:75:0" + } + ] + } + }, + "id": 494, + "nodeType": "IfStatement", + "src": "6005:411:0", + "trueBody": { + "id": 464, + "nodeType": "Block", + "src": "6033:51:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 458, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 448, + "src": "6045:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 459, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 450, + "src": "6057:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 460, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "asAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 2557, + "src": "6057:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (address)" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6057:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6045:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 454, + "id": 463, + "nodeType": "Return", + "src": "6038:41:0" + } + ] + } + } + ] + }, + "documentation": null, + "id": 496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_hasOwnerAccess", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 448, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 496, + "src": "5918:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 447, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5918:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 450, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 496, + "src": "5936:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 449, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "5936:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5917:54:0" + }, + "returnParameters": { + "id": 454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 453, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 496, + "src": "5995:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 452, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5995:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5994:6:0" + }, + "scope": 1377, + "src": "5893:526:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 516, + "nodeType": "Block", + "src": "6526:91:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 505, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "6537:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 506, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2533, + "src": "6537:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6537:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 512, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6604:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 511, + "name": "_isCurator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 181, + "src": "6593:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6593:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "6537:76:0", + "trueExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 509, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6581:8:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 508, + "name": "_isActiveLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "6567:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6567:23:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 504, + "id": 515, + "nodeType": "Return", + "src": "6530:83:0" + } + ] + }, + "documentation": null, + "id": 517, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_canCurate", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 498, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 517, + "src": "6443:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6443:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 500, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 517, + "src": "6461:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 499, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "6461:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6442:54:0" + }, + "returnParameters": { + "id": 504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 503, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 517, + "src": "6520:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 502, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6520:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6519:6:0" + }, + "scope": 1377, + "src": "6422:195:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "6786:25:0", + "statements": [] + }, + "documentation": null, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_hasGroupAccessToOperation", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 519, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6660:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6660:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6680:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 520, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "6680:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 523, + "mutability": "mutable", + "name": "_operation", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6718:36:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + }, + "typeName": { + "contractScope": null, + "id": 522, + "name": "ContentDirectoryOperation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3270, + "src": "6718:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6656:101:0" + }, + "returnParameters": { + "id": 527, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 526, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 529, + "src": "6780:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 525, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6780:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6779:6:0" + }, + "scope": 1377, + "src": "6620:191:0", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 579, + "nodeType": "Block", + "src": "6932:418:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 542, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "6944:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 2657, + "src": "6944:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6944:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964206f776e657273686970", + "id": 545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6966:19:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + }, + "value": "Invalid ownership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + } + ], + "id": 541, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6936:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6936:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 547, + "nodeType": "ExpressionStatement", + "src": "6936:50:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 549, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "6998:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "nextChannelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 2673, + "src": "6998:28:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", + "typeString": "function () view external returns (uint64)" + } + }, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6998:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 552, + "name": "channelInstancesLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "7032:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6998:55:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4368616e6e656c20696e7374616e636573206c696d69742072656163686564", + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7055:33:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", + "typeString": "literal_string \"Channel instances limit reached\"" + }, + "value": "Channel instances limit reached" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", + "typeString": "literal_string \"Channel instances limit reached\"" + } + ], + "id": 548, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6990:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6990:99:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 556, + "nodeType": "ExpressionStatement", + "src": "6990:99:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 559, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7117:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7117:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 561, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "7129:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 558, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "7101:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7101:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e69656420756e6465722070726f7669646564206f776e657273686970", + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7142:40:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", + "typeString": "literal_string \"Access denied under provided ownership\"" + }, + "value": "Access denied under provided ownership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", + "typeString": "literal_string \"Access denied under provided ownership\"" + } + ], + "id": 557, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7093:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7093:90:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 565, + "nodeType": "ExpressionStatement", + "src": "7093:90:0" + }, + { + "assignments": [ + 567 + ], + "declarations": [ + { + "constant": false, + "id": 567, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 579, + "src": "7187:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 566, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "7187:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 572, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 570, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "7232:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 568, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "7206:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2757, + "src": "7206:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (struct ChannelOwnership memory) external returns (uint64)" + } + }, + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7206:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7187:56:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 574, + "name": "channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "7313:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 531, + "src": "7324:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "id": 576, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "7336:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 573, + "name": "ChannelCreated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 67, + "src": "7298:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,struct ChannelOwnership memory,string memory[2] memory[] memory)" + } + }, + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7298:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 578, + "nodeType": "EmitStatement", + "src": "7293:53:0" + } + ] + }, + "documentation": null, + "functionSelector": "13c6e4ed", + "id": 580, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 539, + "modifierName": { + "argumentTypes": null, + "id": 538, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "6918:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6918:13:0" + } + ], + "name": "createChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 580, + "src": "6841:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 530, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "6841:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 580, + "src": "6879:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 532, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6879:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 534, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6886:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "6879:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 535, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6879:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6837:73:0" + }, + "returnParameters": { + "id": 540, + "nodeType": "ParameterList", + "parameters": [], + "src": "6932:0:0" + }, + "scope": 1377, + "src": "6814:536:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 636, + "nodeType": "Block", + "src": "7462:510:0", + "statements": [ + { + "assignments": [ + 593 + ], + "declarations": [ + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 636, + "src": "7466:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 592, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "7466:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 598, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 596, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 582, + "src": "7525:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 594, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "7491:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "7491:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7491:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7466:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 601, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7568:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7568:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 603, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7580:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "7580:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 600, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "7552:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7552:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 607, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7616:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7616:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 609, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7628:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 610, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "7628:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 606, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "7605:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7605:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7552:94:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 614, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "7680:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7680:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 616, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7692:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "7692:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 618, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "7711:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "UpdateChannelMetadata", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7711:47:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 613, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "7653:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7653:106:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7552:207:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7764:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 599, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7540:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7540:243:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 624, + "nodeType": "ExpressionStatement", + "src": "7540:243:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 626, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "7866:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 627, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "7866:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686973206368616e6e656c206973206465616374697661746564", + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7884:29:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", + "typeString": "literal_string \"This channel is deactivated\"" + }, + "value": "This channel is deactivated" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", + "typeString": "literal_string \"This channel is deactivated\"" + } + ], + "id": 625, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "7858:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7858:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 630, + "nodeType": "ExpressionStatement", + "src": "7858:56:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 632, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 582, + "src": "7946:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 633, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 587, + "src": "7958:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 631, + "name": "ChannelMetadataUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 76, + "src": "7923:22:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory[2] memory[] memory)" + } + }, + "id": 634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7923:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 635, + "nodeType": "EmitStatement", + "src": "7918:50:0" + } + ] + }, + "documentation": null, + "functionSelector": "c251e585", + "id": 637, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 590, + "modifierName": { + "argumentTypes": null, + "id": 589, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "7448:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7448:13:0" + } + ], + "name": "updateChannelMetadata", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 582, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 637, + "src": "7388:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 581, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "7388:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 587, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 637, + "src": "7409:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 583, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7409:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 585, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7416:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "7409:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 586, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7409:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7384:56:0" + }, + "returnParameters": { + "id": 591, + "nodeType": "ParameterList", + "parameters": [], + "src": "7462:0:0" + }, + "scope": 1377, + "src": "7353:619:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 695, + "nodeType": "Block", + "src": "8091:496:0", + "statements": [ + { + "assignments": [ + 647 + ], + "declarations": [ + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 695, + "src": "8095:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 646, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "8095:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 652, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 650, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8154:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 648, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "8120:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "8120:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8120:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8095:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 655, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8193:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8193:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "8205:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "8205:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 654, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "8177:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8177:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f776e657220616363657373207265717569726564", + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8225:23:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", + "typeString": "literal_string \"Owner access required\"" + }, + "value": "Owner access required" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", + "typeString": "literal_string \"Owner access required\"" + } + ], + "id": 653, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8169:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8169:80:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 662, + "nodeType": "ExpressionStatement", + "src": "8169:80:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 664, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8261:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 665, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isValid", + "nodeType": "MemberAccess", + "referencedDeclaration": 2657, + "src": "8261:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8261:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "496e76616c6964206f776e657273686970", + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8283:19:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + }, + "value": "Invalid ownership" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", + "typeString": "literal_string \"Invalid ownership\"" + } + ], + "id": 663, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8253:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8253:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 669, + "nodeType": "ExpressionStatement", + "src": "8253:50:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8315:28:0", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 671, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8316:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + "id": 672, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2533, + "src": "8316:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", + "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" + } + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8316:27:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 676, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8361:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8361:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 675, + "name": "_isActiveLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "8347:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8347:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "8315:57:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f6e6c79206c6561642063616e20757064617465206f776e65727368697020746f2043757261746f7247726f7570", + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8374:48:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", + "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" + }, + "value": "Only lead can update ownership to CuratorGroup" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", + "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" + } + ], + "id": 670, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8307:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8307:116:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 682, + "nodeType": "ExpressionStatement", + "src": "8307:116:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 686, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8458:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 687, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8470:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 683, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "8427:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2810, + "src": "8427:30:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (uint64,struct ChannelOwnership memory) external" + } + }, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8427:54:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 689, + "nodeType": "ExpressionStatement", + "src": "8427:54:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 691, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 639, + "src": "8560:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 692, + "name": "_ownership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "8572:10:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 690, + "name": "ChannelOwnershipUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 82, + "src": "8536:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", + "typeString": "function (uint64,struct ChannelOwnership memory)" + } + }, + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8536:47:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 694, + "nodeType": "EmitStatement", + "src": "8531:52:0" + } + ] + }, + "documentation": null, + "functionSelector": "eb1762d7", + "id": 696, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 644, + "modifierName": { + "argumentTypes": null, + "id": 643, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "8077:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8077:13:0" + } + ], + "name": "updateChannelOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 642, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 639, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 696, + "src": "8011:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 638, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8011:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 641, + "mutability": "mutable", + "name": "_ownership", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 696, + "src": "8032:34:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership" + }, + "typeName": { + "contractScope": null, + "id": 640, + "name": "ChannelOwnership", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2469, + "src": "8032:16:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", + "typeString": "struct ChannelOwnership" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8007:62:0" + }, + "returnParameters": { + "id": 645, + "nodeType": "ParameterList", + "parameters": [], + "src": "8091:0:0" + }, + "scope": 1377, + "src": "7975:612:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 741, + "nodeType": "Block", + "src": "8744:502:0", + "statements": [ + { + "assignments": [ + 706 + ], + "declarations": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 741, + "src": "8748:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 705, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "8748:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 711, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 709, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8807:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 707, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "8773:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "8773:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8773:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8748:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 714, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "8930:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8930:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 716, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 706, + "src": "8942:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "8942:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 713, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "8919:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8919:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8962:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 712, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8911:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8911:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 721, + "nodeType": "ExpressionStatement", + "src": "8911:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 723, + "name": "_limit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "8990:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 724, + "name": "videosPerChannelMaxLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "9000:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "8990:34:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766964656f735065724368616e6e656c4d61784c696d6974", + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9026:57:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", + "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" + }, + "value": "The limit cannot exceed global videosPerChannelMaxLimit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", + "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" + } + ], + "id": 722, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "8982:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8982:102:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 728, + "nodeType": "ExpressionStatement", + "src": "8982:102:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 732, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "9124:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 733, + "name": "_limit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "9136:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "expression": { + "argumentTypes": null, + "id": 729, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9088:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setChannelVideoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2854, + "src": "9088:35:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint32_$returns$__$", + "typeString": "function (uint64,uint32) external" + } + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9088:55:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 735, + "nodeType": "ExpressionStatement", + "src": "9088:55:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 737, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "9223:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 738, + "name": "_limit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "9235:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 736, + "name": "ChannelVideoLimitUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 88, + "src": "9198:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", + "typeString": "function (uint64,uint64)" + } + }, + "id": 739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9198:44:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 740, + "nodeType": "EmitStatement", + "src": "9193:49:0" + } + ] + }, + "documentation": null, + "functionSelector": "0333f536", + "id": 742, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 703, + "modifierName": { + "argumentTypes": null, + "id": 702, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "8730:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "8730:13:0" + } + ], + "name": "updateChannelVideoLimit", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 742, + "src": "8627:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 697, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8627:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 700, + "mutability": "mutable", + "name": "_limit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 742, + "src": "8648:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 699, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "8648:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8623:99:0" + }, + "returnParameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [], + "src": "8744:0:0" + }, + "scope": 1377, + "src": "8590:656:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "9350:397:0", + "statements": [ + { + "assignments": [ + 752 + ], + "declarations": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 797, + "src": "9354:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 751, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "9354:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 757, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 755, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "9413:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 753, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9379:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "9379:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9379:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9354:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 760, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "9447:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9447:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 762, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "9459:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "9459:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 759, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "9436:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9436:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9479:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9428:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9428:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 767, + "nodeType": "ExpressionStatement", + "src": "9428:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 769, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "9507:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 770, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "9507:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4368616e6e656c20616c7265616479206465616374697661746564", + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9525:29:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", + "typeString": "literal_string \"Channel already deactivated\"" + }, + "value": "Channel already deactivated" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", + "typeString": "literal_string \"Channel already deactivated\"" + } + ], + "id": 768, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9499:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9499:56:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 773, + "nodeType": "ExpressionStatement", + "src": "9499:56:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 777, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "9573:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9567:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 775, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9567:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9567:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9567:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9592:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9567:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9595:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + }, + "value": "The reason should be at least 2 characters long" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + } + ], + "id": 774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9559:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9559:86:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 784, + "nodeType": "ExpressionStatement", + "src": "9559:86:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 788, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "9677:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9689:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 785, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9649:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 2832, + "src": "9649:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9649:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 791, + "nodeType": "ExpressionStatement", + "src": "9649:46:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 793, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 744, + "src": "9723:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 794, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 746, + "src": "9735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 792, + "name": "ChannelDeactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "9704:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory)" + } + }, + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9704:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 796, + "nodeType": "EmitStatement", + "src": "9699:44:0" + } + ] + }, + "documentation": null, + "functionSelector": "44ff3e81", + "id": 798, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 749, + "modifierName": { + "argumentTypes": null, + "id": 748, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "9336:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9336:13:0" + } + ], + "name": "deactivateChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 744, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 798, + "src": "9283:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 743, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9283:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 746, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 798, + "src": "9304:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 745, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9304:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9279:49:0" + }, + "returnParameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [], + "src": "9350:0:0" + }, + "scope": 1377, + "src": "9252:495:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "9824:382:0", + "statements": [ + { + "assignments": [ + 806 + ], + "declarations": [ + { + "constant": false, + "id": 806, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 840, + "src": "9828:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 805, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "9828:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 811, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 809, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "9887:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 807, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "9853:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "9853:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9853:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9828:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 814, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "10010:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10010:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 816, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "10022:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 817, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "10022:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 813, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "9999:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9999:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10042:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 812, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9991:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9991:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "9991:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "10070:17:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 823, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "10071:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 824, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "10071:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4368616e6e656c20616c726561647920616374697665", + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10089:24:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", + "typeString": "literal_string \"Channel already active\"" + }, + "value": "Channel already active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", + "typeString": "literal_string \"Channel already active\"" + } + ], + "id": 822, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10062:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10062:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 828, + "nodeType": "ExpressionStatement", + "src": "10062:52:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 832, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "10146:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10158:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 829, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "10118:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 2832, + "src": "10118:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10118:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 835, + "nodeType": "ExpressionStatement", + "src": "10118:45:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 837, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "10191:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 836, + "name": "ChannelReactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 98, + "src": "10172:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10172:30:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 839, + "nodeType": "EmitStatement", + "src": "10167:35:0" + } + ] + }, + "documentation": null, + "functionSelector": "75ef1f1e", + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 803, + "modifierName": { + "argumentTypes": null, + "id": 802, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "9810:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9810:13:0" + } + ], + "name": "activateChannel", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 801, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 800, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 841, + "src": "9782:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 799, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9782:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9778:24:0" + }, + "returnParameters": { + "id": 804, + "nodeType": "ParameterList", + "parameters": [], + "src": "9824:0:0" + }, + "scope": 1377, + "src": "9753:453:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 891, + "nodeType": "Block", + "src": "10328:406:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 855, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10380:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 853, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "10340:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 1530, + "src": "10340:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", + "typeString": "function (uint64) view external returns (bool)" + } + }, + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10340:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10393:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + }, + "value": "Curator id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + } + ], + "id": 852, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10332:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10332:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 859, + "nodeType": "ExpressionStatement", + "src": "10332:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 863, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10465:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 861, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10433:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "groupExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 2994, + "src": "10433:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) view external returns (bool)" + } + }, + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10433:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10476:25:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + }, + "value": "Group id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + } + ], + "id": 860, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10425:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10425:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 867, + "nodeType": "ExpressionStatement", + "src": "10425:77:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 871, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10551:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 872, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10563:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 869, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10514:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorInGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2904, + "src": "10514:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint64,uint16) view external returns (bool)" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10514:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10576:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "10514:67:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f7220697320616c726561647920696e207468652067726f7570", + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10583:33:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", + "typeString": "literal_string \"Curator is already in the group\"" + }, + "value": "Curator is already in the group" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", + "typeString": "literal_string \"Curator is already in the group\"" + } + ], + "id": 868, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10506:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10506:111:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 878, + "nodeType": "ExpressionStatement", + "src": "10506:111:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 882, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10659:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 883, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10671:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 879, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10621:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addCuratorToGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3040, + "src": "10621:37:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16) external" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10621:59:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "ExpressionStatement", + "src": "10621:59:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 887, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 843, + "src": "10709:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 888, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 845, + "src": "10721:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 886, + "name": "CuratorAddedToGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "10689:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16)" + } + }, + "id": 889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10689:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 890, + "nodeType": "EmitStatement", + "src": "10684:46:0" + } + ] + }, + "documentation": null, + "functionSelector": "d8b457fc", + "id": 892, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 848, + "modifierName": { + "argumentTypes": null, + "id": 847, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "10305:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10305:13:0" + }, + { + "arguments": null, + "id": 850, + "modifierName": { + "argumentTypes": null, + "id": 849, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "10319:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10319:8:0" + } + ], + "name": "addCuratorToGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 846, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 843, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 892, + "src": "10258:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 842, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10258:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 845, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 892, + "src": "10279:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 844, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "10279:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10254:43:0" + }, + "returnParameters": { + "id": 851, + "nodeType": "ParameterList", + "parameters": [], + "src": "10328:0:0" + }, + "scope": 1377, + "src": "10228:506:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 934, + "nodeType": "Block", + "src": "10842:423:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 906, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "10984:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 904, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "10952:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "groupExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 2994, + "src": "10952:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) view external returns (bool)" + } + }, + "id": 907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10952:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10995:25:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + }, + "value": "Group id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", + "typeString": "literal_string \"Group id not recognized\"" + } + ], + "id": 903, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10944:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10944:77:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 910, + "nodeType": "ExpressionStatement", + "src": "10944:77:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 914, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "11070:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 915, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "11082:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 912, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11033:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isCuratorInGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 2904, + "src": "11033:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint64,uint16) view external returns (bool)" + } + }, + "id": 916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11033:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11095:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "11033:66:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f7220697320616c7265616479206e6f7420696e207468652067726f7570", + "id": 919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11101:37:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", + "typeString": "literal_string \"Curator is already not in the group\"" + }, + "value": "Curator is already not in the group" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", + "typeString": "literal_string \"Curator is already not in the group\"" + } + ], + "id": 911, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11025:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11025:114:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 921, + "nodeType": "ExpressionStatement", + "src": "11025:114:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 925, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "11186:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 926, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "11198:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 922, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11143:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeCuratorFromGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3066, + "src": "11143:42:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16) external" + } + }, + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11143:64:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "11143:64:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 930, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "11240:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 931, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 896, + "src": "11252:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 929, + "name": "CuratorRemovedFromGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 110, + "src": "11216:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16)" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11216:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 933, + "nodeType": "EmitStatement", + "src": "11211:50:0" + } + ] + }, + "documentation": null, + "functionSelector": "be16b353", + "id": 935, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 899, + "modifierName": { + "argumentTypes": null, + "id": 898, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "10819:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10819:13:0" + }, + { + "arguments": null, + "id": 901, + "modifierName": { + "argumentTypes": null, + "id": 900, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "10833:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "10833:8:0" + } + ], + "name": "removeCuratorFromGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 894, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 935, + "src": "10772:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 893, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10772:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 896, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 935, + "src": "10793:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 895, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "10793:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10768:43:0" + }, + "returnParameters": { + "id": 902, + "nodeType": "ParameterList", + "parameters": [], + "src": "10842:0:0" + }, + "scope": 1377, + "src": "10737:528:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 962, + "nodeType": "Block", + "src": "11358:388:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 947, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "11410:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 945, + "name": "contentWorkingGroupBridge", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "11370:25:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", + "typeString": "contract ContentWorkingGroupBridge" + } + }, + "id": 946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 1530, + "src": "11370:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", + "typeString": "function (uint64) view external returns (bool)" + } + }, + "id": 948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11370:51:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11423:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + }, + "value": "Curator id not recognized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", + "typeString": "literal_string \"Curator id not recognized\"" + } + ], + "id": 944, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11362:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11362:89:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 951, + "nodeType": "ExpressionStatement", + "src": "11362:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 955, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "11502:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 952, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11455:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeCuratorFromAllGroups", + "nodeType": "MemberAccess", + "referencedDeclaration": 3100, + "src": "11455:46:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64) external" + } + }, + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11455:58:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 957, + "nodeType": "ExpressionStatement", + "src": "11455:58:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 959, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 937, + "src": "11550:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 958, + "name": "CuratorRemovedFromAllGroups", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 114, + "src": "11522:27:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11522:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 961, + "nodeType": "EmitStatement", + "src": "11517:44:0" + } + ] + }, + "documentation": null, + "functionSelector": "96cbd61b", + "id": 963, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 940, + "modifierName": { + "argumentTypes": null, + "id": 939, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "11335:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11335:13:0" + }, + { + "arguments": null, + "id": 942, + "modifierName": { + "argumentTypes": null, + "id": 941, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "11349:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11349:8:0" + } + ], + "name": "removeCuratorFromAllGroups", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 938, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 937, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 963, + "src": "11307:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 936, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "11307:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11303:24:0" + }, + "returnParameters": { + "id": 943, + "nodeType": "ParameterList", + "parameters": [], + "src": "11358:0:0" + }, + "scope": 1377, + "src": "11268:478:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1008, + "nodeType": "Block", + "src": "11829:351:0", + "statements": [ + { + "assignments": [ + 973 + ], + "declarations": [ + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "group", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1008, + "src": "11833:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group" + }, + "typeName": { + "contractScope": null, + "id": 972, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "11833:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 978, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 976, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "11891:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 974, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "11854:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3014, + "src": "11854:36:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_struct$_Group_$2887_memory_ptr_$", + "typeString": "function (uint16) view external returns (struct Group memory)" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11854:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11833:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 980, + "name": "group", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "11912:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group memory" + } + }, + "id": 981, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2886, + "src": "11912:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11935:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11912:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f757027732063757261746f727320636f756e74206e6565647320746f2062652030", + "id": 984, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11938:38:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", + "typeString": "literal_string \"Group's curators count needs to be 0\"" + }, + "value": "Group's curators count needs to be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", + "typeString": "literal_string \"Group's curators count needs to be 0\"" + } + ], + "id": 979, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11904:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11904:73:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 986, + "nodeType": "ExpressionStatement", + "src": "11904:73:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 992, + "name": "ChannelOwnerType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2482, + "src": "12038:16:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", + "typeString": "type(enum ChannelOwnerType)" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "CuratorGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12038:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", + "typeString": "enum ChannelOwnerType" + } + ], + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12032:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 990, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "12032:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12032:36:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 995, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "12070:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 988, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "11993:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "channelCountByOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2670, + "src": "11993:38:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$", + "typeString": "function (uint8,uint256) view external returns (uint32)" + } + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11993:86:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12083:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11993:91:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "47726f75702773206368616e6e656c7320636f756e74206e6565647320746f2062652030", + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12089:38:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", + "typeString": "literal_string \"Group's channels count needs to be 0\"" + }, + "value": "Group's channels count needs to be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", + "typeString": "literal_string \"Group's channels count needs to be 0\"" + } + ], + "id": 987, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11981:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11981:150:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1001, + "nodeType": "ExpressionStatement", + "src": "11981:150:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1005, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "12167:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 1002, + "name": "curatorGroupStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 21, + "src": "12135:19:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeGroup", + "nodeType": "MemberAccess", + "referencedDeclaration": 3113, + "src": "12135:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$", + "typeString": "function (uint16) external" + } + }, + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12135:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1007, + "nodeType": "ExpressionStatement", + "src": "12135:41:0" + } + ] + }, + "documentation": null, + "functionSelector": "0d00a78f", + "id": 1009, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 968, + "modifierName": { + "argumentTypes": null, + "id": 967, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "11806:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11806:13:0" + }, + { + "arguments": null, + "id": 970, + "modifierName": { + "argumentTypes": null, + "id": 969, + "name": "onlyLead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 193, + "src": "11820:8:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "11820:8:0" + } + ], + "name": "removeCuratorGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 966, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1009, + "src": "11780:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 964, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "11780:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11776:22:0" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [], + "src": "11829:0:0" + }, + "scope": 1377, + "src": "11749:431:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1086, + "nodeType": "Block", + "src": "12289:634:0", + "statements": [ + { + "assignments": [ + 1022 + ], + "declarations": [ + { + "constant": false, + "id": 1022, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1086, + "src": "12293:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1021, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "12293:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1027, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1025, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12352:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1023, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "12318:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "12318:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12318:45:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12293:70:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1030, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "12395:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12395:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1032, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12407:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "12407:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1029, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "12379:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12379:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1036, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "12459:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12459:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1038, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12471:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "12471:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1040, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "12490:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 1041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "AddVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12490:34:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 1035, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "12432:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12432:93:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12379:146:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12530:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12367:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12367:182:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1046, + "nodeType": "ExpressionStatement", + "src": "12367:182:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1048, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12561:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "12561:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746861742069736e277420616374697665", + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12579:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", + "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" + }, + "value": "Cannot add video to a channel that isn't active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", + "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" + } + ], + "id": 1047, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12553:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12553:76:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1052, + "nodeType": "ExpressionStatement", + "src": "12553:76:0" + }, + { + "assignments": [ + 1054 + ], + "declarations": [ + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "channelVideoLimit", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1086, + "src": "12633:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1053, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "12633:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1063, + "initialValue": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1055, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12660:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1056, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "12660:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12682:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12660:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 1061, + "name": "videosPerChannelDefaultLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "12707:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "12660:75:0", + "trueExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1059, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "12686:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "videoLimit", + "nodeType": "MemberAccess", + "referencedDeclaration": 2475, + "src": "12686:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12633:102:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1067, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12782:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1065, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "12747:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "videoCountByChannelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3139, + "src": "12747:34:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_uint64_$", + "typeString": "function (uint64) view external returns (uint64)" + } + }, + "id": 1068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12747:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 1069, + "name": "channelVideoLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1054, + "src": "12796:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "12747:66:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1064, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12739:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12739:75:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1072, + "nodeType": "ExpressionStatement", + "src": "12739:75:0" + }, + { + "assignments": [ + 1074 + ], + "declarations": [ + { + "constant": false, + "id": 1074, + "mutability": "mutable", + "name": "videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1086, + "src": "12818:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1073, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12818:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1079, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12857:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1075, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "12835:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3195, + "src": "12835:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$_t_uint64_$", + "typeString": "function (uint64) external returns (uint64)" + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12835:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12818:50:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1081, + "name": "videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1074, + "src": "12888:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1082, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1011, + "src": "12897:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1083, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "12909:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 1080, + "name": "VideoAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "12877:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,uint64,string memory[2] memory[] memory)" + } + }, + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12877:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1085, + "nodeType": "EmitStatement", + "src": "12872:47:0" + } + ] + }, + "documentation": null, + "functionSelector": "4d70d709", + "id": 1087, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1019, + "modifierName": { + "argumentTypes": null, + "id": 1018, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "12275:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12275:13:0" + } + ], + "name": "addVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1011, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1087, + "src": "12215:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1010, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12215:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1016, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1087, + "src": "12236:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 1012, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12236:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1014, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12243:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12236:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 1015, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12236:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12211:56:0" + }, + "returnParameters": { + "id": 1020, + "nodeType": "ParameterList", + "parameters": [], + "src": "12289:0:0" + }, + "scope": 1377, + "src": "12194:729:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1151, + "nodeType": "Block", + "src": "13030:571:0", + "statements": [ + { + "assignments": [ + 1100 + ], + "declarations": [ + { + "constant": false, + "id": 1100, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1151, + "src": "13034:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1099, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "13034:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1105, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1103, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13085:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1101, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "13055:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "13055:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13055:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13034:60:0" + }, + { + "assignments": [ + 1107 + ], + "declarations": [ + { + "constant": false, + "id": 1107, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1151, + "src": "13098:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1106, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "13098:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1113, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1110, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "13157:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "13157:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1108, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "13123:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "13123:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13123:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13098:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1116, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13205:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13205:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1118, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13217:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13217:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1115, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "13189:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13189:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1122, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13269:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13269:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1124, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13281:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1125, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13281:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1126, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "13300:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "UpdateVideoMetadata", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13300:45:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 1121, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "13242:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13242:104:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13189:157:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1131, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13364:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13364:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1133, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13376:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1130, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "13353:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13353:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13189:205:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13399:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1114, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13177:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13177:241:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1139, + "nodeType": "ExpressionStatement", + "src": "13177:241:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1141, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1107, + "src": "13467:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1142, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 2473, + "src": "13467:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "43616e6e6f742075706461746520766964656f206d65746164617461207768656e20746865206368616e6e656c206973206e6f7420616374697665", + "id": 1143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13485:61:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", + "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" + }, + "value": "Cannot update video metadata when the channel is not active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", + "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" + } + ], + "id": 1140, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13459:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13459:88:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1145, + "nodeType": "ExpressionStatement", + "src": "13459:88:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1147, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "13577:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1148, + "name": "_metadata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1094, + "src": "13587:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string memory[2] memory[] memory" + } + ], + "id": 1146, + "name": "VideoMetadataUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 134, + "src": "13556:20:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory[2] memory[] memory)" + } + }, + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13556:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1150, + "nodeType": "EmitStatement", + "src": "13551:46:0" + } + ] + }, + "documentation": null, + "functionSelector": "b94c9c9d", + "id": 1152, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1097, + "modifierName": { + "argumentTypes": null, + "id": 1096, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "13016:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13016:13:0" + } + ], + "name": "updateVideoMetadata", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1152, + "src": "12958:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1088, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12958:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1094, + "mutability": "mutable", + "name": "_metadata", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1152, + "src": "12977:28:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", + "typeString": "string[2][]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 1090, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12977:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 1092, + "length": { + "argumentTypes": null, + "hexValue": "32", + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12984:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "12977:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", + "typeString": "string[2]" + } + }, + "id": 1093, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12977:11:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", + "typeString": "string[2][]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12954:54:0" + }, + "returnParameters": { + "id": 1098, + "nodeType": "ParameterList", + "parameters": [], + "src": "13030:0:0" + }, + "scope": 1377, + "src": "12926:675:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1203, + "nodeType": "Block", + "src": "13668:405:0", + "statements": [ + { + "assignments": [ + 1160 + ], + "declarations": [ + { + "constant": false, + "id": 1160, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1203, + "src": "13672:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1159, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "13672:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1165, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1163, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "13723:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1161, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "13693:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "13693:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13693:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13672:60:0" + }, + { + "assignments": [ + 1167 + ], + "declarations": [ + { + "constant": false, + "id": 1167, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1203, + "src": "13736:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1166, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "13736:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1173, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1170, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1160, + "src": "13795:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "13795:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1168, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "13761:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "13761:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13761:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13736:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13843:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13843:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1178, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1167, + "src": "13855:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13855:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1175, + "name": "_hasOwnerAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 496, + "src": "13827:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13827:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1182, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "13907:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13907:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1184, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1167, + "src": "13919:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "13919:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1186, + "name": "ContentDirectoryOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3270, + "src": "13938:25:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", + "typeString": "type(enum ContentDirectoryOperation)" + } + }, + "id": 1187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RemoveVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13938:37:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + }, + { + "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", + "typeString": "enum ContentDirectoryOperation" + } + ], + "id": 1181, + "name": "_hasGroupAccessToOperation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 529, + "src": "13880:26:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" + } + }, + "id": 1188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13880:96:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "13827:149:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13981:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1174, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13815:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13815:185:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1192, + "nodeType": "ExpressionStatement", + "src": "13815:185:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1196, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "14029:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1193, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14004:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3262, + "src": "14004:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64) external" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14004:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1198, + "nodeType": "ExpressionStatement", + "src": "14004:34:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1200, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "14060:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1199, + "name": "VideoRemoved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 138, + "src": "14047:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14047:22:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1202, + "nodeType": "EmitStatement", + "src": "14042:27:0" + } + ] + }, + "documentation": null, + "functionSelector": "9a055bbf", + "id": 1204, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1157, + "modifierName": { + "argumentTypes": null, + "id": 1156, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "13654:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13654:13:0" + } + ], + "name": "removeVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1155, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1154, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1204, + "src": "13628:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1153, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13628:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13624:22:0" + }, + "returnParameters": { + "id": 1158, + "nodeType": "ParameterList", + "parameters": [], + "src": "13668:0:0" + }, + "scope": 1377, + "src": "13604:469:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1260, + "nodeType": "Block", + "src": "14174:394:0", + "statements": [ + { + "assignments": [ + 1214 + ], + "declarations": [ + { + "constant": false, + "id": 1214, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1260, + "src": "14178:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1213, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "14178:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1219, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1217, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "14229:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1215, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14199:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "14199:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14199:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14178:60:0" + }, + { + "assignments": [ + 1221 + ], + "declarations": [ + { + "constant": false, + "id": 1221, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1260, + "src": "14242:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1220, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "14242:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1227, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1224, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "14301:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "14301:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1222, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "14267:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "14267:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14267:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14242:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1230, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14340:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14340:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1232, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "14352:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "14352:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1229, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "14329:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14329:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14372:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1228, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14321:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14321:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1237, + "nodeType": "ExpressionStatement", + "src": "14321:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1241, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "14406:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14400:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1239, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14400:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14400:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14400:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14424:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14400:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14427:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + }, + "value": "The reason should be at least 2 characters long" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + } + ], + "id": 1238, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14392:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14392:85:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1248, + "nodeType": "ExpressionStatement", + "src": "14392:85:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1252, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "14506:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1249, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14481:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "removeVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3262, + "src": "14481:24:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64) external" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14481:34:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1254, + "nodeType": "ExpressionStatement", + "src": "14481:34:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1256, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1206, + "src": "14546:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1257, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "14556:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1255, + "name": "VideoRemovedByCurator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "14524:21:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory)" + } + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14524:40:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1259, + "nodeType": "EmitStatement", + "src": "14519:45:0" + } + ] + }, + "documentation": null, + "functionSelector": "8edaea6e", + "id": 1261, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1211, + "modifierName": { + "argumentTypes": null, + "id": 1210, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "14160:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "14160:13:0" + } + ], + "name": "removeVideoAsCurator", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1209, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1206, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1261, + "src": "14109:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1205, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "14109:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1261, + "src": "14128:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1207, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14128:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14105:47:0" + }, + "returnParameters": { + "id": 1212, + "nodeType": "ParameterList", + "parameters": [], + "src": "14174:0:0" + }, + "scope": 1377, + "src": "14076:492:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1324, + "nodeType": "Block", + "src": "14668:454:0", + "statements": [ + { + "assignments": [ + 1271 + ], + "declarations": [ + { + "constant": false, + "id": 1271, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1324, + "src": "14672:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1270, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "14672:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1276, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1274, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "14723:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1272, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "14693:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "14693:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14693:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14672:60:0" + }, + { + "assignments": [ + 1278 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1324, + "src": "14736:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1277, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "14736:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1284, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1281, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1271, + "src": "14795:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "14795:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1279, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "14761:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "14761:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14761:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14736:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1287, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "14834:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14834:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1289, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "14846:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "14846:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1286, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "14823:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14823:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14866:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1285, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14815:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14815:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1294, + "nodeType": "ExpressionStatement", + "src": "14815:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1296, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1271, + "src": "14894:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "14894:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "566964656f20616c7265616479206465616374697661746564", + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14910:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", + "typeString": "literal_string \"Video already deactivated\"" + }, + "value": "Video already deactivated" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", + "typeString": "literal_string \"Video already deactivated\"" + } + ], + "id": 1295, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14886:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14886:52:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1300, + "nodeType": "ExpressionStatement", + "src": "14886:52:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1304, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "14956:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14950:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14950:5:0", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14950:14:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14950:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14975:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "14950:26:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14978:49:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + }, + "value": "The reason should be at least 2 characters long" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", + "typeString": "literal_string \"The reason should be at least 2 characters long\"" + } + ], + "id": 1301, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14942:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14942:86:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1311, + "nodeType": "ExpressionStatement", + "src": "14942:86:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1315, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "15058:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15068:5:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 1312, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "15032:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 3239, + "src": "15032:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15032:42:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1318, + "nodeType": "ExpressionStatement", + "src": "15032:42:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1320, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1263, + "src": "15100:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 1321, + "name": "_reason", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1265, + "src": "15110:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1319, + "name": "VideoDeactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 150, + "src": "15083:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint64,string memory)" + } + }, + "id": 1322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15083:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1323, + "nodeType": "EmitStatement", + "src": "15078:40:0" + } + ] + }, + "documentation": null, + "functionSelector": "a51a83f2", + "id": 1325, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1268, + "modifierName": { + "argumentTypes": null, + "id": 1267, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "14654:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "14654:13:0" + } + ], + "name": "deactivateVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1263, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1325, + "src": "14603:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1262, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "14603:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1265, + "mutability": "mutable", + "name": "_reason", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1325, + "src": "14622:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1264, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14622:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14599:47:0" + }, + "returnParameters": { + "id": 1269, + "nodeType": "ParameterList", + "parameters": [], + "src": "14668:0:0" + }, + "scope": 1377, + "src": "14574:548:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1375, + "nodeType": "Block", + "src": "15195:350:0", + "statements": [ + { + "assignments": [ + 1333 + ], + "declarations": [ + { + "constant": false, + "id": 1333, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1375, + "src": "15199:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 1332, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "15199:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1338, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1336, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "15250:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1334, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "15220:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingVideo", + "nodeType": "MemberAccess", + "referencedDeclaration": 3217, + "src": "15220:29:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Video memory)" + } + }, + "id": 1337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15220:39:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15199:60:0" + }, + { + "assignments": [ + 1340 + ], + "declarations": [ + { + "constant": false, + "id": 1340, + "mutability": "mutable", + "name": "channel", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1375, + "src": "15263:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel" + }, + "typeName": { + "contractScope": null, + "id": 1339, + "name": "Channel", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2478, + "src": "15263:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", + "typeString": "struct Channel" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1346, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1343, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1333, + "src": "15322:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "15322:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "argumentTypes": null, + "id": 1341, + "name": "channelStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17, + "src": "15288:14:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ChannelStorage_$2875", + "typeString": "contract ChannelStorage" + } + }, + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "getExistingChannel", + "nodeType": "MemberAccess", + "referencedDeclaration": 2779, + "src": "15288:33:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", + "typeString": "function (uint64) view external returns (struct Channel memory)" + } + }, + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15288:50:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15263:75:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1349, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "15361:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15361:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1351, + "name": "channel", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1340, + "src": "15373:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", + "typeString": "struct Channel memory" + } + }, + "id": 1352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "ownership", + "nodeType": "MemberAccess", + "referencedDeclaration": 2471, + "src": "15373:17:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", + "typeString": "struct ChannelOwnership memory" + } + ], + "id": 1348, + "name": "_canCurate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "15350:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15350:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4163636573732064656e696564", + "id": 1354, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15393:15:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + }, + "value": "Access denied" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", + "typeString": "literal_string \"Access denied\"" + } + ], + "id": 1347, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15342:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15342:67:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1356, + "nodeType": "ExpressionStatement", + "src": "15342:67:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "15421:15:0", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1358, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1333, + "src": "15422:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 1359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "15422:14:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "566964656f20616c726561647920616374697665", + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15438:22:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", + "typeString": "literal_string \"Video already active\"" + }, + "value": "Video already active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", + "typeString": "literal_string \"Video already active\"" + } + ], + "id": 1357, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "15413:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15413:48:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1363, + "nodeType": "ExpressionStatement", + "src": "15413:48:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1367, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "15491:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15501:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "argumentTypes": null, + "id": 1364, + "name": "videoStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "15465:12:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_VideoStorage_$3263", + "typeString": "contract VideoStorage" + } + }, + "id": 1366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateStatus", + "nodeType": "MemberAccess", + "referencedDeclaration": 3239, + "src": "15465:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", + "typeString": "function (uint64,bool) external" + } + }, + "id": 1369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15465:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1370, + "nodeType": "ExpressionStatement", + "src": "15465:41:0" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1372, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "15532:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1371, + "name": "VideoReactivated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "15515:16:0", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 1373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15515:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1374, + "nodeType": "EmitStatement", + "src": "15510:31:0" + } + ] + }, + "documentation": null, + "functionSelector": "11ff105e", + "id": 1376, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1330, + "modifierName": { + "argumentTypes": null, + "id": 1329, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "15181:13:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15181:13:0" + } + ], + "name": "activateVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1327, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1376, + "src": "15155:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1326, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "15155:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15151:22:0" + }, + "returnParameters": { + "id": 1331, + "nodeType": "ParameterList", + "parameters": [], + "src": "15195:0:0" + }, + "scope": 1377, + "src": "15128:417:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1378, + "src": "485:15062:0" + } + ], + "src": "0:15548:0" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.515Z", + "devdoc": { + "kind": "dev", + "methods": { + "paused()": { + "details": "Returns true if the contract is paused, and false otherwise." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/ContentWorkingGroupBridge.json b/smart-contracts/build/contracts/ContentWorkingGroupBridge.json new file mode 100644 index 0000000000..acef374138 --- /dev/null +++ b/smart-contracts/build/contracts/ContentWorkingGroupBridge.json @@ -0,0 +1,2863 @@ +{ + "contractName": "ContentWorkingGroupBridge", + "abi": [ + { + "inputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "_provider", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "currentLeadAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "runtimeAddressProvider", + "outputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + }, + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "setCuratorAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "setLeadAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_status", + "type": "bool" + } + ], + "name": "setLeadStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + }, + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + } + ], + "name": "isCurator", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + } + ], + "name": "curatorExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "isActiveLead", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"curatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentLeadAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isActiveLead\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"isCurator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setCuratorAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setLeadAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setLeadStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol\":\"ContentWorkingGroupBridge\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol\":{\"keccak256\":\"0xbd70b3b036373148b763dc3cd19c8653dbaffac05a0668a410cc6cc4875a552b\",\"urls\":[\"bzz-raw://714cee590168f00572e43cff52d093268f1b09e4055a00c4484dee1f73db2839\",\"dweb:/ipfs/QmUHxh9dkmaZsgho11Hdqz87RgxWXV8UjtEDDsrmNDFwD4\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", + "bytecode": "0x60806040526002805460ff60a01b1916600160a01b17905534801561002357600080fd5b506040516106243803806106248339818101604052602081101561004657600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556105ac806100786000396000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c80631cd2b43f1461007d5780631ec22327146100a55780632ca880d4146100df5780634ff5ae631461010357806371066956146101385780637a0020251461015e578063be7bbe051461017d578063e830b87014610185575b600080fd5b6100a36004803603602081101561009357600080fd5b50356001600160a01b03166101ba565b005b6100cb600480360360208110156100bb57600080fd5b50356001600160a01b031661029a565b604080519115158252519081900360200190f35b6100e76102c9565b604080516001600160a01b039092168252519081900360200190f35b6100a36004803603604081101561011957600080fd5b5080356001600160401b031690602001356001600160a01b03166102d8565b6100cb6004803603602081101561014e57600080fd5b50356001600160401b03166103cf565b6100a36004803603602081101561017457600080fd5b503515156103f5565b6100e76104d1565b6100cb6004803603604081101561019b57600080fd5b5080356001600160a01b031690602001356001600160401b03166104e0565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561020657600080fd5b505afa15801561021a573d6000803e3d6000fd5b505050506040513d602081101561023057600080fd5b50516001600160a01b031633146102785760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600254600090600160a01b900460ff1680156102c357506002546001600160a01b038381169116145b92915050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561032457600080fd5b505afa158015610338573d6000803e3d6000fd5b505050506040513d602081101561034e57600080fd5b50516001600160a01b031633146103965760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160401b03166000908152600160205260409020546001600160a01b0316151590565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561044157600080fd5b505afa158015610455573d6000803e3d6000fd5b505050506040513d602081101561046b57600080fd5b50516001600160a01b031633146104b35760405162461bcd60e51b815260040180806020018281038252603a81526020018061053d603a913960400191505060405180910390fd5b60028054911515600160a01b0260ff60a01b19909216919091179055565b6002546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b039182169116149056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656da264697066735822122051c692e5561d90d2203d3d52f23a90ffd3a449cfc02481a86c37a6eed1672e4f64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100785760003560e01c80631cd2b43f1461007d5780631ec22327146100a55780632ca880d4146100df5780634ff5ae631461010357806371066956146101385780637a0020251461015e578063be7bbe051461017d578063e830b87014610185575b600080fd5b6100a36004803603602081101561009357600080fd5b50356001600160a01b03166101ba565b005b6100cb600480360360208110156100bb57600080fd5b50356001600160a01b031661029a565b604080519115158252519081900360200190f35b6100e76102c9565b604080516001600160a01b039092168252519081900360200190f35b6100a36004803603604081101561011957600080fd5b5080356001600160401b031690602001356001600160a01b03166102d8565b6100cb6004803603602081101561014e57600080fd5b50356001600160401b03166103cf565b6100a36004803603602081101561017457600080fd5b503515156103f5565b6100e76104d1565b6100cb6004803603604081101561019b57600080fd5b5080356001600160a01b031690602001356001600160401b03166104e0565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561020657600080fd5b505afa15801561021a573d6000803e3d6000fd5b505050506040513d602081101561023057600080fd5b50516001600160a01b031633146102785760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600254600090600160a01b900460ff1680156102c357506002546001600160a01b038381169116145b92915050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561032457600080fd5b505afa158015610338573d6000803e3d6000fd5b505050506040513d602081101561034e57600080fd5b50516001600160a01b031633146103965760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160401b03166000908152600160205260409020546001600160a01b0316151590565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561044157600080fd5b505afa158015610455573d6000803e3d6000fd5b505050506040513d602081101561046b57600080fd5b50516001600160a01b031633146104b35760405162461bcd60e51b815260040180806020018281038252603a81526020018061053d603a913960400191505060405180910390fd5b60028054911515600160a01b0260ff60a01b19909216919091179055565b6002546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b039182169116149056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656da264697066735822122051c692e5561d90d2203d3d52f23a90ffd3a449cfc02481a86c37a6eed1672e4f64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "47:1139:2:-:0;;;332:24;;;-1:-1:-1;;;;332:24:2;-1:-1:-1;;;332:24:2;;;360:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;360:85:2;649:22:4;:48;;-1:-1:-1;;;;;649:48:4;;;-1:-1:-1;;;;;;649:48:4;;;;;;;;;47:1139:2;;;;;;", + "deployedSourceMap": "47:1139:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;589:98;;;;;;;;;;;;;;;;-1:-1:-1;589:98:2;-1:-1:-1;;;;;589:98:2;;:::i;:::-;;1056:128;;;;;;;;;;;;;;;;-1:-1:-1;1056:128:2;-1:-1:-1;;;;;1056:128:2;;:::i;:::-;;;;;;;;;;;;;;;;;;521:52:4;;;:::i;:::-;;;;-1:-1:-1;;;;;521:52:4;;;;;;;;;;;;;;451:132:2;;;;;;;;;;;;;;;;-1:-1:-1;451:132:2;;-1:-1:-1;;;;;451:132:2;;;;;-1:-1:-1;;;;;451:132:2;;:::i;925:128::-;;;;;;;;;;;;;;;;-1:-1:-1;925:128:2;-1:-1:-1;;;;;925:128:2;;:::i;693:86::-;;;;;;;;;;;;;;;;-1:-1:-1;693:86:2;;;;:::i;253:33::-;;;:::i;782:140::-;;;;;;;;;;;;;;;;-1:-1:-1;782:140:2;;-1:-1:-1;;;;;782:140:2;;;;;-1:-1:-1;;;;;782:140:2;;:::i;589:98::-;755:22:4;;;;;;;;-1:-1:-1;;;;;755:22:4;-1:-1:-1;;;;;755:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;755:39:4;-1:-1:-1;;;;;741:53:4;:10;:53;729:127;;;;-1:-1:-1;;;729:127:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;654:18:2::1;:29:::0;;-1:-1:-1;;;;;;654:29:2::1;-1:-1:-1::0;;;;;654:29:2;;;::::1;::::0;;;::::1;::::0;;589:98::o;1056:128::-;1134:12;;1117:4;;-1:-1:-1;;;1134:12:2;;;;:46;;;;-1:-1:-1;1150:18:2;;-1:-1:-1;;;;;1150:30:2;;;:18;;:30;1134:46;1127:53;1056:128;-1:-1:-1;;1056:128:2:o;521:52:4:-;;;-1:-1:-1;;;;;521:52:4;;:::o;451:132:2:-;755:22:4;;;;;;;;-1:-1:-1;;;;;755:22:4;-1:-1:-1;;;;;755:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;755:39:4;-1:-1:-1;;;;;741:53:4;:10;:53;729:127;;;;-1:-1:-1;;;729:127:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;538:30:2;;;::::1;;::::0;;;:18:::1;:30;::::0;;;;:41;;-1:-1:-1;;;;;;538:41:2::1;-1:-1:-1::0;;;;;538:41:2;;::::1;::::0;;;::::1;::::0;;451:132::o;925:128::-;-1:-1:-1;;;;;1005:30:2;988:4;1005:30;;;:18;:30;;;;;;-1:-1:-1;;;;;1005:30:2;:44;;;925:128::o;693:86::-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:39:4;-1:-1:-1;;;;;905:53:4;:10;:53;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;753:12:2::1;:22:::0;;;::::1;;-1:-1:-1::0;;;753:22:2::1;-1:-1:-1::0;;;;753:22:2;;::::1;::::0;;;::::1;::::0;;693:86::o;253:33::-;;;-1:-1:-1;;;;;253:33:2;;:::o;782:140::-;-1:-1:-1;;;;;876:30:2;859:4;876:30;;;:18;:30;;;;;;-1:-1:-1;;;;;876:42:2;;;:30;;:42;;782:140::o", + "source": "pragma solidity ^0.6.0;\n\nimport \"./auth.sol\";\n\ncontract ContentWorkingGroupBridge is RuntimeManageable {\n\t// A map of curatorId => evmAddress(roleKey)\n\tmapping (uint64 => address) private addressByCuratorId;\n\n\t// evmAddress(roleKey) of current lead\n address public currentLeadAddress;\n\n\t// Lead status managed by the council\n bool isLeadActive = true;\n\n\tconstructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {}\n\n function setCuratorAddress(uint64 _curatorId, address _address) public onlyRuntime {\n\t\taddressByCuratorId[_curatorId] = _address;\n\t}\n\n function setLeadAddress(address _address) public onlyRuntime {\n\t\tcurrentLeadAddress = _address;\n\t}\n\n function setLeadStatus(bool _status) public onlyCouncil {\n\t\tisLeadActive = _status;\n\t}\n\n\tfunction isCurator(address _address, uint64 _curatorId) public view returns (bool) {\n\t\treturn addressByCuratorId[_curatorId] == _address;\n\t}\n\n\tfunction curatorExists(uint64 _curatorId) public view returns (bool) {\n\t\treturn addressByCuratorId[_curatorId] != address(0);\n\t}\n\n\tfunction isActiveLead(address _address) public view returns (bool) {\n\t\treturn isLeadActive && currentLeadAddress == _address;\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", + "exportedSymbols": { + "ContentWorkingGroupBridge": [ + 1545 + ] + }, + "id": 1546, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1436, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "file": "./auth.sol", + "id": 1437, + "nodeType": "ImportDirective", + "scope": 1546, + "sourceUnit": 1678, + "src": "25:20:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1438, + "name": "RuntimeManageable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1677, + "src": "85:17:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeManageable_$1677", + "typeString": "contract RuntimeManageable" + } + }, + "id": 1439, + "nodeType": "InheritanceSpecifier", + "src": "85:17:2" + } + ], + "contractDependencies": [ + 1677 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1545, + "linearizedBaseContracts": [ + 1545, + 1677 + ], + "name": "ContentWorkingGroupBridge", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "addressByCuratorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1545, + "src": "152:54:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "typeName": { + "id": 1442, + "keyType": { + "id": 1440, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "161:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "152:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "valueType": { + "id": 1441, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "171:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "be7bbe05", + "id": 1445, + "mutability": "mutable", + "name": "currentLeadAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1545, + "src": "253:33:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "253:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "isLeadActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1545, + "src": "332:24:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1446, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "332:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "352:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "internal" + }, + { + "body": { + "id": 1456, + "nodeType": "Block", + "src": "443:2:2", + "statements": [] + }, + "documentation": null, + "id": 1457, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1453, + "name": "_provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "432:9:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + } + ], + "id": 1454, + "modifierName": { + "argumentTypes": null, + "id": 1452, + "name": "RuntimeManageable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "414:17:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", + "typeString": "type(contract RuntimeManageable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "414:28:2" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1450, + "mutability": "mutable", + "name": "_provider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1457, + "src": "373:32:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1449, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "373:22:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "372:34:2" + }, + "returnParameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [], + "src": "443:0:2" + }, + "scope": 1545, + "src": "360:85:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1472, + "nodeType": "Block", + "src": "534:49:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1466, + "name": "addressByCuratorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "538:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1468, + "indexExpression": { + "argumentTypes": null, + "id": 1467, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "557:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "538:30:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1469, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "571:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "538:41:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1471, + "nodeType": "ExpressionStatement", + "src": "538:41:2" + } + ] + }, + "documentation": null, + "functionSelector": "4ff5ae63", + "id": 1473, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1464, + "modifierName": { + "argumentTypes": null, + "id": 1463, + "name": "onlyRuntime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "522:11:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "522:11:2" + } + ], + "name": "setCuratorAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1462, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1473, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1458, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "478:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1461, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1473, + "src": "497:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "477:37:2" + }, + "returnParameters": { + "id": 1465, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:0:2" + }, + "scope": 1545, + "src": "451:132:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1484, + "nodeType": "Block", + "src": "650:37:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1480, + "name": "currentLeadAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "654:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1481, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1475, + "src": "675:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:29:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1483, + "nodeType": "ExpressionStatement", + "src": "654:29:2" + } + ] + }, + "documentation": null, + "functionSelector": "1cd2b43f", + "id": 1485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1478, + "modifierName": { + "argumentTypes": null, + "id": 1477, + "name": "onlyRuntime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "638:11:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "638:11:2" + } + ], + "name": "setLeadAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1475, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1485, + "src": "613:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "613:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "612:18:2" + }, + "returnParameters": { + "id": 1479, + "nodeType": "ParameterList", + "parameters": [], + "src": "650:0:2" + }, + "scope": 1545, + "src": "589:98:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1496, + "nodeType": "Block", + "src": "749:30:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1492, + "name": "isLeadActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1448, + "src": "753:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1493, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "768:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "753:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "753:22:2" + } + ] + }, + "documentation": null, + "functionSelector": "7a002025", + "id": 1497, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1490, + "modifierName": { + "argumentTypes": null, + "id": 1489, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "737:11:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "737:11:2" + } + ], + "name": "setLeadStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1487, + "mutability": "mutable", + "name": "_status", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1497, + "src": "716:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1486, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "716:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "715:14:2" + }, + "returnParameters": { + "id": 1491, + "nodeType": "ParameterList", + "parameters": [], + "src": "749:0:2" + }, + "scope": 1545, + "src": "693:86:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1512, + "nodeType": "Block", + "src": "865:57:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1506, + "name": "addressByCuratorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "876:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1508, + "indexExpression": { + "argumentTypes": null, + "id": 1507, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1501, + "src": "895:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "876:30:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1509, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1499, + "src": "910:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "876:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1505, + "id": 1511, + "nodeType": "Return", + "src": "869:49:2" + } + ] + }, + "documentation": null, + "functionSelector": "e830b870", + "id": 1513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isCurator", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1499, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1513, + "src": "801:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "801:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1501, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1513, + "src": "819:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1500, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "819:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "800:37:2" + }, + "returnParameters": { + "id": 1505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1513, + "src": "859:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1503, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "859:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "858:6:2" + }, + "scope": 1545, + "src": "782:140:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1529, + "nodeType": "Block", + "src": "994:59:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1520, + "name": "addressByCuratorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "1005:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1522, + "indexExpression": { + "argumentTypes": null, + "id": 1521, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1515, + "src": "1024:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1005:30:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1047:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1039:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1039:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1039:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1005:44:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1519, + "id": 1528, + "nodeType": "Return", + "src": "998:51:2" + } + ] + }, + "documentation": null, + "functionSelector": "71066956", + "id": 1530, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "curatorExists", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1515, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "948:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1514, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "947:19:2" + }, + "returnParameters": { + "id": 1519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1518, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "988:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1517, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "988:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "987:6:2" + }, + "scope": 1545, + "src": "925:128:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1543, + "nodeType": "Block", + "src": "1123:61:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1537, + "name": "isLeadActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1448, + "src": "1134:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1538, + "name": "currentLeadAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "1150:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1539, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1532, + "src": "1172:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1150:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1134:46:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1536, + "id": 1542, + "nodeType": "Return", + "src": "1127:53:2" + } + ] + }, + "documentation": null, + "functionSelector": "1ec22327", + "id": 1544, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isActiveLead", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1532, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1544, + "src": "1078:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1078:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1077:18:2" + }, + "returnParameters": { + "id": 1536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1535, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1544, + "src": "1117:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1534, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1117:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1116:6:2" + }, + "scope": 1545, + "src": "1056:128:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1546, + "src": "47:1139:2" + } + ], + "src": "0:1187:2" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", + "exportedSymbols": { + "ContentWorkingGroupBridge": [ + 1545 + ] + }, + "id": 1546, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1436, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:2" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "file": "./auth.sol", + "id": 1437, + "nodeType": "ImportDirective", + "scope": 1546, + "sourceUnit": 1678, + "src": "25:20:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1438, + "name": "RuntimeManageable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1677, + "src": "85:17:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeManageable_$1677", + "typeString": "contract RuntimeManageable" + } + }, + "id": 1439, + "nodeType": "InheritanceSpecifier", + "src": "85:17:2" + } + ], + "contractDependencies": [ + 1677 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1545, + "linearizedBaseContracts": [ + 1545, + 1677 + ], + "name": "ContentWorkingGroupBridge", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "addressByCuratorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1545, + "src": "152:54:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "typeName": { + "id": 1442, + "keyType": { + "id": 1440, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "161:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "152:27:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "valueType": { + "id": 1441, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "171:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "be7bbe05", + "id": 1445, + "mutability": "mutable", + "name": "currentLeadAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1545, + "src": "253:33:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "253:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "isLeadActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1545, + "src": "332:24:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1446, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "332:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "352:4:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "internal" + }, + { + "body": { + "id": 1456, + "nodeType": "Block", + "src": "443:2:2", + "statements": [] + }, + "documentation": null, + "id": 1457, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1453, + "name": "_provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1450, + "src": "432:9:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + } + ], + "id": 1454, + "modifierName": { + "argumentTypes": null, + "id": 1452, + "name": "RuntimeManageable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "414:17:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", + "typeString": "type(contract RuntimeManageable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "414:28:2" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1450, + "mutability": "mutable", + "name": "_provider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1457, + "src": "373:32:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1449, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "373:22:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "372:34:2" + }, + "returnParameters": { + "id": 1455, + "nodeType": "ParameterList", + "parameters": [], + "src": "443:0:2" + }, + "scope": 1545, + "src": "360:85:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1472, + "nodeType": "Block", + "src": "534:49:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1466, + "name": "addressByCuratorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "538:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1468, + "indexExpression": { + "argumentTypes": null, + "id": 1467, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "557:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "538:30:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1469, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1461, + "src": "571:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "538:41:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1471, + "nodeType": "ExpressionStatement", + "src": "538:41:2" + } + ] + }, + "documentation": null, + "functionSelector": "4ff5ae63", + "id": 1473, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1464, + "modifierName": { + "argumentTypes": null, + "id": 1463, + "name": "onlyRuntime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "522:11:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "522:11:2" + } + ], + "name": "setCuratorAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1462, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1459, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1473, + "src": "478:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1458, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "478:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1461, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1473, + "src": "497:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1460, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "497:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "477:37:2" + }, + "returnParameters": { + "id": 1465, + "nodeType": "ParameterList", + "parameters": [], + "src": "534:0:2" + }, + "scope": 1545, + "src": "451:132:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1484, + "nodeType": "Block", + "src": "650:37:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1480, + "name": "currentLeadAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "654:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1481, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1475, + "src": "675:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "654:29:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1483, + "nodeType": "ExpressionStatement", + "src": "654:29:2" + } + ] + }, + "documentation": null, + "functionSelector": "1cd2b43f", + "id": 1485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1478, + "modifierName": { + "argumentTypes": null, + "id": 1477, + "name": "onlyRuntime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "638:11:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "638:11:2" + } + ], + "name": "setLeadAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1475, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1485, + "src": "613:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1474, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "613:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "612:18:2" + }, + "returnParameters": { + "id": 1479, + "nodeType": "ParameterList", + "parameters": [], + "src": "650:0:2" + }, + "scope": 1545, + "src": "589:98:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1496, + "nodeType": "Block", + "src": "749:30:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1492, + "name": "isLeadActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1448, + "src": "753:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1493, + "name": "_status", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1487, + "src": "768:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "753:22:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1495, + "nodeType": "ExpressionStatement", + "src": "753:22:2" + } + ] + }, + "documentation": null, + "functionSelector": "7a002025", + "id": 1497, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1490, + "modifierName": { + "argumentTypes": null, + "id": 1489, + "name": "onlyCouncil", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1676, + "src": "737:11:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "737:11:2" + } + ], + "name": "setLeadStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1487, + "mutability": "mutable", + "name": "_status", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1497, + "src": "716:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1486, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "716:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "715:14:2" + }, + "returnParameters": { + "id": 1491, + "nodeType": "ParameterList", + "parameters": [], + "src": "749:0:2" + }, + "scope": 1545, + "src": "693:86:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1512, + "nodeType": "Block", + "src": "865:57:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1506, + "name": "addressByCuratorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "876:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1508, + "indexExpression": { + "argumentTypes": null, + "id": 1507, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1501, + "src": "895:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "876:30:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1509, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1499, + "src": "910:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "876:42:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1505, + "id": 1511, + "nodeType": "Return", + "src": "869:49:2" + } + ] + }, + "documentation": null, + "functionSelector": "e830b870", + "id": 1513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isCurator", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1499, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1513, + "src": "801:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "801:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1501, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1513, + "src": "819:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1500, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "819:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "800:37:2" + }, + "returnParameters": { + "id": 1505, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1504, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1513, + "src": "859:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1503, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "859:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "858:6:2" + }, + "scope": 1545, + "src": "782:140:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1529, + "nodeType": "Block", + "src": "994:59:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1520, + "name": "addressByCuratorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "1005:18:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1522, + "indexExpression": { + "argumentTypes": null, + "id": 1521, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1515, + "src": "1024:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1005:30:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1047:1:2", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1039:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1523, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1039:7:2", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1039:10:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1005:44:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1519, + "id": 1528, + "nodeType": "Return", + "src": "998:51:2" + } + ] + }, + "documentation": null, + "functionSelector": "71066956", + "id": 1530, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "curatorExists", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1515, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "948:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1514, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "948:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "947:19:2" + }, + "returnParameters": { + "id": 1519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1518, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1530, + "src": "988:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1517, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "988:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "987:6:2" + }, + "scope": 1545, + "src": "925:128:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1543, + "nodeType": "Block", + "src": "1123:61:2", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1537, + "name": "isLeadActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1448, + "src": "1134:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1538, + "name": "currentLeadAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "1150:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1539, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1532, + "src": "1172:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1150:30:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1134:46:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1536, + "id": 1542, + "nodeType": "Return", + "src": "1127:53:2" + } + ] + }, + "documentation": null, + "functionSelector": "1ec22327", + "id": 1544, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isActiveLead", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1532, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1544, + "src": "1078:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1531, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1078:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1077:18:2" + }, + "returnParameters": { + "id": 1536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1535, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1544, + "src": "1117:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1534, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1117:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1116:6:2" + }, + "scope": 1545, + "src": "1056:128:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1546, + "src": "47:1139:2" + } + ], + "src": "0:1187:2" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.539Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Context.json b/smart-contracts/build/contracts/Context.json new file mode 100644 index 0000000000..74578eb60e --- /dev/null +++ b/smart-contracts/build/contracts/Context.json @@ -0,0 +1,545 @@ +{ + "contractName": "Context", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", + "exportedSymbols": { + "Context": [ + 3293 + ] + }, + "id": 3294, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3272, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:13" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3293, + "linearizedBaseContracts": [ + 3293 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3280, + "nodeType": "Block", + "src": "660:34:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "677:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "677:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 3276, + "id": 3279, + "nodeType": "Return", + "src": "670:17:13" + } + ] + }, + "documentation": null, + "id": 3281, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3273, + "nodeType": "ParameterList", + "parameters": [], + "src": "609:2:13" + }, + "returnParameters": { + "id": 3276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3275, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3281, + "src": "643:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "643:15:13", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "642:17:13" + }, + "scope": 3293, + "src": "590:104:13", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3291, + "nodeType": "Block", + "src": "765:165:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3286, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "775:4:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$3293", + "typeString": "contract Context" + } + }, + "id": 3287, + "nodeType": "ExpressionStatement", + "src": "775:4:13" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3288, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "915:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "915:8:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 3285, + "id": 3290, + "nodeType": "Return", + "src": "908:15:13" + } + ] + }, + "documentation": null, + "id": 3292, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3282, + "nodeType": "ParameterList", + "parameters": [], + "src": "717:2:13" + }, + "returnParameters": { + "id": 3285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3284, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3292, + "src": "751:12:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3283, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "751:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "750:14:13" + }, + "scope": 3293, + "src": "700:230:13", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3294, + "src": "558:374:13" + } + ], + "src": "33:900:13" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", + "exportedSymbols": { + "Context": [ + 3293 + ] + }, + "id": 3294, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3272, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:13" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3293, + "linearizedBaseContracts": [ + 3293 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3280, + "nodeType": "Block", + "src": "660:34:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "677:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "677:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 3276, + "id": 3279, + "nodeType": "Return", + "src": "670:17:13" + } + ] + }, + "documentation": null, + "id": 3281, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3273, + "nodeType": "ParameterList", + "parameters": [], + "src": "609:2:13" + }, + "returnParameters": { + "id": 3276, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3275, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3281, + "src": "643:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3274, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "643:15:13", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "642:17:13" + }, + "scope": 3293, + "src": "590:104:13", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3291, + "nodeType": "Block", + "src": "765:165:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3286, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "775:4:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$3293", + "typeString": "contract Context" + } + }, + "id": 3287, + "nodeType": "ExpressionStatement", + "src": "775:4:13" + }, + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3288, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "915:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "915:8:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 3285, + "id": 3290, + "nodeType": "Return", + "src": "908:15:13" + } + ] + }, + "documentation": null, + "id": 3292, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3282, + "nodeType": "ParameterList", + "parameters": [], + "src": "717:2:13" + }, + "returnParameters": { + "id": 3285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3284, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3292, + "src": "751:12:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3283, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "751:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "750:14:13" + }, + "scope": 3293, + "src": "700:230:13", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3294, + "src": "558:374:13" + } + ], + "src": "33:900:13" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.591Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/CuratorGroupStorage.json b/smart-contracts/build/contracts/CuratorGroupStorage.json new file mode 100644 index 0000000000..d3a7ae99b9 --- /dev/null +++ b/smart-contracts/build/contracts/CuratorGroupStorage.json @@ -0,0 +1,6286 @@ +{ + "contractName": "CuratorGroupStorage", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "name": "isCuratorInGroup", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nextGroupId", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "name": "permissionsByGroupId", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool[]", + "name": "_permissions", + "type": "bool[]" + } + ], + "name": "addGroup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "groupExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "getExistingGroup", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "isExisting", + "type": "bool" + }, + { + "internalType": "uint32", + "name": "curatorsCount", + "type": "uint32" + } + ], + "internalType": "struct Group", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "addCuratorToGroup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + }, + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "removeCuratorFromGroup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_curatorId", + "type": "uint64" + } + ], + "name": "removeCuratorFromAllGroups", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "_groupId", + "type": "uint16" + } + ], + "name": "removeGroup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"addCuratorToGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"_permissions\",\"type\":\"bool[]\"}],\"name\":\"addGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"getExistingGroup\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isExisting\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"curatorsCount\",\"type\":\"uint32\"}],\"internalType\":\"struct Group\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"groupExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"isCuratorInGroup\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextGroupId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"permissionsByGroupId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"removeCuratorFromAllGroups\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeCuratorFromGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol\":\"CuratorGroupStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":{\"keccak256\":\"0x3144434af3449276d1a4e92e7a0dd5e213df54bdff1c8d7de210c6afddf2a4ff\",\"urls\":[\"bzz-raw://a04571ba65a5111dca479803ec8582acf04e7f074db82b9a83610e5cc4787dcb\",\"dweb:/ipfs/QmXyfBJxHsFhhbZd7R2zwQWrRvMWFmNoTqZALTWBfLj3uJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":{\"keccak256\":\"0xad7031eb97c64c9dff0b4db53835514e46c79d710ab873cdd2d36a5fd20b8c1c\",\"urls\":[\"bzz-raw://866dcdd27d00364da1e05739d9d4b586227a66d8bc4a61f4638064774b74e9d2\",\"dweb:/ipfs/QmUbC1VsPf4Cj5xTqMiHcNBo1WLPcmmczp6M3WFAb4cpap\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol\":{\"keccak256\":\"0x4835b0346a6f5375e7fe8b0241222cf4157f472bd9485c2b4c478dfc29f79b99\",\"urls\":[\"bzz-raw://0145ad367384248243b8c2b4e536a5c205d1ff2e99288af28aa61106b7b142dd\",\"dweb:/ipfs/Qmd7833Q2LyZ72pYjLx4VhCp1eGyxqDT1HXb8pxtfS5SmT\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]}},\"version\":1}", + "bytecode": "0x60806040526004805461ffff1916600117905534801561001e57600080fd5b506000610029610078565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061007c565b3390565b610c848061008b6000396000f3fe608060405234801561001057600080fd5b50600436106100af5760003560e01c80631d191c33146100b45780633cbdb702146100c9578063400c196c146100dc5780635eda7a7614610105578063715018a61461011a5780637f8c9ea2146101225780638da5cb5b1461014257806396cbd61b14610157578063a51a0a861461016a578063be16b3531461017d578063d8b457fc14610190578063de6eb66e146101a3578063f2fde38b146101b6575b600080fd5b6100c76100c2366004610876565b6101c9565b005b6100c76100d736600461093c565b6102c9565b6100ef6100ea36600461093c565b61031e565b6040516100fc9190610ba4565b60405180910390f35b61010d6103ef565b6040516100fc9190610bc3565b6100c76103f9565b610135610130366004610958565b610466565b6040516100fc91906109f8565b61014a610486565b6040516100fc91906109e4565b6100c761016536600461099b565b610495565b6101356101783660046109b7565b610532565b6100c761018b3660046109b7565b610552565b6100c761019e3660046109b7565b6105dc565b6101356101b136600461093c565b610663565b6100c76101c436600461084f565b61067c565b6101d1610720565b6000546001600160a01b039081169116146102075760405162461bcd60e51b81526004016101fe90610b6f565b60405180910390fd5b60ff815111156102295760405162461bcd60e51b81526004016101fe90610a56565b60045461ffff166000818152600360205260408120805460ff19166001178155905b83518160ff1610156102b057838160ff168151811061026657fe5b60209081029190910181015161ffff8516600090815260028352604080822060ff861680845294529020805460ff19169115159190911790556102aa906001610724565b5061024b565b506004546102c39061ffff166001610758565b50505050565b6102d1610720565b6000546001600160a01b039081169116146102fe5760405162461bcd60e51b81526004016101fe90610b6f565b61ffff166000908152600360205260409020805464ffffffffff19169055565b61032661082d565b604051636f375b3760e11b8152309063de6eb66e90610349908590600401610bc3565b60206040518083038186803b15801561036157600080fd5b505afa158015610375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103999190610920565b6103b55760405162461bcd60e51b81526004016101fe90610b2e565b5061ffff1660009081526003602090815260409182902082518084019093525460ff811615158352610100900463ffffffff169082015290565b60045461ffff1681565b610401610720565b6000546001600160a01b0390811691161461042e5760405162461bcd60e51b81526004016101fe90610b6f565b600080546040516001600160a01b0390911690600080516020610c2f833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b031690565b61049d610720565b6000546001600160a01b039081169116146104ca5760405162461bcd60e51b81526004016101fe90610b6f565b60015b60045461ffff908116908216101561052e576001600160401b038216600090815260016020908152604080832061ffff8516845290915290205460ff1615610519576105198282610552565b61052861ffff82166001610758565b506104cd565b5050565b600160209081526000928352604080842090915290825290205460ff1681565b61055a610720565b6000546001600160a01b039081169116146105875760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff191690556003909152909120546105d79163ffffffff61010090920482169161078416565b505050565b6105e4610720565b6000546001600160a01b039081169116146106115760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff1916841790556003909152909120546105d79163ffffffff6101009092048216916107c616565b61ffff1660009081526003602052604090205460ff1690565b610684610720565b6000546001600160a01b039081169116146106b15760405162461bcd60e51b81526004016101fe90610b6f565b6001600160a01b0381166106d75760405162461bcd60e51b81526004016101fe90610ab3565b600080546040516001600160a01b0380851693921691600080516020610c2f83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082820160ff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b90505b92915050565b600082820161ffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b600061074f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506107f4565b600082820163ffffffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b60008363ffffffff168363ffffffff16111582906108255760405162461bcd60e51b81526004016101fe9190610a03565b505050900390565b604080518082019091526000808252602082015290565b803561075281610bf8565b600060208284031215610860578081fd5b81356001600160a01b038116811461074f578182fd5b60006020808385031215610888578182fd5b82356001600160401b038082111561089e578384fd5b818501915085601f8301126108b1578384fd5b8135818111156108bf578485fd5b83810291506108cf848301610bd2565b8181528481019084860184860187018a10156108e9578788fd5b8795505b83861015610913576108ff8a82610844565b8352600195909501949186019186016108ed565b5098975050505050505050565b600060208284031215610931578081fd5b815161074f81610bf8565b60006020828403121561094d578081fd5b813561074f81610c09565b6000806040838503121561096a578081fd5b823561ffff8116811461097b578182fd5b9150602083013560ff81168114610990578182fd5b809150509250929050565b6000602082840312156109ac578081fd5b813561074f81610c19565b600080604083850312156109c9578182fd5b82356109d481610c19565b9150602083013561099081610c09565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a2f57858101830151858201604001528201610a13565b81811115610a405783604083870101525b50601f01601f1916929092016040019392505050565b6020808252603d908201527f5065726d697373696f6e20666c61677320696e7075742061727261792069732060408201527f746f6f206269672e2045787065637465642073697a65203c3d20323535000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e672067726f756040820152600760fc1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b81511515815260209182015163ffffffff169181019190915260400190565b61ffff91909116815260200190565b6040518181016001600160401b0381118282101715610bf057600080fd5b604052919050565b8015158114610c0657600080fd5b50565b61ffff81168114610c0657600080fd5b6001600160401b0381168114610c0657600080fdfe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220f41d0717f0059165404bdacb81c965178377fe168e4dd5b3646273e4039a5a9a64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100af5760003560e01c80631d191c33146100b45780633cbdb702146100c9578063400c196c146100dc5780635eda7a7614610105578063715018a61461011a5780637f8c9ea2146101225780638da5cb5b1461014257806396cbd61b14610157578063a51a0a861461016a578063be16b3531461017d578063d8b457fc14610190578063de6eb66e146101a3578063f2fde38b146101b6575b600080fd5b6100c76100c2366004610876565b6101c9565b005b6100c76100d736600461093c565b6102c9565b6100ef6100ea36600461093c565b61031e565b6040516100fc9190610ba4565b60405180910390f35b61010d6103ef565b6040516100fc9190610bc3565b6100c76103f9565b610135610130366004610958565b610466565b6040516100fc91906109f8565b61014a610486565b6040516100fc91906109e4565b6100c761016536600461099b565b610495565b6101356101783660046109b7565b610532565b6100c761018b3660046109b7565b610552565b6100c761019e3660046109b7565b6105dc565b6101356101b136600461093c565b610663565b6100c76101c436600461084f565b61067c565b6101d1610720565b6000546001600160a01b039081169116146102075760405162461bcd60e51b81526004016101fe90610b6f565b60405180910390fd5b60ff815111156102295760405162461bcd60e51b81526004016101fe90610a56565b60045461ffff166000818152600360205260408120805460ff19166001178155905b83518160ff1610156102b057838160ff168151811061026657fe5b60209081029190910181015161ffff8516600090815260028352604080822060ff861680845294529020805460ff19169115159190911790556102aa906001610724565b5061024b565b506004546102c39061ffff166001610758565b50505050565b6102d1610720565b6000546001600160a01b039081169116146102fe5760405162461bcd60e51b81526004016101fe90610b6f565b61ffff166000908152600360205260409020805464ffffffffff19169055565b61032661082d565b604051636f375b3760e11b8152309063de6eb66e90610349908590600401610bc3565b60206040518083038186803b15801561036157600080fd5b505afa158015610375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103999190610920565b6103b55760405162461bcd60e51b81526004016101fe90610b2e565b5061ffff1660009081526003602090815260409182902082518084019093525460ff811615158352610100900463ffffffff169082015290565b60045461ffff1681565b610401610720565b6000546001600160a01b0390811691161461042e5760405162461bcd60e51b81526004016101fe90610b6f565b600080546040516001600160a01b0390911690600080516020610c2f833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b031690565b61049d610720565b6000546001600160a01b039081169116146104ca5760405162461bcd60e51b81526004016101fe90610b6f565b60015b60045461ffff908116908216101561052e576001600160401b038216600090815260016020908152604080832061ffff8516845290915290205460ff1615610519576105198282610552565b61052861ffff82166001610758565b506104cd565b5050565b600160209081526000928352604080842090915290825290205460ff1681565b61055a610720565b6000546001600160a01b039081169116146105875760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff191690556003909152909120546105d79163ffffffff61010090920482169161078416565b505050565b6105e4610720565b6000546001600160a01b039081169116146106115760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff1916841790556003909152909120546105d79163ffffffff6101009092048216916107c616565b61ffff1660009081526003602052604090205460ff1690565b610684610720565b6000546001600160a01b039081169116146106b15760405162461bcd60e51b81526004016101fe90610b6f565b6001600160a01b0381166106d75760405162461bcd60e51b81526004016101fe90610ab3565b600080546040516001600160a01b0380851693921691600080516020610c2f83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082820160ff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b90505b92915050565b600082820161ffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b600061074f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506107f4565b600082820163ffffffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b60008363ffffffff168363ffffffff16111582906108255760405162461bcd60e51b81526004016101fe9190610a03565b505050900390565b604080518082019091526000808252602082015290565b803561075281610bf8565b600060208284031215610860578081fd5b81356001600160a01b038116811461074f578182fd5b60006020808385031215610888578182fd5b82356001600160401b038082111561089e578384fd5b818501915085601f8301126108b1578384fd5b8135818111156108bf578485fd5b83810291506108cf848301610bd2565b8181528481019084860184860187018a10156108e9578788fd5b8795505b83861015610913576108ff8a82610844565b8352600195909501949186019186016108ed565b5098975050505050505050565b600060208284031215610931578081fd5b815161074f81610bf8565b60006020828403121561094d578081fd5b813561074f81610c09565b6000806040838503121561096a578081fd5b823561ffff8116811461097b578182fd5b9150602083013560ff81168114610990578182fd5b809150509250929050565b6000602082840312156109ac578081fd5b813561074f81610c19565b600080604083850312156109c9578182fd5b82356109d481610c19565b9150602083013561099081610c09565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a2f57858101830151858201604001528201610a13565b81811115610a405783604083870101525b50601f01601f1916929092016040019392505050565b6020808252603d908201527f5065726d697373696f6e20666c61677320696e7075742061727261792069732060408201527f746f6f206269672e2045787065637465642073697a65203c3d20323535000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e672067726f756040820152600760fc1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b81511515815260209182015163ffffffff169181019190915260400190565b61ffff91909116815260200190565b6040518181016001600160401b0381118282101715610bf057600080fd5b604052919050565b8015158114610c0657600080fd5b50565b61ffff81168114610c0657600080fd5b6001600160401b0381168114610c0657600080fdfe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220f41d0717f0059165404bdacb81c965178377fe168e4dd5b3646273e4039a5a9a64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "408:2322:10:-:0;;;983:29;;;-1:-1:-1;;983:29:10;1011:1;983:29;;;408:2322;;;;;;;;;-1:-1:-1;865:17:14;885:12;:10;:12::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:14;-1:-1:-1;;;;;907:18:14;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:14;940:43;;907:6;;940:43;831:159;408:2322:10;;590:104:13;677:10;590:104;:::o;408:2322:10:-;;;;;;;", + "deployedSourceMap": "408:2322:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:558;;;;;;:::i;:::-;;:::i;:::-;;2606:122;;;;;;:::i;:::-;;:::i;1694:199::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;983:29;;;:::i;:::-;;;;;;;:::i;1689:145:14:-;;;:::i;856:71:10:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1066:77:14:-;;;:::i;:::-;;;;;;;:::i;2283:220:10:-;;;;;;:::i;:::-;;:::i;634:68::-;;;;;;:::i;:::-;;:::i;2083:197::-;;;;;;:::i;:::-;;:::i;1899:178::-;;;;;;:::i;:::-;;:::i;1580:111::-;;;;;;:::i;:::-;;:::i;1983:240:14:-;;;;;;:::i;:::-;;:::i;1019:558:10:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;;;;;;;;;1205:3:10::1;1182:12;:19;:26;;1170:110;;;;-1:-1:-1::0;;;1170:110:10::1;;;;;;;:::i;:::-;1301:11;::::0;::::1;;1284:14;1362:18:::0;;;:9:::1;:18;::::0;;;;1409:26;;-1:-1:-1;;1409:26:10::1;1301:11:::0;1409:26:::1;::::0;;1362:18;1439:113:::1;1461:12;:19;1457:1;:23;;;1439:113;;;1532:12;1545:1;1532:15;;;;;;;;;;;::::0;;::::1;::::0;;;;;;;1497:29:::1;::::0;::::1;;::::0;;;:20:::1;:29:::0;;;;;;:32:::1;::::0;::::1;::::0;;;;;;;:50;;-1:-1:-1;;1497:50:10::1;::::0;::::1;;::::0;;;::::1;::::0;;1482:8:::1;::::0;-1:-1:-1;1482:5:10::1;:8::i;:::-;;1439:113;;;-1:-1:-1::0;1555:11:10::1;::::0;:18:::1;::::0;:11:::1;;1571:1;1555:15;:18::i;:::-;;1339:1:14;;1019:558:10::0;:::o;2606:122::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;2673:19:10::1;;;::::0;;;:9:::1;:19;::::0;;;;2666:26;;-1:-1:-1;;2666:26:10;;;2606:122::o;1694:199::-;1759:12;;:::i;:::-;1789:26;;-1:-1:-1;;;1789:26:10;;:4;;:16;;:26;;1806:8;;1789:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1777:82;;;;-1:-1:-1;;;1777:82:10;;;;;;;:::i;:::-;-1:-1:-1;1870:19:10;;;;;;:9;:19;;;;;;;;;1863:26;;;;;;;;;;;;;;;;;;;;;;;;;;1694:199::o;983:29::-;;;;;;:::o;1689:145:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:14;;::::1;::::0;-1:-1:-1;;;;;;;;;;;1758:40:14;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:14::1;::::0;;1689:145::o;856:71:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1066:77:14:-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:14;1066:77;:::o;2283:220:10:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;2375:1:10::1;2359:141;2382:11;::::0;::::1;::::0;;::::1;2378:15:::0;;::::1;;2359:141;;;-1:-1:-1::0;;;;;2414:28:10;::::1;;::::0;;;:16:::1;:28;::::0;;;;;;;:31:::1;::::0;::::1;::::0;;;;;;;;::::1;;2410:86;;;2453:37;2476:10;2488:1;2453:22;:37::i;:::-;2395:8;:5;::::0;::::1;2401:1;2395:5;:8::i;:::-;;2359:141;;;;2283:220:::0;:::o;634:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2083:197::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2173:28:10;::::1;2214:5;2173:28:::0;;;:16:::1;:28;::::0;;;;;;;:38:::1;::::0;::::1;::::0;;;;;;;:46;;-1:-1:-1;;2173:46:10::1;::::0;;2223:9:::1;:19:::0;;;;;;:33;:40:::1;::::0;:33:::1;2173:46;2223:33:::0;;::::1;::::0;::::1;::::0;:37:::1;:40;:::i;:::-;;2083:197:::0;;:::o;1899:178::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;1984:28:10;::::1;;::::0;;;2025:4:::1;1984:28;::::0;;;;;;;:38:::1;::::0;::::1;::::0;;;;;;;:45;;-1:-1:-1;;1984:45:10::1;::::0;::::1;::::0;;2033:9:::1;:19:::0;;;;;;:33;:40:::1;::::0;:33:::1;1984:45;2033:33:::0;;::::1;::::0;::::1;::::0;:37:::1;:40;:::i;1580:111::-:0;1657:19;;1640:4;1657:19;;;:9;:19;;;;;:30;;;;1580:111::o;1983:240:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2071:22:14;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:14::1;;;;;;;:::i;:::-;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:14;;::::1;::::0;2172:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2151:38:14;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:14::1;-1:-1:-1::0;;;;;2199:17:14;;;::::1;::::0;;;::::1;::::0;;1983:240::o;590:104:13:-;677:10;590:104;:::o;322:168:8:-;376:5;403;;;426:6;;;;;;;;;418:46;;;;-1:-1:-1;;;418:46:8;;;;;;;:::i;:::-;482:1;-1:-1:-1;322:168:8;;;;;:::o;324:172:5:-;380:6;409:5;;;432:6;;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:5;;;;;;;:::i;767:131:6:-;823:6;848:43;852:1;855;848:43;;;;;;;;;;;;;;;;;:3;:43::i;324:172::-;380:6;409:5;;;432:6;;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:6;;;;;;;:::i;1189:183::-;1273:6;1304:1;1299:6;;:1;:6;;;;1307:12;1291:29;;;;;-1:-1:-1;;;1291:29:6;;;;;;;;:::i;:::-;-1:-1:-1;;;1341:5:6;;;1189:183::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;863:124::-;927:20;;952:30;927:20;952:30;:::i;1532:241::-;;1636:2;1624:9;1615:7;1611:23;1607:32;1604:2;;;-1:-1;;1642:12;1604:2;72:20;;-1:-1;;;;;11567:54;;12360:35;;12350:2;;-1:-1;;12399:12;1780:371;;1906:2;;1894:9;1885:7;1881:23;1877:32;1874:2;;;-1:-1;;1912:12;1874:2;1957:31;;-1:-1;;;;;1997:30;;;1994:2;;;-1:-1;;2030:12;1994:2;2118:6;2107:9;2103:22;;;271:3;264:4;256:6;252:17;248:27;238:2;;-1:-1;;279:12;238:2;326:6;313:20;2008:18;10763:6;10760:30;10757:2;;;-1:-1;;10793:12;10757:2;1906;10830:6;10826:17;;;348:77;1906:2;10826:17;10891:15;348:77;:::i;:::-;453:21;;;510:14;;;;485:17;;;590:27;;;;;587:36;-1:-1;584:2;;;-1:-1;;626:12;584:2;-1:-1;652:10;;646:203;671:6;668:1;665:13;646:203;;;751:34;781:3;769:10;751:34;:::i;:::-;739:47;;693:1;686:9;;;;;800:14;;;;828;;646:203;;;-1:-1;2050:85;1868:283;-1:-1;;;;;;;;1868:283::o;2158:257::-;;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;-1:-1;;2276:12;2238:2;1075:6;1069:13;1087:30;1111:5;1087:30;:::i;2422:239::-;;2525:2;2513:9;2504:7;2500:23;2496:32;2493:2;;;-1:-1;;2531:12;2493:2;1208:6;1195:20;1220:32;1246:5;1220:32;:::i;2668:360::-;;;2786:2;2774:9;2765:7;2761:23;2757:32;2754:2;;;-1:-1;;2792:12;2754:2;1208:6;1195:20;11486:6;12628:5;11475:18;12604:5;12601:34;12591:2;;-1:-1;;12639:12;12591:2;2844:62;-1:-1;2943:2;2980:22;;1464:20;11902:4;11891:16;;12844:33;;12834:2;;-1:-1;;12881:12;12834:2;2951:61;;;;2748:280;;;;;:::o;3035:239::-;;3138:2;3126:9;3117:7;3113:23;3109:32;3106:2;;;-1:-1;;3144:12;3106:2;1343:6;1330:20;1355:32;1381:5;1355:32;:::i;3281:362::-;;;3400:2;3388:9;3379:7;3375:23;3371:32;3368:2;;;-1:-1;;3406:12;3368:2;1343:6;1330:20;1355:32;1381:5;1355:32;:::i;:::-;3458:62;-1:-1;3557:2;3595:22;;1195:20;1220:32;1195:20;1220:32;:::i;6928:222::-;-1:-1;;;;;11567:54;;;;3721:37;;7055:2;7040:18;;7026:124::o;7157:210::-;11388:13;;11381:21;3825:34;;7278:2;7263:18;;7249:118::o;7374:310::-;;7521:2;;7542:17;7535:47;4127:5;11011:12;11168:6;7521:2;7510:9;7506:18;11156:19;-1:-1;11992:101;12006:6;12003:1;12000:13;11992:101;;;12073:11;;;;;12067:18;12054:11;;;11196:14;12054:11;12047:39;12021:10;;11992:101;;;12108:6;12105:1;12102:13;12099:2;;;-1:-1;11196:14;12164:6;7510:9;12155:16;;12148:27;12099:2;-1:-1;12280:7;12264:14;-1:-1;;12260:28;4285:39;;;;11196:14;4285:39;;7492:192;-1:-1;;;7492:192::o;7691:416::-;7891:2;7905:47;;;4561:2;7876:18;;;11156:19;4597:34;11196:14;;;4577:55;4666:31;4652:12;;;4645:53;4717:12;;;7862:245::o;8114:416::-;8314:2;8328:47;;;4968:2;8299:18;;;11156:19;5004:34;11196:14;;;4984:55;-1:-1;;;5059:12;;;5052:30;5101:12;;;8285:245::o;8537:416::-;8737:2;8751:47;;;5352:2;8722:18;;;11156:19;-1:-1;;;11196:14;;;5368:50;5437:12;;;8708:245::o;8960:416::-;9160:2;9174:47;;;5688:2;9145:18;;;11156:19;5724:34;11196:14;;;5704:55;-1:-1;;;5779:12;;;5772:25;5816:12;;;9131:245::o;9383:416::-;9583:2;9597:47;;;9568:18;;;11156:19;6103:34;11196:14;;;6083:55;6157:12;;;9554:245::o;9806:314::-;6429:23;;11388:13;11381:21;3825:34;;6603:4;6592:16;;;6586:23;11705:10;11694:22;6661:14;;;6880:36;;;;9979:2;9964:18;;9950:170::o;10127:218::-;11486:6;11475:18;;;;6773:36;;10252:2;10237:18;;10223:122::o;10352:256::-;10414:2;10408:9;10440:17;;;-1:-1;;;;;10500:34;;10536:22;;;10497:62;10494:2;;;10572:1;;10562:12;10494:2;10414;10581:22;10392:216;;-1:-1;10392:216::o;12425:111::-;12506:5;11388:13;11381:21;12484:5;12481:32;12471:2;;12527:1;;12517:12;12471:2;12465:71;:::o;12543:115::-;11486:6;12628:5;11475:18;12604:5;12601:34;12591:2;;12649:1;;12639:12;12665:115;-1:-1;;;;;11789:30;;12723:34;;12713:2;;12771:1;;12761:12", + "source": "pragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../../node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol\";\n\nimport \"../lib/SafeMath8.sol\";\nimport \"../lib/SafeMath16.sol\";\nimport \"../lib/SafeMath32.sol\";\n\n// Any change to this struct requires CuratorGroupStorage migration\nstruct Group {\n\tbool isExisting;\n\tuint32 curatorsCount;\n}\n\ncontract CuratorGroupStorage is Ownable {\n\tusing SafeMath8 for uint8;\n\tusing SafeMath16 for uint16;\n\tusing SafeMath32 for uint32;\n\n // curatorId => groupId => boolean double-map representing curator membership in group\n mapping (uint64 => mapping (uint16 => bool)) public isCuratorInGroup;\n\t// A generic storage representation of group permissions' flags\n\t// Those flags can have different meanings depending on current logic implementation\n\tmapping (uint16 => mapping (uint8 => bool)) public permissionsByGroupId;\n mapping (uint16 => Group) private groupById;\n\n uint16 public nextGroupId = 1;\n\n function addGroup (bool[] memory _permissions) public onlyOwner {\n\t\t// Prevent possible uint8 overflow infinite loop, TODO: Could just use SafeMath!\n\t\trequire(\n\t\t\t_permissions.length <= 255,\n\t\t\t\"Permission flags input array is too big. Expected size <= 255\"\n\t\t);\n\t\tuint16 groupId = nextGroupId;\n\t\t// Get storage ref\n\t\tGroup storage newGroup = groupById[groupId];\n\t\t// Populate the struct\n\t\tnewGroup.isExisting = true;\n\t\tfor (uint8 i = 0; i < _permissions.length; i.add(1)) {\n\t\t\tpermissionsByGroupId[groupId][i] = _permissions[i];\n\t\t}\n\t\tnextGroupId.add(1);\n\t}\n\n\tfunction groupExists (uint16 _groupId) public view returns (bool) {\n\t\treturn groupById[_groupId].isExisting;\n\t}\n\n\tfunction getExistingGroup (uint16 _groupId) public view returns (Group memory) {\n\t\trequire(\n\t\t\tthis.groupExists(_groupId),\n\t\t\t\"Trying to access unexisting group\"\n\t\t);\n\t\treturn groupById[_groupId];\n\t}\n\n function addCuratorToGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner {\n\t\tisCuratorInGroup[_curatorId][_groupId] = true;\n\t\tgroupById[_groupId].curatorsCount.add(1);\n\t}\n\n function removeCuratorFromGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner {\n\t\tisCuratorInGroup[_curatorId][_groupId] = false;\n\t\tgroupById[_groupId].curatorsCount.sub(1); // Safemath?\n\t}\n\n\tfunction removeCuratorFromAllGroups(uint64 _curatorId) public onlyOwner {\n\t\tfor (uint16 i = 1; i < nextGroupId; i.add(1)) {\n\t\t\tif (isCuratorInGroup[_curatorId][i]) {\n\t\t\t\tremoveCuratorFromGroup(_curatorId, i);\n\t\t\t}\n\t\t}\n\t}\n\n // FIXME: Is there a value in removing a group that has no curators and no channels anymore?\n function removeGroup (uint16 _groupId) public onlyOwner {\n\t\tdelete groupById[_groupId]; // Will set isExisting to false\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", + "exportedSymbols": { + "CuratorGroupStorage": [ + 3114 + ], + "Group": [ + 2887 + ] + }, + "id": 3115, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2877, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "0:33:10" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 2878, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 3403, + "src": "35:71:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", + "file": "../../node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", + "id": 2879, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 4054, + "src": "107:76:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", + "file": "../lib/SafeMath8.sol", + "id": 2880, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 2458, + "src": "185:30:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", + "file": "../lib/SafeMath16.sol", + "id": 2881, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 1873, + "src": "216:31:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "file": "../lib/SafeMath32.sol", + "id": 2882, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 2068, + "src": "248:31:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "Group", + "id": 2887, + "members": [ + { + "constant": false, + "id": 2884, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2887, + "src": "365:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2883, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "365:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2886, + "mutability": "mutable", + "name": "curatorsCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2887, + "src": "383:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2885, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "383:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Group", + "nodeType": "StructDefinition", + "scope": 3115, + "src": "349:57:10", + "visibility": "public" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2888, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "440:7:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 2889, + "nodeType": "InheritanceSpecifier", + "src": "440:7:10" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3114, + "linearizedBaseContracts": [ + 3114, + 3402, + 3293 + ], + "name": "CuratorGroupStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2892, + "libraryName": { + "contractScope": null, + "id": 2890, + "name": "SafeMath8", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2457, + "src": "457:9:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath8_$2457", + "typeString": "library SafeMath8" + } + }, + "nodeType": "UsingForDirective", + "src": "451:26:10", + "typeName": { + "id": 2891, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "471:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + }, + { + "id": 2895, + "libraryName": { + "contractScope": null, + "id": 2893, + "name": "SafeMath16", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1872, + "src": "485:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath16_$1872", + "typeString": "library SafeMath16" + } + }, + "nodeType": "UsingForDirective", + "src": "479:28:10", + "typeName": { + "id": 2894, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "500:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + }, + { + "id": 2898, + "libraryName": { + "contractScope": null, + "id": 2896, + "name": "SafeMath32", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2067, + "src": "515:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath32_$2067", + "typeString": "library SafeMath32" + } + }, + "nodeType": "UsingForDirective", + "src": "509:28:10", + "typeName": { + "id": 2897, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "530:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + { + "constant": false, + "functionSelector": "a51a0a86", + "id": 2904, + "mutability": "mutable", + "name": "isCuratorInGroup", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "634:68:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + }, + "typeName": { + "id": 2903, + "keyType": { + "id": 2899, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "643:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "634:44:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + }, + "valueType": { + "id": 2902, + "keyType": { + "id": 2900, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "662:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "653:24:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + }, + "valueType": { + "id": 2901, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "672:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7f8c9ea2", + "id": 2910, + "mutability": "mutable", + "name": "permissionsByGroupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "856:71:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", + "typeString": "mapping(uint16 => mapping(uint8 => bool))" + }, + "typeName": { + "id": 2909, + "keyType": { + "id": 2905, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "865:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "856:43:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", + "typeString": "mapping(uint16 => mapping(uint8 => bool))" + }, + "valueType": { + "id": 2908, + "keyType": { + "id": 2906, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "884:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "875:23:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + }, + "valueType": { + "id": 2907, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "893:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2914, + "mutability": "mutable", + "name": "groupById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "933:43:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group)" + }, + "typeName": { + "id": 2913, + "keyType": { + "id": 2911, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "942:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "933:25:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group)" + }, + "valueType": { + "contractScope": null, + "id": 2912, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "952:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5eda7a76", + "id": 2917, + "mutability": "mutable", + "name": "nextGroupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "983:29:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2915, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "983:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1011:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "body": { + "id": 2980, + "nodeType": "Block", + "src": "1083:494:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2926, + "name": "_permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2920, + "src": "1182:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1182:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323535", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1205:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "1182:26:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5065726d697373696f6e20666c61677320696e70757420617272617920697320746f6f206269672e2045787065637465642073697a65203c3d20323535", + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1213:63:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", + "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" + }, + "value": "Permission flags input array is too big. Expected size <= 255" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", + "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" + } + ], + "id": 2925, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1170:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1170:110:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2932, + "nodeType": "ExpressionStatement", + "src": "1170:110:10" + }, + { + "assignments": [ + 2934 + ], + "declarations": [ + { + "constant": false, + "id": 2934, + "mutability": "mutable", + "name": "groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2980, + "src": "1284:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2933, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1284:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2936, + "initialValue": { + "argumentTypes": null, + "id": 2935, + "name": "nextGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "1301:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1284:28:10" + }, + { + "assignments": [ + 2938 + ], + "declarations": [ + { + "constant": false, + "id": 2938, + "mutability": "mutable", + "name": "newGroup", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2980, + "src": "1337:22:10", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + }, + "typeName": { + "contractScope": null, + "id": 2937, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "1337:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2942, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2939, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "1362:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 2941, + "indexExpression": { + "argumentTypes": null, + "id": 2940, + "name": "groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "1372:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1362:18:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1337:43:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 2947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2943, + "name": "newGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "1409:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group storage pointer" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2884, + "src": "1409:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1431:4:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1409:26:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2948, + "nodeType": "ExpressionStatement", + "src": "1409:26:10" + }, + { + "body": { + "id": 2972, + "nodeType": "Block", + "src": "1492:60:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2962, + "name": "permissionsByGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2910, + "src": "1497:20:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", + "typeString": "mapping(uint16 => mapping(uint8 => bool))" + } + }, + "id": 2965, + "indexExpression": { + "argumentTypes": null, + "id": 2963, + "name": "groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "1518:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1497:29:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + } + }, + "id": 2966, + "indexExpression": { + "argumentTypes": null, + "id": 2964, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1527:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1497:32:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2967, + "name": "_permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2920, + "src": "1532:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2969, + "indexExpression": { + "argumentTypes": null, + "id": 2968, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1545:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1532:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1497:50:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2971, + "nodeType": "ExpressionStatement", + "src": "1497:50:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2953, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1457:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2954, + "name": "_permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2920, + "src": "1461:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1461:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1457:23:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2973, + "initializationExpression": { + "assignments": [ + 2950 + ], + "declarations": [ + { + "constant": false, + "id": 2950, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2973, + "src": "1444:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2949, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1444:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2952, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1454:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1444:11:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1488:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2957, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1482:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 2958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2290, + "src": "1482:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$returns$_t_uint8_$bound_to$_t_uint8_$", + "typeString": "function (uint8,uint8) pure returns (uint8)" + } + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1482:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 2961, + "nodeType": "ExpressionStatement", + "src": "1482:8:10" + }, + "nodeType": "ForStatement", + "src": "1439:113:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1571:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2974, + "name": "nextGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "1555:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1705, + "src": "1555:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", + "typeString": "function (uint16,uint16) pure returns (uint16)" + } + }, + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1555:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 2979, + "nodeType": "ExpressionStatement", + "src": "1555:18:10" + } + ] + }, + "documentation": null, + "functionSelector": "1d191c33", + "id": 2981, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2923, + "modifierName": { + "argumentTypes": null, + "id": 2922, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1073:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1073:9:10" + } + ], + "name": "addGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2920, + "mutability": "mutable", + "name": "_permissions", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2981, + "src": "1038:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1038:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2919, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1038:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1037:28:10" + }, + "returnParameters": { + "id": 2924, + "nodeType": "ParameterList", + "parameters": [], + "src": "1083:0:10" + }, + "scope": 3114, + "src": "1019:558:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2993, + "nodeType": "Block", + "src": "1646:45:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2988, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "1657:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 2990, + "indexExpression": { + "argumentTypes": null, + "id": 2989, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2983, + "src": "1667:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1657:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "id": 2991, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2884, + "src": "1657:30:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2987, + "id": 2992, + "nodeType": "Return", + "src": "1650:37:10" + } + ] + }, + "documentation": null, + "functionSelector": "de6eb66e", + "id": 2994, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "groupExists", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2983, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2994, + "src": "1602:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2982, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1602:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1601:17:10" + }, + "returnParameters": { + "id": 2987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2986, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2994, + "src": "1640:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2985, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1640:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1639:6:10" + }, + "scope": 3114, + "src": "1580:111:10", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3013, + "nodeType": "Block", + "src": "1773:120:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3004, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "1806:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 3002, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1789:4:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 3003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "groupExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 2994, + "src": "1789:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) view external returns (bool)" + } + }, + "id": 3005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1789:26:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e672067726f7570", + "id": 3006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1820:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", + "typeString": "literal_string \"Trying to access unexisting group\"" + }, + "value": "Trying to access unexisting group" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", + "typeString": "literal_string \"Trying to access unexisting group\"" + } + ], + "id": 3001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1777:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1777:82:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3008, + "nodeType": "ExpressionStatement", + "src": "1777:82:10" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3009, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "1870:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3011, + "indexExpression": { + "argumentTypes": null, + "id": 3010, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "1880:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1870:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "functionReturnParameters": 3000, + "id": 3012, + "nodeType": "Return", + "src": "1863:26:10" + } + ] + }, + "documentation": null, + "functionSelector": "400c196c", + "id": 3014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3014, + "src": "1721:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2995, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1721:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1720:17:10" + }, + "returnParameters": { + "id": 3000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2999, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3014, + "src": "1759:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group" + }, + "typeName": { + "contractScope": null, + "id": 2998, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "1759:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1758:14:10" + }, + "scope": 3114, + "src": "1694:199:10", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3039, + "nodeType": "Block", + "src": "1980:97:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3023, + "name": "isCuratorInGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2904, + "src": "1984:16:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + } + }, + "id": 3026, + "indexExpression": { + "argumentTypes": null, + "id": 3024, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3016, + "src": "2001:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1984:28:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + } + }, + "id": 3027, + "indexExpression": { + "argumentTypes": null, + "id": 3025, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3018, + "src": "2013:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1984:38:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2025:4:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1984:45:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3030, + "nodeType": "ExpressionStatement", + "src": "1984:45:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2071:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3031, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "2033:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3033, + "indexExpression": { + "argumentTypes": null, + "id": 3032, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3018, + "src": "2043:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2033:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "id": 3034, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2886, + "src": "2033:33:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "2033:37:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2033:40:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3038, + "nodeType": "ExpressionStatement", + "src": "2033:40:10" + } + ] + }, + "documentation": null, + "functionSelector": "d8b457fc", + "id": 3040, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3021, + "modifierName": { + "argumentTypes": null, + "id": 3020, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1970:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1970:9:10" + } + ], + "name": "addCuratorToGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3016, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3040, + "src": "1927:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3015, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3018, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3040, + "src": "1946:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3017, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1946:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1926:36:10" + }, + "returnParameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [], + "src": "1980:0:10" + }, + "scope": 3114, + "src": "1899:178:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3065, + "nodeType": "Block", + "src": "2169:111:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3049, + "name": "isCuratorInGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2904, + "src": "2173:16:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + } + }, + "id": 3052, + "indexExpression": { + "argumentTypes": null, + "id": 3050, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3042, + "src": "2190:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2173:28:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + } + }, + "id": 3053, + "indexExpression": { + "argumentTypes": null, + "id": 3051, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "2202:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2173:38:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2214:5:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2173:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3056, + "nodeType": "ExpressionStatement", + "src": "2173:46:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2261:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3057, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "2223:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3059, + "indexExpression": { + "argumentTypes": null, + "id": 3058, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "2233:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2223:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "id": 3060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2886, + "src": "2223:33:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1917, + "src": "2223:37:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 3063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2223:40:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3064, + "nodeType": "ExpressionStatement", + "src": "2223:40:10" + } + ] + }, + "documentation": null, + "functionSelector": "be16b353", + "id": 3066, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3047, + "modifierName": { + "argumentTypes": null, + "id": 3046, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2159:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2159:9:10" + } + ], + "name": "removeCuratorFromGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3042, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3066, + "src": "2116:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3041, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2116:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3044, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3066, + "src": "2135:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3043, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2135:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2115:36:10" + }, + "returnParameters": { + "id": 3048, + "nodeType": "ParameterList", + "parameters": [], + "src": "2169:0:10" + }, + "scope": 3114, + "src": "2083:197:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3099, + "nodeType": "Block", + "src": "2355:148:10", + "statements": [ + { + "body": { + "id": 3097, + "nodeType": "Block", + "src": "2405:95:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3085, + "name": "isCuratorInGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2904, + "src": "2414:16:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + } + }, + "id": 3087, + "indexExpression": { + "argumentTypes": null, + "id": 3086, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3068, + "src": "2431:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2414:28:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + } + }, + "id": 3089, + "indexExpression": { + "argumentTypes": null, + "id": 3088, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2443:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2414:31:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3096, + "nodeType": "IfStatement", + "src": "2410:86:10", + "trueBody": { + "id": 3095, + "nodeType": "Block", + "src": "2447:49:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3091, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3068, + "src": "2476:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 3092, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2488:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 3090, + "name": "removeCuratorFromGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2453:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16)" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2453:37:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3094, + "nodeType": "ExpressionStatement", + "src": "2453:37:10" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3077, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2378:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3078, + "name": "nextGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "2382:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2378:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3098, + "initializationExpression": { + "assignments": [ + 3074 + ], + "declarations": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3098, + "src": "2364:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3073, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2364:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3076, + "initialValue": { + "argumentTypes": null, + "hexValue": "31", + "id": 3075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2375:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2364:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2401:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 3080, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2395:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1705, + "src": "2395:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", + "typeString": "function (uint16,uint16) pure returns (uint16)" + } + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2395:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 3084, + "nodeType": "ExpressionStatement", + "src": "2395:8:10" + }, + "nodeType": "ForStatement", + "src": "2359:141:10" + } + ] + }, + "documentation": null, + "functionSelector": "96cbd61b", + "id": 3100, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3071, + "modifierName": { + "argumentTypes": null, + "id": 3070, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2345:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2345:9:10" + } + ], + "name": "removeCuratorFromAllGroups", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3068, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3100, + "src": "2319:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3067, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2319:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2318:19:10" + }, + "returnParameters": { + "id": 3072, + "nodeType": "ParameterList", + "parameters": [], + "src": "2355:0:10" + }, + "scope": 3114, + "src": "2283:220:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3112, + "nodeType": "Block", + "src": "2662:66:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "2666:26:10", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3107, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "2673:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3109, + "indexExpression": { + "argumentTypes": null, + "id": 3108, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "2683:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2673:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3111, + "nodeType": "ExpressionStatement", + "src": "2666:26:10" + } + ] + }, + "documentation": null, + "functionSelector": "3cbdb702", + "id": 3113, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3105, + "modifierName": { + "argumentTypes": null, + "id": 3104, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2652:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2652:9:10" + } + ], + "name": "removeGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3102, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3113, + "src": "2628:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3101, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2628:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2627:17:10" + }, + "returnParameters": { + "id": 3106, + "nodeType": "ParameterList", + "parameters": [], + "src": "2662:0:10" + }, + "scope": 3114, + "src": "2606:122:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3115, + "src": "408:2322:10" + } + ], + "src": "0:2731:10" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", + "exportedSymbols": { + "CuratorGroupStorage": [ + 3114 + ], + "Group": [ + 2887 + ] + }, + "id": 3115, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2877, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "0:33:10" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 2878, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 3403, + "src": "35:71:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", + "file": "../../node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", + "id": 2879, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 4054, + "src": "107:76:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", + "file": "../lib/SafeMath8.sol", + "id": 2880, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 2458, + "src": "185:30:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", + "file": "../lib/SafeMath16.sol", + "id": 2881, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 1873, + "src": "216:31:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "file": "../lib/SafeMath32.sol", + "id": 2882, + "nodeType": "ImportDirective", + "scope": 3115, + "sourceUnit": 2068, + "src": "248:31:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "Group", + "id": 2887, + "members": [ + { + "constant": false, + "id": 2884, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2887, + "src": "365:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2883, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "365:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2886, + "mutability": "mutable", + "name": "curatorsCount", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2887, + "src": "383:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2885, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "383:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Group", + "nodeType": "StructDefinition", + "scope": 3115, + "src": "349:57:10", + "visibility": "public" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 2888, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "440:7:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 2889, + "nodeType": "InheritanceSpecifier", + "src": "440:7:10" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3114, + "linearizedBaseContracts": [ + 3114, + 3402, + 3293 + ], + "name": "CuratorGroupStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2892, + "libraryName": { + "contractScope": null, + "id": 2890, + "name": "SafeMath8", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2457, + "src": "457:9:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath8_$2457", + "typeString": "library SafeMath8" + } + }, + "nodeType": "UsingForDirective", + "src": "451:26:10", + "typeName": { + "id": 2891, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "471:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + }, + { + "id": 2895, + "libraryName": { + "contractScope": null, + "id": 2893, + "name": "SafeMath16", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1872, + "src": "485:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath16_$1872", + "typeString": "library SafeMath16" + } + }, + "nodeType": "UsingForDirective", + "src": "479:28:10", + "typeName": { + "id": 2894, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "500:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + }, + { + "id": 2898, + "libraryName": { + "contractScope": null, + "id": 2896, + "name": "SafeMath32", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2067, + "src": "515:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath32_$2067", + "typeString": "library SafeMath32" + } + }, + "nodeType": "UsingForDirective", + "src": "509:28:10", + "typeName": { + "id": 2897, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "530:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + }, + { + "constant": false, + "functionSelector": "a51a0a86", + "id": 2904, + "mutability": "mutable", + "name": "isCuratorInGroup", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "634:68:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + }, + "typeName": { + "id": 2903, + "keyType": { + "id": 2899, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "643:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "634:44:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + }, + "valueType": { + "id": 2902, + "keyType": { + "id": 2900, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "662:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "653:24:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + }, + "valueType": { + "id": 2901, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "672:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "7f8c9ea2", + "id": 2910, + "mutability": "mutable", + "name": "permissionsByGroupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "856:71:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", + "typeString": "mapping(uint16 => mapping(uint8 => bool))" + }, + "typeName": { + "id": 2909, + "keyType": { + "id": 2905, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "865:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "856:43:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", + "typeString": "mapping(uint16 => mapping(uint8 => bool))" + }, + "valueType": { + "id": 2908, + "keyType": { + "id": 2906, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "884:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Mapping", + "src": "875:23:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + }, + "valueType": { + "id": 2907, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "893:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2914, + "mutability": "mutable", + "name": "groupById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "933:43:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group)" + }, + "typeName": { + "id": 2913, + "keyType": { + "id": 2911, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "942:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Mapping", + "src": "933:25:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group)" + }, + "valueType": { + "contractScope": null, + "id": 2912, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "952:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "5eda7a76", + "id": 2917, + "mutability": "mutable", + "name": "nextGroupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3114, + "src": "983:29:10", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2915, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "983:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 2916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1011:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "body": { + "id": 2980, + "nodeType": "Block", + "src": "1083:494:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2926, + "name": "_permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2920, + "src": "1182:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1182:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "323535", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1205:3:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "1182:26:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5065726d697373696f6e20666c61677320696e70757420617272617920697320746f6f206269672e2045787065637465642073697a65203c3d20323535", + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1213:63:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", + "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" + }, + "value": "Permission flags input array is too big. Expected size <= 255" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", + "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" + } + ], + "id": 2925, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1170:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1170:110:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2932, + "nodeType": "ExpressionStatement", + "src": "1170:110:10" + }, + { + "assignments": [ + 2934 + ], + "declarations": [ + { + "constant": false, + "id": 2934, + "mutability": "mutable", + "name": "groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2980, + "src": "1284:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2933, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1284:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2936, + "initialValue": { + "argumentTypes": null, + "id": 2935, + "name": "nextGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "1301:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1284:28:10" + }, + { + "assignments": [ + 2938 + ], + "declarations": [ + { + "constant": false, + "id": 2938, + "mutability": "mutable", + "name": "newGroup", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2980, + "src": "1337:22:10", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + }, + "typeName": { + "contractScope": null, + "id": 2937, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "1337:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2942, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2939, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "1362:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 2941, + "indexExpression": { + "argumentTypes": null, + "id": 2940, + "name": "groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "1372:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1362:18:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1337:43:10" + }, + { + "expression": { + "argumentTypes": null, + "id": 2947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2943, + "name": "newGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2938, + "src": "1409:8:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group storage pointer" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2884, + "src": "1409:19:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1431:4:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1409:26:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2948, + "nodeType": "ExpressionStatement", + "src": "1409:26:10" + }, + { + "body": { + "id": 2972, + "nodeType": "Block", + "src": "1492:60:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2962, + "name": "permissionsByGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2910, + "src": "1497:20:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", + "typeString": "mapping(uint16 => mapping(uint8 => bool))" + } + }, + "id": 2965, + "indexExpression": { + "argumentTypes": null, + "id": 2963, + "name": "groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2934, + "src": "1518:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1497:29:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", + "typeString": "mapping(uint8 => bool)" + } + }, + "id": 2966, + "indexExpression": { + "argumentTypes": null, + "id": 2964, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1527:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1497:32:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2967, + "name": "_permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2920, + "src": "1532:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2969, + "indexExpression": { + "argumentTypes": null, + "id": 2968, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1545:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1532:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1497:50:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2971, + "nodeType": "ExpressionStatement", + "src": "1497:50:10" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2953, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1457:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2954, + "name": "_permissions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2920, + "src": "1461:12:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[] memory" + } + }, + "id": 2955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1461:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1457:23:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2973, + "initializationExpression": { + "assignments": [ + 2950 + ], + "declarations": [ + { + "constant": false, + "id": 2950, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2973, + "src": "1444:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2949, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1444:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2952, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 2951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1454:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1444:11:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1488:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2957, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2950, + "src": "1482:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 2958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2290, + "src": "1482:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$returns$_t_uint8_$bound_to$_t_uint8_$", + "typeString": "function (uint8,uint8) pure returns (uint8)" + } + }, + "id": 2960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1482:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 2961, + "nodeType": "ExpressionStatement", + "src": "1482:8:10" + }, + "nodeType": "ForStatement", + "src": "1439:113:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1571:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2974, + "name": "nextGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "1555:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 2976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1705, + "src": "1555:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", + "typeString": "function (uint16,uint16) pure returns (uint16)" + } + }, + "id": 2978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1555:18:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 2979, + "nodeType": "ExpressionStatement", + "src": "1555:18:10" + } + ] + }, + "documentation": null, + "functionSelector": "1d191c33", + "id": 2981, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 2923, + "modifierName": { + "argumentTypes": null, + "id": 2922, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1073:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1073:9:10" + } + ], + "name": "addGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2920, + "mutability": "mutable", + "name": "_permissions", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2981, + "src": "1038:26:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", + "typeString": "bool[]" + }, + "typeName": { + "baseType": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1038:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2919, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1038:6:10", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", + "typeString": "bool[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1037:28:10" + }, + "returnParameters": { + "id": 2924, + "nodeType": "ParameterList", + "parameters": [], + "src": "1083:0:10" + }, + "scope": 3114, + "src": "1019:558:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2993, + "nodeType": "Block", + "src": "1646:45:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2988, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "1657:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 2990, + "indexExpression": { + "argumentTypes": null, + "id": 2989, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2983, + "src": "1667:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1657:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "id": 2991, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 2884, + "src": "1657:30:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2987, + "id": 2992, + "nodeType": "Return", + "src": "1650:37:10" + } + ] + }, + "documentation": null, + "functionSelector": "de6eb66e", + "id": 2994, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "groupExists", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2983, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2994, + "src": "1602:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2982, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1602:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1601:17:10" + }, + "returnParameters": { + "id": 2987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2986, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2994, + "src": "1640:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2985, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1640:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1639:6:10" + }, + "scope": 3114, + "src": "1580:111:10", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3013, + "nodeType": "Block", + "src": "1773:120:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3004, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "1806:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "argumentTypes": null, + "id": 3002, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1789:4:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", + "typeString": "contract CuratorGroupStorage" + } + }, + "id": 3003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "groupExists", + "nodeType": "MemberAccess", + "referencedDeclaration": 2994, + "src": "1789:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) view external returns (bool)" + } + }, + "id": 3005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1789:26:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e672067726f7570", + "id": 3006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1820:35:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", + "typeString": "literal_string \"Trying to access unexisting group\"" + }, + "value": "Trying to access unexisting group" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", + "typeString": "literal_string \"Trying to access unexisting group\"" + } + ], + "id": 3001, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1777:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1777:82:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3008, + "nodeType": "ExpressionStatement", + "src": "1777:82:10" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3009, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "1870:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3011, + "indexExpression": { + "argumentTypes": null, + "id": 3010, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "1880:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1870:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "functionReturnParameters": 3000, + "id": 3012, + "nodeType": "Return", + "src": "1863:26:10" + } + ] + }, + "documentation": null, + "functionSelector": "400c196c", + "id": 3014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2997, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3014, + "src": "1721:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2995, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1721:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1720:17:10" + }, + "returnParameters": { + "id": 3000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2999, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3014, + "src": "1759:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", + "typeString": "struct Group" + }, + "typeName": { + "contractScope": null, + "id": 2998, + "name": "Group", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2887, + "src": "1759:5:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", + "typeString": "struct Group" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1758:14:10" + }, + "scope": 3114, + "src": "1694:199:10", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3039, + "nodeType": "Block", + "src": "1980:97:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3023, + "name": "isCuratorInGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2904, + "src": "1984:16:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + } + }, + "id": 3026, + "indexExpression": { + "argumentTypes": null, + "id": 3024, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3016, + "src": "2001:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1984:28:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + } + }, + "id": 3027, + "indexExpression": { + "argumentTypes": null, + "id": 3025, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3018, + "src": "2013:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1984:38:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2025:4:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1984:45:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3030, + "nodeType": "ExpressionStatement", + "src": "1984:45:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2071:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3031, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "2033:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3033, + "indexExpression": { + "argumentTypes": null, + "id": 3032, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3018, + "src": "2043:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2033:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "id": 3034, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2886, + "src": "2033:33:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "2033:37:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 3037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2033:40:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3038, + "nodeType": "ExpressionStatement", + "src": "2033:40:10" + } + ] + }, + "documentation": null, + "functionSelector": "d8b457fc", + "id": 3040, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3021, + "modifierName": { + "argumentTypes": null, + "id": 3020, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1970:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1970:9:10" + } + ], + "name": "addCuratorToGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3016, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3040, + "src": "1927:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3015, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1927:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3018, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3040, + "src": "1946:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3017, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1946:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1926:36:10" + }, + "returnParameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [], + "src": "1980:0:10" + }, + "scope": 3114, + "src": "1899:178:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3065, + "nodeType": "Block", + "src": "2169:111:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3049, + "name": "isCuratorInGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2904, + "src": "2173:16:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + } + }, + "id": 3052, + "indexExpression": { + "argumentTypes": null, + "id": 3050, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3042, + "src": "2190:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2173:28:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + } + }, + "id": 3053, + "indexExpression": { + "argumentTypes": null, + "id": 3051, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "2202:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2173:38:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2214:5:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2173:46:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3056, + "nodeType": "ExpressionStatement", + "src": "2173:46:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2261:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3057, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "2223:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3059, + "indexExpression": { + "argumentTypes": null, + "id": 3058, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "2233:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2223:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "id": 3060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "curatorsCount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2886, + "src": "2223:33:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 1917, + "src": "2223:37:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", + "typeString": "function (uint32,uint32) pure returns (uint32)" + } + }, + "id": 3063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2223:40:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 3064, + "nodeType": "ExpressionStatement", + "src": "2223:40:10" + } + ] + }, + "documentation": null, + "functionSelector": "be16b353", + "id": 3066, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3047, + "modifierName": { + "argumentTypes": null, + "id": 3046, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2159:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2159:9:10" + } + ], + "name": "removeCuratorFromGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3045, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3042, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3066, + "src": "2116:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3041, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2116:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3044, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3066, + "src": "2135:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3043, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2135:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2115:36:10" + }, + "returnParameters": { + "id": 3048, + "nodeType": "ParameterList", + "parameters": [], + "src": "2169:0:10" + }, + "scope": 3114, + "src": "2083:197:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3099, + "nodeType": "Block", + "src": "2355:148:10", + "statements": [ + { + "body": { + "id": 3097, + "nodeType": "Block", + "src": "2405:95:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3085, + "name": "isCuratorInGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2904, + "src": "2414:16:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", + "typeString": "mapping(uint64 => mapping(uint16 => bool))" + } + }, + "id": 3087, + "indexExpression": { + "argumentTypes": null, + "id": 3086, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3068, + "src": "2431:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2414:28:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", + "typeString": "mapping(uint16 => bool)" + } + }, + "id": 3089, + "indexExpression": { + "argumentTypes": null, + "id": 3088, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2443:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2414:31:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3096, + "nodeType": "IfStatement", + "src": "2410:86:10", + "trueBody": { + "id": 3095, + "nodeType": "Block", + "src": "2447:49:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3091, + "name": "_curatorId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3068, + "src": "2476:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 3092, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2488:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 3090, + "name": "removeCuratorFromGroup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3066, + "src": "2453:22:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_uint16_$returns$__$", + "typeString": "function (uint64,uint16)" + } + }, + "id": 3093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2453:37:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3094, + "nodeType": "ExpressionStatement", + "src": "2453:37:10" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3077, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2378:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3078, + "name": "nextGroupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "2382:11:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2378:15:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3098, + "initializationExpression": { + "assignments": [ + 3074 + ], + "declarations": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3098, + "src": "2364:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3073, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2364:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3076, + "initialValue": { + "argumentTypes": null, + "hexValue": "31", + "id": 3075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2375:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2364:12:10" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2401:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 3080, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "2395:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 3081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1705, + "src": "2395:5:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", + "typeString": "function (uint16,uint16) pure returns (uint16)" + } + }, + "id": 3083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2395:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 3084, + "nodeType": "ExpressionStatement", + "src": "2395:8:10" + }, + "nodeType": "ForStatement", + "src": "2359:141:10" + } + ] + }, + "documentation": null, + "functionSelector": "96cbd61b", + "id": 3100, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3071, + "modifierName": { + "argumentTypes": null, + "id": 3070, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2345:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2345:9:10" + } + ], + "name": "removeCuratorFromAllGroups", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3068, + "mutability": "mutable", + "name": "_curatorId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3100, + "src": "2319:17:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3067, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2319:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2318:19:10" + }, + "returnParameters": { + "id": 3072, + "nodeType": "ParameterList", + "parameters": [], + "src": "2355:0:10" + }, + "scope": 3114, + "src": "2283:220:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3112, + "nodeType": "Block", + "src": "2662:66:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "2666:26:10", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3107, + "name": "groupById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "2673:9:10", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", + "typeString": "mapping(uint16 => struct Group storage ref)" + } + }, + "id": 3109, + "indexExpression": { + "argumentTypes": null, + "id": 3108, + "name": "_groupId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3102, + "src": "2683:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2673:19:10", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Group_$2887_storage", + "typeString": "struct Group storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3111, + "nodeType": "ExpressionStatement", + "src": "2666:26:10" + } + ] + }, + "documentation": null, + "functionSelector": "3cbdb702", + "id": 3113, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3105, + "modifierName": { + "argumentTypes": null, + "id": 3104, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2652:9:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2652:9:10" + } + ], + "name": "removeGroup", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3102, + "mutability": "mutable", + "name": "_groupId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3113, + "src": "2628:15:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 3101, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2628:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2627:17:10" + }, + "returnParameters": { + "id": 3106, + "nodeType": "ParameterList", + "parameters": [], + "src": "2662:0:10" + }, + "scope": 3114, + "src": "2606:122:10", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3115, + "src": "408:2322:10" + } + ], + "src": "0:2731:10" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.584Z", + "devdoc": { + "kind": "dev", + "methods": { + "owner()": { + "details": "Returns the address of the current owner." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/MembershipBridge.json b/smart-contracts/build/contracts/MembershipBridge.json new file mode 100644 index 0000000000..aeb526ea4a --- /dev/null +++ b/smart-contracts/build/contracts/MembershipBridge.json @@ -0,0 +1,1779 @@ +{ + "contractName": "MembershipBridge", + "abi": [ + { + "inputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "_provider", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "runtimeAddressProvider", + "outputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_memberId", + "type": "uint64" + }, + { + "internalType": "address", + "name": "_address", + "type": "address" + } + ], + "name": "setMemberAddress", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + }, + { + "internalType": "uint64", + "name": "_memberId", + "type": "uint64" + } + ], + "name": "isMemberController", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_memberId", + "type": "uint64" + } + ], + "name": "memberExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_memberId\",\"type\":\"uint64\"}],\"name\":\"isMemberController\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_memberId\",\"type\":\"uint64\"}],\"name\":\"memberExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_memberId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setMemberAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol\":\"MembershipBridge\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol\":{\"keccak256\":\"0xb585e161910672e5fd7a59f006ec402dffa73b550fd9af6690e3b7260902f1b0\",\"urls\":[\"bzz-raw://a63ec6822047f53e2b4cb9b6135aedc1263580e7d2a8e65b7953f6af0ef1fa6f\",\"dweb:/ipfs/QmdGrDoPWTHfpu74wHTGtfHLEbKmmtmTUuS1oHgwsg5ru2\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060405161033d38038061033d8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556102d8806100656000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632746272914610051578063284e2be51461009a5780632ca880d4146100d15780637b1abc66146100f5575b600080fd5b6100866004803603604081101561006757600080fd5b5080356001600160a01b031690602001356001600160401b031661011b565b604080519115158252519081900360200190f35b6100cf600480360360408110156100b057600080fd5b5080356001600160401b031690602001356001600160a01b0316610144565b005b6100d961023b565b604080516001600160a01b039092168252519081900360200190f35b6100866004803603602081101561010b57600080fd5b50356001600160401b031661024a565b6001600160401b03166000908152600160205260409020546001600160a01b0391821691161490565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d60208110156101ba57600080fd5b50516001600160a01b031633146102025760405162461bcd60e51b81526004018080602001828103825260338152602001806102706033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b0316159056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65a2646970667358221220325086b06f8d31fa4aaaa1fffc086551e0d75336ad3adb7bf7b6159d98afba5b64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632746272914610051578063284e2be51461009a5780632ca880d4146100d15780637b1abc66146100f5575b600080fd5b6100866004803603604081101561006757600080fd5b5080356001600160a01b031690602001356001600160401b031661011b565b604080519115158252519081900360200190f35b6100cf600480360360408110156100b057600080fd5b5080356001600160401b031690602001356001600160a01b0316610144565b005b6100d961023b565b604080516001600160a01b039092168252519081900360200190f35b6100866004803603602081101561010b57600080fd5b50356001600160401b031661024a565b6001600160401b03166000908152600160205260409020546001600160a01b0391821691161490565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d60208110156101ba57600080fd5b50516001600160a01b031633146102025760405162461bcd60e51b81526004018080602001828103825260338152602001806102706033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b0316159056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65a2646970667358221220325086b06f8d31fa4aaaa1fffc086551e0d75336ad3adb7bf7b6159d98afba5b64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "47:656:3:-:0;;;167:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;167:85:3;649:22:4;:48;;-1:-1:-1;;;;;649:48:4;;;-1:-1:-1;;;;;;649:48:4;;;;;;;;;47:656:3;;;;;;", + "deployedSourceMap": "47:656:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:156;;;;;;;;;;;;;;;;-1:-1:-1;408:156:3;;-1:-1:-1;;;;;408:156:3;;;;;-1:-1:-1;;;;;408:156:3;;:::i;:::-;;;;;;;;;;;;;;;;;;258:147;;;;;;;;;;;;;;;;-1:-1:-1;258:147:3;;-1:-1:-1;;;;;258:147:3;;;;;-1:-1:-1;;;;;258:147:3;;:::i;:::-;;521:52:4;;;:::i;:::-;;;;-1:-1:-1;;;;;521:52:4;;;;;;;;;;;;;;567:134:3;;;;;;;;;;;;;;;;-1:-1:-1;567:134:3;-1:-1:-1;;;;;567:134:3;;:::i;408:156::-;-1:-1:-1;;;;;510:38:3;493:4;510:38;;;:27;:38;;;;;;-1:-1:-1;;;;;510:50:3;;;:38;;:50;;408:156::o;258:147::-;755:22:4;;;;;;;;-1:-1:-1;;;;;755:22:4;-1:-1:-1;;;;;755:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;755:39:4;-1:-1:-1;;;;;741:53:4;:10;:53;729:127;;;;-1:-1:-1;;;729:127:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;349:38:3;;;::::1;;::::0;;;:27:::1;:38;::::0;;;;:49;;-1:-1:-1;;;;;;349:49:3::1;-1:-1:-1::0;;;;;349:49:3;;::::1;::::0;;;::::1;::::0;;258:147::o;521:52:4:-;;;-1:-1:-1;;;;;521:52:4;;:::o;567:134:3:-;-1:-1:-1;;;;;645:38:3;628:4;645:38;;;:27;:38;;;;;;-1:-1:-1;;;;;645:38:3;:52;;567:134::o", + "source": "pragma solidity ^0.6.0;\n\nimport \"./auth.sol\";\n\ncontract MembershipBridge is RuntimeManageable {\n mapping (uint64 => address) private controllerAddressByMemberId;\n\n\tconstructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {}\n\n function setMemberAddress(uint64 _memberId, address _address) public onlyRuntime {\n controllerAddressByMemberId[_memberId] = _address;\n }\n\n\tfunction isMemberController(address _address, uint64 _memberId) public view returns (bool) {\n\t\treturn controllerAddressByMemberId[_memberId] == _address;\n\t}\n\n\tfunction memberExists(uint64 _memberId) public view returns (bool) {\n\t\treturn controllerAddressByMemberId[_memberId] == address(0);\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", + "exportedSymbols": { + "MembershipBridge": [ + 1613 + ] + }, + "id": 1614, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1547, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:3" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "file": "./auth.sol", + "id": 1548, + "nodeType": "ImportDirective", + "scope": 1614, + "sourceUnit": 1678, + "src": "25:20:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1549, + "name": "RuntimeManageable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1677, + "src": "76:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeManageable_$1677", + "typeString": "contract RuntimeManageable" + } + }, + "id": 1550, + "nodeType": "InheritanceSpecifier", + "src": "76:17:3" + } + ], + "contractDependencies": [ + 1677 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1613, + "linearizedBaseContracts": [ + 1613, + 1677 + ], + "name": "MembershipBridge", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1554, + "mutability": "mutable", + "name": "controllerAddressByMemberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1613, + "src": "100:63:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "typeName": { + "id": 1553, + "keyType": { + "id": 1551, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "109:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "100:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "valueType": { + "id": 1552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1562, + "nodeType": "Block", + "src": "250:2:3", + "statements": [] + }, + "documentation": null, + "id": 1563, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1559, + "name": "_provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1556, + "src": "239:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + } + ], + "id": 1560, + "modifierName": { + "argumentTypes": null, + "id": 1558, + "name": "RuntimeManageable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "221:17:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", + "typeString": "type(contract RuntimeManageable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "221:28:3" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1556, + "mutability": "mutable", + "name": "_provider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1563, + "src": "180:32:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1555, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "180:22:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "179:34:3" + }, + "returnParameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [], + "src": "250:0:3" + }, + "scope": 1613, + "src": "167:85:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "339:66:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1572, + "name": "controllerAddressByMemberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "349:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1574, + "indexExpression": { + "argumentTypes": null, + "id": 1573, + "name": "_memberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "377:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "349:38:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1575, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1567, + "src": "390:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "349:49:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1577, + "nodeType": "ExpressionStatement", + "src": "349:49:3" + } + ] + }, + "documentation": null, + "functionSelector": "284e2be5", + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1570, + "modifierName": { + "argumentTypes": null, + "id": 1569, + "name": "onlyRuntime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "327:11:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "327:11:3" + } + ], + "name": "setMemberAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1565, + "mutability": "mutable", + "name": "_memberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1579, + "src": "284:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1564, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "284:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1567, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1579, + "src": "302:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "302:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "283:36:3" + }, + "returnParameters": { + "id": 1571, + "nodeType": "ParameterList", + "parameters": [], + "src": "339:0:3" + }, + "scope": 1613, + "src": "258:147:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1594, + "nodeType": "Block", + "src": "499:65:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1588, + "name": "controllerAddressByMemberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "510:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1590, + "indexExpression": { + "argumentTypes": null, + "id": 1589, + "name": "_memberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "538:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "510:38:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1591, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1581, + "src": "552:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "510:50:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1587, + "id": 1593, + "nodeType": "Return", + "src": "503:57:3" + } + ] + }, + "documentation": null, + "functionSelector": "27462729", + "id": 1595, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isMemberController", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1581, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1595, + "src": "436:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "436:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1583, + "mutability": "mutable", + "name": "_memberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1595, + "src": "454:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1582, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "454:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "435:36:3" + }, + "returnParameters": { + "id": 1587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1586, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1595, + "src": "493:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1585, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "493:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "492:6:3" + }, + "scope": 1613, + "src": "408:156:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1611, + "nodeType": "Block", + "src": "634:67:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1602, + "name": "controllerAddressByMemberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "645:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1604, + "indexExpression": { + "argumentTypes": null, + "id": 1603, + "name": "_memberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "673:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "645:38:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "687:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1605, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "687:7:3", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "687:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "645:52:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1601, + "id": 1610, + "nodeType": "Return", + "src": "638:59:3" + } + ] + }, + "documentation": null, + "functionSelector": "7b1abc66", + "id": 1612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "memberExists", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "_memberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1612, + "src": "589:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1596, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "589:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "588:18:3" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1612, + "src": "628:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1599, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "628:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "627:6:3" + }, + "scope": 1613, + "src": "567:134:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1614, + "src": "47:656:3" + } + ], + "src": "0:704:3" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", + "exportedSymbols": { + "MembershipBridge": [ + 1613 + ] + }, + "id": 1614, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1547, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:3" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "file": "./auth.sol", + "id": 1548, + "nodeType": "ImportDirective", + "scope": 1614, + "sourceUnit": 1678, + "src": "25:20:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1549, + "name": "RuntimeManageable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1677, + "src": "76:17:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeManageable_$1677", + "typeString": "contract RuntimeManageable" + } + }, + "id": 1550, + "nodeType": "InheritanceSpecifier", + "src": "76:17:3" + } + ], + "contractDependencies": [ + 1677 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1613, + "linearizedBaseContracts": [ + 1613, + 1677 + ], + "name": "MembershipBridge", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1554, + "mutability": "mutable", + "name": "controllerAddressByMemberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1613, + "src": "100:63:3", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "typeName": { + "id": 1553, + "keyType": { + "id": 1551, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "109:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "100:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + }, + "valueType": { + "id": 1552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "119:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 1562, + "nodeType": "Block", + "src": "250:2:3", + "statements": [] + }, + "documentation": null, + "id": 1563, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 1559, + "name": "_provider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1556, + "src": "239:9:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + } + ], + "id": 1560, + "modifierName": { + "argumentTypes": null, + "id": 1558, + "name": "RuntimeManageable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1677, + "src": "221:17:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", + "typeString": "type(contract RuntimeManageable)" + } + }, + "nodeType": "ModifierInvocation", + "src": "221:28:3" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1556, + "mutability": "mutable", + "name": "_provider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1563, + "src": "180:32:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1555, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "180:22:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "179:34:3" + }, + "returnParameters": { + "id": 1561, + "nodeType": "ParameterList", + "parameters": [], + "src": "250:0:3" + }, + "scope": 1613, + "src": "167:85:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "339:66:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1572, + "name": "controllerAddressByMemberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "349:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1574, + "indexExpression": { + "argumentTypes": null, + "id": 1573, + "name": "_memberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1565, + "src": "377:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "349:38:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1575, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1567, + "src": "390:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "349:49:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1577, + "nodeType": "ExpressionStatement", + "src": "349:49:3" + } + ] + }, + "documentation": null, + "functionSelector": "284e2be5", + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1570, + "modifierName": { + "argumentTypes": null, + "id": 1569, + "name": "onlyRuntime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1662, + "src": "327:11:3", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "327:11:3" + } + ], + "name": "setMemberAddress", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1565, + "mutability": "mutable", + "name": "_memberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1579, + "src": "284:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1564, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "284:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1567, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1579, + "src": "302:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1566, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "302:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "283:36:3" + }, + "returnParameters": { + "id": 1571, + "nodeType": "ParameterList", + "parameters": [], + "src": "339:0:3" + }, + "scope": 1613, + "src": "258:147:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1594, + "nodeType": "Block", + "src": "499:65:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1588, + "name": "controllerAddressByMemberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "510:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1590, + "indexExpression": { + "argumentTypes": null, + "id": 1589, + "name": "_memberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1583, + "src": "538:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "510:38:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1591, + "name": "_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1581, + "src": "552:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "510:50:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1587, + "id": 1593, + "nodeType": "Return", + "src": "503:57:3" + } + ] + }, + "documentation": null, + "functionSelector": "27462729", + "id": 1595, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isMemberController", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1581, + "mutability": "mutable", + "name": "_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1595, + "src": "436:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1580, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "436:7:3", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1583, + "mutability": "mutable", + "name": "_memberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1595, + "src": "454:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1582, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "454:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "435:36:3" + }, + "returnParameters": { + "id": 1587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1586, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1595, + "src": "493:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1585, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "493:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "492:6:3" + }, + "scope": 1613, + "src": "408:156:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1611, + "nodeType": "Block", + "src": "634:67:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1602, + "name": "controllerAddressByMemberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1554, + "src": "645:27:3", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", + "typeString": "mapping(uint64 => address)" + } + }, + "id": 1604, + "indexExpression": { + "argumentTypes": null, + "id": 1603, + "name": "_memberId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "673:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "645:38:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "695:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "687:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1605, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "687:7:3", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "687:10:3", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "645:52:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1601, + "id": 1610, + "nodeType": "Return", + "src": "638:59:3" + } + ] + }, + "documentation": null, + "functionSelector": "7b1abc66", + "id": 1612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "memberExists", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "_memberId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1612, + "src": "589:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1596, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "589:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "588:18:3" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1612, + "src": "628:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1599, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "628:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "627:6:3" + }, + "scope": 1613, + "src": "567:134:3", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1614, + "src": "47:656:3" + } + ], + "src": "0:704:3" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.542Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Migrations.json b/smart-contracts/build/contracts/Migrations.json new file mode 100644 index 0000000000..a61d0886e3 --- /dev/null +++ b/smart-contracts/build/contracts/Migrations.json @@ -0,0 +1,1425 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol\":{\"keccak256\":\"0x37c36653e429c66f8a852bca33119df8d5a41f9b6c6a3584595fd00c21e00c03\",\"urls\":[\"bzz-raw://39a5465b957aeb86fbc39a386e0ef075af7e564a85543d13347c0771b1cad72c\",\"dweb:/ipfs/QmZ3ghZnW5uVfn25xr49La1XEwuJeQYtT66cWfEor2T3ZZ\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b4806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea264697066735822122090625a9faf923f1a7d1c640d11e0b278fe3d7723ecec831f7e53e095c802ee1a64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea264697066735822122090625a9faf923f1a7d1c640d11e0b278fe3d7723ecec831f7e53e095c802ee1a64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "25:480:1:-:0;;;114:50;;;;;;;;;-1:-1:-1;141:5:1;:18;;-1:-1:-1;;;;;;141:18:1;149:10;141:18;;;25:480;;;;;;", + "deployedSourceMap": "25:480:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;338:165;;;;;;;;;;;;;;;;-1:-1:-1;338:165:1;-1:-1:-1;;;;;338:165:1;;:::i;:::-;;73:36;;;:::i;:::-;;;;;;;;;;;;;;;;49:20;;;:::i;:::-;;;;-1:-1:-1;;;;;49:20:1;;;;;;;;;;;;;;231:103;;;;;;;;;;;;;;;;-1:-1:-1;231:103:1;;:::i;338:165::-;214:5;;-1:-1:-1;;;;;214:5:1;200:10;:19;196:26;;;400:19:::1;433:11;400:45;;451:8;-1:-1:-1::0;;;;;451:21:1::1;;473:24;;451:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;221:1;196:26:::0;338:165;:::o;73:36::-;;;;:::o;49:20::-;;;-1:-1:-1;;;;;49:20:1;;:::o;231:103::-;214:5;;-1:-1:-1;;;;;214:5:1;200:10;:19;196:26;;;293:24:::1;:36:::0;231:103::o", + "source": "pragma solidity ^0.6.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 1434 + ] + }, + "id": 1435, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1379, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1434, + "linearizedBaseContracts": [ + 1434 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 1381, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1434, + "src": "49:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 1383, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1434, + "src": "73:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1382, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "73:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1391, + "nodeType": "Block", + "src": "135:29:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1386, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "141:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1387, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "149:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "149:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "141:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1390, + "nodeType": "ExpressionStatement", + "src": "141:18:1" + } + ] + }, + "documentation": null, + "id": 1392, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1384, + "nodeType": "ParameterList", + "parameters": [], + "src": "125:2:1" + }, + "returnParameters": { + "id": 1385, + "nodeType": "ParameterList", + "parameters": [], + "src": "135:0:1" + }, + "scope": 1434, + "src": "114:50:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1400, + "nodeType": "Block", + "src": "190:37:1", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "200:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1396, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "214:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "200:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1399, + "nodeType": "IfStatement", + "src": "196:26:1", + "trueBody": { + "id": 1398, + "nodeType": "PlaceholderStatement", + "src": "221:1:1" + } + } + ] + }, + "documentation": null, + "id": 1401, + "name": "restricted", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1393, + "nodeType": "ParameterList", + "parameters": [], + "src": "187:2:1" + }, + "src": "168:59:1", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1412, + "nodeType": "Block", + "src": "287:47:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1408, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1383, + "src": "293:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1409, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "320:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "293:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "293:36:1" + } + ] + }, + "documentation": null, + "functionSelector": "fdacd576", + "id": 1413, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1406, + "modifierName": { + "argumentTypes": null, + "id": 1405, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "276:10:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "276:10:1" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "completed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1413, + "src": "253:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1402, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "253:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "252:16:1" + }, + "returnParameters": { + "id": 1407, + "nodeType": "ParameterList", + "parameters": [], + "src": "287:0:1" + }, + "scope": 1434, + "src": "231:103:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1432, + "nodeType": "Block", + "src": "394:109:1", + "statements": [ + { + "assignments": [ + 1421 + ], + "declarations": [ + { + "constant": false, + "id": 1421, + "mutability": "mutable", + "name": "upgraded", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1432, + "src": "400:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 1420, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1434, + "src": "400:10:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1425, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1423, + "name": "new_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "433:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1422, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1434, + "src": "422:10:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$1434_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "422:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "400:45:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1429, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1383, + "src": "473:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1426, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1421, + "src": "451:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + } + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 1413, + "src": "451:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "451:47:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1431, + "nodeType": "ExpressionStatement", + "src": "451:47:1" + } + ] + }, + "documentation": null, + "functionSelector": "0900f010", + "id": 1433, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1418, + "modifierName": { + "argumentTypes": null, + "id": 1417, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "383:10:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "383:10:1" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1415, + "mutability": "mutable", + "name": "new_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1433, + "src": "355:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "355:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:21:1" + }, + "returnParameters": { + "id": 1419, + "nodeType": "ParameterList", + "parameters": [], + "src": "394:0:1" + }, + "scope": 1434, + "src": "338:165:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1435, + "src": "25:480:1" + } + ], + "src": "0:506:1" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 1434 + ] + }, + "id": 1435, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1379, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1434, + "linearizedBaseContracts": [ + 1434 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 1381, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1434, + "src": "49:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 1383, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1434, + "src": "73:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1382, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "73:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1391, + "nodeType": "Block", + "src": "135:29:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1386, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "141:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1387, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "149:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "149:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "141:18:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1390, + "nodeType": "ExpressionStatement", + "src": "141:18:1" + } + ] + }, + "documentation": null, + "id": 1392, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1384, + "nodeType": "ParameterList", + "parameters": [], + "src": "125:2:1" + }, + "returnParameters": { + "id": 1385, + "nodeType": "ParameterList", + "parameters": [], + "src": "135:0:1" + }, + "scope": 1434, + "src": "114:50:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1400, + "nodeType": "Block", + "src": "190:37:1", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1394, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "200:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1396, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1381, + "src": "214:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "200:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1399, + "nodeType": "IfStatement", + "src": "196:26:1", + "trueBody": { + "id": 1398, + "nodeType": "PlaceholderStatement", + "src": "221:1:1" + } + } + ] + }, + "documentation": null, + "id": 1401, + "name": "restricted", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1393, + "nodeType": "ParameterList", + "parameters": [], + "src": "187:2:1" + }, + "src": "168:59:1", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1412, + "nodeType": "Block", + "src": "287:47:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1408, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1383, + "src": "293:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1409, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "320:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "293:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1411, + "nodeType": "ExpressionStatement", + "src": "293:36:1" + } + ] + }, + "documentation": null, + "functionSelector": "fdacd576", + "id": 1413, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1406, + "modifierName": { + "argumentTypes": null, + "id": 1405, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "276:10:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "276:10:1" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "completed", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1413, + "src": "253:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1402, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "253:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "252:16:1" + }, + "returnParameters": { + "id": 1407, + "nodeType": "ParameterList", + "parameters": [], + "src": "287:0:1" + }, + "scope": 1434, + "src": "231:103:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1432, + "nodeType": "Block", + "src": "394:109:1", + "statements": [ + { + "assignments": [ + 1421 + ], + "declarations": [ + { + "constant": false, + "id": 1421, + "mutability": "mutable", + "name": "upgraded", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1432, + "src": "400:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 1420, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1434, + "src": "400:10:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1425, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1423, + "name": "new_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1415, + "src": "433:11:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1422, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1434, + "src": "422:10:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$1434_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 1424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "422:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "400:45:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1429, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1383, + "src": "473:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1426, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1421, + "src": "451:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$1434", + "typeString": "contract Migrations" + } + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 1413, + "src": "451:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 1430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "451:47:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1431, + "nodeType": "ExpressionStatement", + "src": "451:47:1" + } + ] + }, + "documentation": null, + "functionSelector": "0900f010", + "id": 1433, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 1418, + "modifierName": { + "argumentTypes": null, + "id": 1417, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "383:10:1", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "383:10:1" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1415, + "mutability": "mutable", + "name": "new_address", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1433, + "src": "355:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1414, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "355:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:21:1" + }, + "returnParameters": { + "id": 1419, + "nodeType": "ParameterList", + "parameters": [], + "src": "394:0:1" + }, + "scope": 1434, + "src": "338:165:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1435, + "src": "25:480:1" + } + ], + "src": "0:506:1" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.538Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Ownable.json b/smart-contracts/build/contracts/Ownable.json new file mode 100644 index 0000000000..aba530d8ed --- /dev/null +++ b/smart-contracts/build/contracts/Ownable.json @@ -0,0 +1,2844 @@ +{ + "contractName": "Ownable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\nimport \"../GSN/Context.sol\";\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\ncontract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n address msgSender = _msgSender();\n _owner = msgSender;\n emit OwnershipTransferred(address(0), msgSender);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(_owner == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 3402 + ] + }, + "id": 3403, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3295, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:14" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", + "file": "../GSN/Context.sol", + "id": 3296, + "nodeType": "ImportDirective", + "scope": 3403, + "sourceUnit": 3294, + "src": "58:28:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3298, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3293, + "src": "602:7:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$3293", + "typeString": "contract Context" + } + }, + "id": 3299, + "nodeType": "InheritanceSpecifier", + "src": "602:7:14" + } + ], + "contractDependencies": [ + 3293 + ], + "contractKind": "contract", + "documentation": { + "id": 3297, + "nodeType": "StructuredDocumentation", + "src": "87:494:14", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 3402, + "linearizedBaseContracts": [ + 3402, + 3293 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3301, + "mutability": "mutable", + "name": "_owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3402, + "src": "616:22:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "616:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 3307, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3303, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3307, + "src": "672:29:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "672:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3305, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3307, + "src": "703:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "703:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "671:57:14" + }, + "src": "645:84:14" + }, + { + "body": { + "id": 3328, + "nodeType": "Block", + "src": "855:135:14", + "statements": [ + { + "assignments": [ + 3312 + ], + "declarations": [ + { + "constant": false, + "id": 3312, + "mutability": "mutable", + "name": "msgSender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3328, + "src": "865:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "865:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3315, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3313, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "885:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "885:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "865:32:14" + }, + { + "expression": { + "argumentTypes": null, + "id": 3318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "907:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3317, + "name": "msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3312, + "src": "916:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "907:18:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3319, + "nodeType": "ExpressionStatement", + "src": "907:18:14" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "969:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "961:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "961:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "961:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3325, + "name": "msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3312, + "src": "973:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3320, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3307, + "src": "940:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "940:43:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3327, + "nodeType": "EmitStatement", + "src": "935:48:14" + } + ] + }, + "documentation": { + "id": 3308, + "nodeType": "StructuredDocumentation", + "src": "735:91:14", + "text": " @dev Initializes the contract setting the deployer as the initial owner." + }, + "id": 3329, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3309, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:2:14" + }, + "returnParameters": { + "id": 3310, + "nodeType": "ParameterList", + "parameters": [], + "src": "855:0:14" + }, + "scope": 3402, + "src": "831:159:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3337, + "nodeType": "Block", + "src": "1113:30:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3335, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1130:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3334, + "id": 3336, + "nodeType": "Return", + "src": "1123:13:14" + } + ] + }, + "documentation": { + "id": 3330, + "nodeType": "StructuredDocumentation", + "src": "996:65:14", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 3338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3331, + "nodeType": "ParameterList", + "parameters": [], + "src": "1080:2:14" + }, + "returnParameters": { + "id": 3334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3338, + "src": "1104:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1103:9:14" + }, + "scope": 3402, + "src": "1066:77:14", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3350, + "nodeType": "Block", + "src": "1252:95:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3342, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1270:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3343, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "1280:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1270:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "id": 3346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1294:34:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + }, + "value": "Ownable: caller is not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + } + ], + "id": 3341, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1262:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1262:67:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3348, + "nodeType": "ExpressionStatement", + "src": "1262:67:14" + }, + { + "id": 3349, + "nodeType": "PlaceholderStatement", + "src": "1339:1:14" + } + ] + }, + "documentation": { + "id": 3339, + "nodeType": "StructuredDocumentation", + "src": "1149:77:14", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 3351, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [], + "src": "1249:2:14" + }, + "src": "1231:116:14", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3372, + "nodeType": "Block", + "src": "1743:91:14", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3358, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1779:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1795:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1787:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1787:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1787:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 3357, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3307, + "src": "1758:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1758:40:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3364, + "nodeType": "EmitStatement", + "src": "1753:45:14" + }, + { + "expression": { + "argumentTypes": null, + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3365, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1808:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1825:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1817:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1817:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1817:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1808:19:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3371, + "nodeType": "ExpressionStatement", + "src": "1808:19:14" + } + ] + }, + "documentation": { + "id": 3352, + "nodeType": "StructuredDocumentation", + "src": "1353:331:14", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 3373, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3355, + "modifierName": { + "argumentTypes": null, + "id": 3354, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1733:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1733:9:14" + } + ], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3353, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:2:14" + }, + "returnParameters": { + "id": 3356, + "nodeType": "ParameterList", + "parameters": [], + "src": "1743:0:14" + }, + "scope": 3402, + "src": "1689:145:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3400, + "nodeType": "Block", + "src": "2053:170:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3382, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "2071:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2091:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2083:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2083:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2083:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2071:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", + "id": 3388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2095:40:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + }, + "value": "Ownable: new owner is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + } + ], + "id": 3381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2063:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2063:73:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3390, + "nodeType": "ExpressionStatement", + "src": "2063:73:14" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3392, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "2172:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3393, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "2180:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3391, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3307, + "src": "2151:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2151:38:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3395, + "nodeType": "EmitStatement", + "src": "2146:43:14" + }, + { + "expression": { + "argumentTypes": null, + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3396, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "2199:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3397, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "2208:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2199:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3399, + "nodeType": "ExpressionStatement", + "src": "2199:17:14" + } + ] + }, + "documentation": { + "id": 3374, + "nodeType": "StructuredDocumentation", + "src": "1840:138:14", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 3401, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3379, + "modifierName": { + "argumentTypes": null, + "id": 3378, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2043:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2043:9:14" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3401, + "src": "2010:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2010:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2009:18:14" + }, + "returnParameters": { + "id": 3380, + "nodeType": "ParameterList", + "parameters": [], + "src": "2053:0:14" + }, + "scope": 3402, + "src": "1983:240:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 3403, + "src": "582:1643:14" + } + ], + "src": "33:2193:14" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "exportedSymbols": { + "Ownable": [ + 3402 + ] + }, + "id": 3403, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3295, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:14" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", + "file": "../GSN/Context.sol", + "id": 3296, + "nodeType": "ImportDirective", + "scope": 3403, + "sourceUnit": 3294, + "src": "58:28:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3298, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3293, + "src": "602:7:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$3293", + "typeString": "contract Context" + } + }, + "id": 3299, + "nodeType": "InheritanceSpecifier", + "src": "602:7:14" + } + ], + "contractDependencies": [ + 3293 + ], + "contractKind": "contract", + "documentation": { + "id": 3297, + "nodeType": "StructuredDocumentation", + "src": "87:494:14", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 3402, + "linearizedBaseContracts": [ + 3402, + 3293 + ], + "name": "Ownable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 3301, + "mutability": "mutable", + "name": "_owner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3402, + "src": "616:22:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "616:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": null, + "id": 3307, + "name": "OwnershipTransferred", + "nodeType": "EventDefinition", + "parameters": { + "id": 3306, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3303, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3307, + "src": "672:29:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "672:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3305, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3307, + "src": "703:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3304, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "703:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "671:57:14" + }, + "src": "645:84:14" + }, + { + "body": { + "id": 3328, + "nodeType": "Block", + "src": "855:135:14", + "statements": [ + { + "assignments": [ + 3312 + ], + "declarations": [ + { + "constant": false, + "id": 3312, + "mutability": "mutable", + "name": "msgSender", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3328, + "src": "865:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "865:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3315, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3313, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "885:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "885:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "865:32:14" + }, + { + "expression": { + "argumentTypes": null, + "id": 3318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3316, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "907:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3317, + "name": "msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3312, + "src": "916:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "907:18:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3319, + "nodeType": "ExpressionStatement", + "src": "907:18:14" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "969:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "961:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "961:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "961:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3325, + "name": "msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3312, + "src": "973:9:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3320, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3307, + "src": "940:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "940:43:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3327, + "nodeType": "EmitStatement", + "src": "935:48:14" + } + ] + }, + "documentation": { + "id": 3308, + "nodeType": "StructuredDocumentation", + "src": "735:91:14", + "text": " @dev Initializes the contract setting the deployer as the initial owner." + }, + "id": 3329, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3309, + "nodeType": "ParameterList", + "parameters": [], + "src": "843:2:14" + }, + "returnParameters": { + "id": 3310, + "nodeType": "ParameterList", + "parameters": [], + "src": "855:0:14" + }, + "scope": 3402, + "src": "831:159:14", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3337, + "nodeType": "Block", + "src": "1113:30:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3335, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1130:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 3334, + "id": 3336, + "nodeType": "Return", + "src": "1123:13:14" + } + ] + }, + "documentation": { + "id": 3330, + "nodeType": "StructuredDocumentation", + "src": "996:65:14", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 3338, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3331, + "nodeType": "ParameterList", + "parameters": [], + "src": "1080:2:14" + }, + "returnParameters": { + "id": 3334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3333, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3338, + "src": "1104:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1104:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1103:9:14" + }, + "scope": 3402, + "src": "1066:77:14", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3350, + "nodeType": "Block", + "src": "1252:95:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3342, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1270:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3343, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "1280:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1280:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1270:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", + "id": 3346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1294:34:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + }, + "value": "Ownable: caller is not the owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", + "typeString": "literal_string \"Ownable: caller is not the owner\"" + } + ], + "id": 3341, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1262:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1262:67:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3348, + "nodeType": "ExpressionStatement", + "src": "1262:67:14" + }, + { + "id": 3349, + "nodeType": "PlaceholderStatement", + "src": "1339:1:14" + } + ] + }, + "documentation": { + "id": 3339, + "nodeType": "StructuredDocumentation", + "src": "1149:77:14", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 3351, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 3340, + "nodeType": "ParameterList", + "parameters": [], + "src": "1249:2:14" + }, + "src": "1231:116:14", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3372, + "nodeType": "Block", + "src": "1743:91:14", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3358, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1779:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1795:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1787:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3359, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1787:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1787:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 3357, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3307, + "src": "1758:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1758:40:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3364, + "nodeType": "EmitStatement", + "src": "1753:45:14" + }, + { + "expression": { + "argumentTypes": null, + "id": 3370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3365, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "1808:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1825:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1817:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1817:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1817:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1808:19:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3371, + "nodeType": "ExpressionStatement", + "src": "1808:19:14" + } + ] + }, + "documentation": { + "id": 3352, + "nodeType": "StructuredDocumentation", + "src": "1353:331:14", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 3373, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3355, + "modifierName": { + "argumentTypes": null, + "id": 3354, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1733:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1733:9:14" + } + ], + "name": "renounceOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3353, + "nodeType": "ParameterList", + "parameters": [], + "src": "1715:2:14" + }, + "returnParameters": { + "id": 3356, + "nodeType": "ParameterList", + "parameters": [], + "src": "1743:0:14" + }, + "scope": 3402, + "src": "1689:145:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3400, + "nodeType": "Block", + "src": "2053:170:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3382, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "2071:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 3385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2091:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2083:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2083:7:14", + "typeDescriptions": { + "typeIdentifier": null, + "typeString": null + } + } + }, + "id": 3386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2083:10:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2071:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", + "id": 3388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2095:40:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + }, + "value": "Ownable: new owner is the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", + "typeString": "literal_string \"Ownable: new owner is the zero address\"" + } + ], + "id": 3381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2063:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2063:73:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3390, + "nodeType": "ExpressionStatement", + "src": "2063:73:14" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3392, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "2172:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3393, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "2180:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3391, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3307, + "src": "2151:20:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2151:38:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3395, + "nodeType": "EmitStatement", + "src": "2146:43:14" + }, + { + "expression": { + "argumentTypes": null, + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 3396, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3301, + "src": "2199:6:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3397, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "2208:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2199:17:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3399, + "nodeType": "ExpressionStatement", + "src": "2199:17:14" + } + ] + }, + "documentation": { + "id": 3374, + "nodeType": "StructuredDocumentation", + "src": "1840:138:14", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 3401, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3379, + "modifierName": { + "argumentTypes": null, + "id": 3378, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "2043:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2043:9:14" + } + ], + "name": "transferOwnership", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "newOwner", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3401, + "src": "2010:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3375, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2010:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2009:18:14" + }, + "returnParameters": { + "id": 3380, + "nodeType": "ParameterList", + "parameters": [], + "src": "2053:0:14" + }, + "scope": 3402, + "src": "1983:240:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 3403, + "src": "582:1643:14" + } + ], + "src": "33:2193:14" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.592Z", + "devdoc": { + "details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.", + "kind": "dev", + "methods": { + "constructor": { + "details": "Initializes the contract setting the deployer as the initial owner." + }, + "owner()": { + "details": "Returns the address of the current owner." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Pausable.json b/smart-contracts/build/contracts/Pausable.json new file mode 100644 index 0000000000..ad0fa11d21 --- /dev/null +++ b/smart-contracts/build/contracts/Pausable.json @@ -0,0 +1,2075 @@ +{ + "contractName": "Pausable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Paused", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "Unpaused", + "type": "event" + }, + { + "inputs": [], + "name": "paused", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\nimport \"../GSN/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\ncontract Pausable is Context {\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n bool private _paused;\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n constructor () internal {\n _paused = false;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view returns (bool) {\n return _paused;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n require(!_paused, \"Pausable: paused\");\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n require(_paused, \"Pausable: not paused\");\n _;\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n _paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n _paused = false;\n emit Unpaused(_msgSender());\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", + "exportedSymbols": { + "Pausable": [ + 4143 + ] + }, + "id": 4144, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4055, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:17" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", + "file": "../GSN/Context.sol", + "id": 4056, + "nodeType": "ImportDirective", + "scope": 4144, + "sourceUnit": 3294, + "src": "58:28:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4058, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3293, + "src": "549:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$3293", + "typeString": "contract Context" + } + }, + "id": 4059, + "nodeType": "InheritanceSpecifier", + "src": "549:7:17" + } + ], + "contractDependencies": [ + 3293 + ], + "contractKind": "contract", + "documentation": { + "id": 4057, + "nodeType": "StructuredDocumentation", + "src": "88:439:17", + "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." + }, + "fullyImplemented": true, + "id": 4143, + "linearizedBaseContracts": [ + 4143, + 3293 + ], + "name": "Pausable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 4060, + "nodeType": "StructuredDocumentation", + "src": "563:73:17", + "text": " @dev Emitted when the pause is triggered by `account`." + }, + "id": 4064, + "name": "Paused", + "nodeType": "EventDefinition", + "parameters": { + "id": 4063, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4062, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4064, + "src": "654:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "653:17:17" + }, + "src": "641:30:17" + }, + { + "anonymous": false, + "documentation": { + "id": 4065, + "nodeType": "StructuredDocumentation", + "src": "677:70:17", + "text": " @dev Emitted when the pause is lifted by `account`." + }, + "id": 4069, + "name": "Unpaused", + "nodeType": "EventDefinition", + "parameters": { + "id": 4068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4067, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4069, + "src": "767:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4066, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "767:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "766:17:17" + }, + "src": "752:32:17" + }, + { + "constant": false, + "id": 4071, + "mutability": "mutable", + "name": "_paused", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4143, + "src": "790:20:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4070, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "790:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 4079, + "nodeType": "Block", + "src": "913:32:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4075, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "923:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:5:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "923:15:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4078, + "nodeType": "ExpressionStatement", + "src": "923:15:17" + } + ] + }, + "documentation": { + "id": 4072, + "nodeType": "StructuredDocumentation", + "src": "817:67:17", + "text": " @dev Initializes the contract in unpaused state." + }, + "id": 4080, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4073, + "nodeType": "ParameterList", + "parameters": [], + "src": "901:2:17" + }, + "returnParameters": { + "id": 4074, + "nodeType": "ParameterList", + "parameters": [], + "src": "913:0:17" + }, + "scope": 4143, + "src": "889:56:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4088, + "nodeType": "Block", + "src": "1085:31:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4086, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1102:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4085, + "id": 4087, + "nodeType": "Return", + "src": "1095:14:17" + } + ] + }, + "documentation": { + "id": 4081, + "nodeType": "StructuredDocumentation", + "src": "951:84:17", + "text": " @dev Returns true if the contract is paused, and false otherwise." + }, + "functionSelector": "5c975abb", + "id": 4089, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "paused", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4082, + "nodeType": "ParameterList", + "parameters": [], + "src": "1055:2:17" + }, + "returnParameters": { + "id": 4085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4084, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4089, + "src": "1079:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4083, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1079:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1078:6:17" + }, + "scope": 4143, + "src": "1040:76:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4099, + "nodeType": "Block", + "src": "1327:65:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1345:8:17", + "subExpression": { + "argumentTypes": null, + "id": 4093, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1346:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5061757361626c653a20706175736564", + "id": 4095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1355:18:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", + "typeString": "literal_string \"Pausable: paused\"" + }, + "value": "Pausable: paused" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", + "typeString": "literal_string \"Pausable: paused\"" + } + ], + "id": 4092, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1337:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1337:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4097, + "nodeType": "ExpressionStatement", + "src": "1337:37:17" + }, + { + "id": 4098, + "nodeType": "PlaceholderStatement", + "src": "1384:1:17" + } + ] + }, + "documentation": { + "id": 4090, + "nodeType": "StructuredDocumentation", + "src": "1122:175:17", + "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." + }, + "id": 4100, + "name": "whenNotPaused", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 4091, + "nodeType": "ParameterList", + "parameters": [], + "src": "1324:2:17" + }, + "src": "1302:90:17", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4109, + "nodeType": "Block", + "src": "1592:68:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4104, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1610:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5061757361626c653a206e6f7420706175736564", + "id": 4105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1619:22:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", + "typeString": "literal_string \"Pausable: not paused\"" + }, + "value": "Pausable: not paused" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", + "typeString": "literal_string \"Pausable: not paused\"" + } + ], + "id": 4103, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1602:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1602:40:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4107, + "nodeType": "ExpressionStatement", + "src": "1602:40:17" + }, + { + "id": 4108, + "nodeType": "PlaceholderStatement", + "src": "1652:1:17" + } + ] + }, + "documentation": { + "id": 4101, + "nodeType": "StructuredDocumentation", + "src": "1398:167:17", + "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." + }, + "id": 4110, + "name": "whenPaused", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 4102, + "nodeType": "ParameterList", + "parameters": [], + "src": "1589:2:17" + }, + "src": "1570:90:17", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4125, + "nodeType": "Block", + "src": "1844:66:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4116, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1854:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1864:4:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1854:14:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4119, + "nodeType": "ExpressionStatement", + "src": "1854:14:17" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4121, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "1890:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 4122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1890:12:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 4120, + "name": "Paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4064, + "src": "1883:6:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1883:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4124, + "nodeType": "EmitStatement", + "src": "1878:25:17" + } + ] + }, + "documentation": { + "id": 4111, + "nodeType": "StructuredDocumentation", + "src": "1666:124:17", + "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." + }, + "id": 4126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 4114, + "modifierName": { + "argumentTypes": null, + "id": 4113, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "1830:13:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1830:13:17" + } + ], + "name": "_pause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4112, + "nodeType": "ParameterList", + "parameters": [], + "src": "1810:2:17" + }, + "returnParameters": { + "id": 4115, + "nodeType": "ParameterList", + "parameters": [], + "src": "1844:0:17" + }, + "scope": 4143, + "src": "1795:115:17", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 4141, + "nodeType": "Block", + "src": "2090:69:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4132, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "2100:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2110:5:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2100:15:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4135, + "nodeType": "ExpressionStatement", + "src": "2100:15:17" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4137, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "2139:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 4138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2139:12:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 4136, + "name": "Unpaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2130:8:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2130:22:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4140, + "nodeType": "EmitStatement", + "src": "2125:27:17" + } + ] + }, + "documentation": { + "id": 4127, + "nodeType": "StructuredDocumentation", + "src": "1916:121:17", + "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." + }, + "id": 4142, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 4130, + "modifierName": { + "argumentTypes": null, + "id": 4129, + "name": "whenPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4110, + "src": "2079:10:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2079:10:17" + } + ], + "name": "_unpause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4128, + "nodeType": "ParameterList", + "parameters": [], + "src": "2059:2:17" + }, + "returnParameters": { + "id": 4131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2090:0:17" + }, + "scope": 4143, + "src": "2042:117:17", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 4144, + "src": "528:1633:17" + } + ], + "src": "33:2129:17" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", + "exportedSymbols": { + "Pausable": [ + 4143 + ] + }, + "id": 4144, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4055, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:17" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", + "file": "../GSN/Context.sol", + "id": 4056, + "nodeType": "ImportDirective", + "scope": 4144, + "sourceUnit": 3294, + "src": "58:28:17", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4058, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3293, + "src": "549:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$3293", + "typeString": "contract Context" + } + }, + "id": 4059, + "nodeType": "InheritanceSpecifier", + "src": "549:7:17" + } + ], + "contractDependencies": [ + 3293 + ], + "contractKind": "contract", + "documentation": { + "id": 4057, + "nodeType": "StructuredDocumentation", + "src": "88:439:17", + "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." + }, + "fullyImplemented": true, + "id": 4143, + "linearizedBaseContracts": [ + 4143, + 3293 + ], + "name": "Pausable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 4060, + "nodeType": "StructuredDocumentation", + "src": "563:73:17", + "text": " @dev Emitted when the pause is triggered by `account`." + }, + "id": 4064, + "name": "Paused", + "nodeType": "EventDefinition", + "parameters": { + "id": 4063, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4062, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4064, + "src": "654:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4061, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "654:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "653:17:17" + }, + "src": "641:30:17" + }, + { + "anonymous": false, + "documentation": { + "id": 4065, + "nodeType": "StructuredDocumentation", + "src": "677:70:17", + "text": " @dev Emitted when the pause is lifted by `account`." + }, + "id": 4069, + "name": "Unpaused", + "nodeType": "EventDefinition", + "parameters": { + "id": 4068, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4067, + "indexed": false, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4069, + "src": "767:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4066, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "767:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "766:17:17" + }, + "src": "752:32:17" + }, + { + "constant": false, + "id": 4071, + "mutability": "mutable", + "name": "_paused", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4143, + "src": "790:20:17", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4070, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "790:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 4079, + "nodeType": "Block", + "src": "913:32:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4075, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "923:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:5:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "923:15:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4078, + "nodeType": "ExpressionStatement", + "src": "923:15:17" + } + ] + }, + "documentation": { + "id": 4072, + "nodeType": "StructuredDocumentation", + "src": "817:67:17", + "text": " @dev Initializes the contract in unpaused state." + }, + "id": 4080, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4073, + "nodeType": "ParameterList", + "parameters": [], + "src": "901:2:17" + }, + "returnParameters": { + "id": 4074, + "nodeType": "ParameterList", + "parameters": [], + "src": "913:0:17" + }, + "scope": 4143, + "src": "889:56:17", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4088, + "nodeType": "Block", + "src": "1085:31:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4086, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1102:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4085, + "id": 4087, + "nodeType": "Return", + "src": "1095:14:17" + } + ] + }, + "documentation": { + "id": 4081, + "nodeType": "StructuredDocumentation", + "src": "951:84:17", + "text": " @dev Returns true if the contract is paused, and false otherwise." + }, + "functionSelector": "5c975abb", + "id": 4089, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "paused", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4082, + "nodeType": "ParameterList", + "parameters": [], + "src": "1055:2:17" + }, + "returnParameters": { + "id": 4085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4084, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 4089, + "src": "1079:4:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4083, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1079:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1078:6:17" + }, + "scope": 4143, + "src": "1040:76:17", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4099, + "nodeType": "Block", + "src": "1327:65:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1345:8:17", + "subExpression": { + "argumentTypes": null, + "id": 4093, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1346:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5061757361626c653a20706175736564", + "id": 4095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1355:18:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", + "typeString": "literal_string \"Pausable: paused\"" + }, + "value": "Pausable: paused" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", + "typeString": "literal_string \"Pausable: paused\"" + } + ], + "id": 4092, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1337:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1337:37:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4097, + "nodeType": "ExpressionStatement", + "src": "1337:37:17" + }, + { + "id": 4098, + "nodeType": "PlaceholderStatement", + "src": "1384:1:17" + } + ] + }, + "documentation": { + "id": 4090, + "nodeType": "StructuredDocumentation", + "src": "1122:175:17", + "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." + }, + "id": 4100, + "name": "whenNotPaused", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 4091, + "nodeType": "ParameterList", + "parameters": [], + "src": "1324:2:17" + }, + "src": "1302:90:17", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4109, + "nodeType": "Block", + "src": "1592:68:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4104, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1610:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5061757361626c653a206e6f7420706175736564", + "id": 4105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1619:22:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", + "typeString": "literal_string \"Pausable: not paused\"" + }, + "value": "Pausable: not paused" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", + "typeString": "literal_string \"Pausable: not paused\"" + } + ], + "id": 4103, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1602:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 4106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1602:40:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4107, + "nodeType": "ExpressionStatement", + "src": "1602:40:17" + }, + { + "id": 4108, + "nodeType": "PlaceholderStatement", + "src": "1652:1:17" + } + ] + }, + "documentation": { + "id": 4101, + "nodeType": "StructuredDocumentation", + "src": "1398:167:17", + "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." + }, + "id": 4110, + "name": "whenPaused", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 4102, + "nodeType": "ParameterList", + "parameters": [], + "src": "1589:2:17" + }, + "src": "1570:90:17", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4125, + "nodeType": "Block", + "src": "1844:66:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4116, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "1854:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1864:4:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1854:14:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4119, + "nodeType": "ExpressionStatement", + "src": "1854:14:17" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4121, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "1890:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 4122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1890:12:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 4120, + "name": "Paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4064, + "src": "1883:6:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1883:20:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4124, + "nodeType": "EmitStatement", + "src": "1878:25:17" + } + ] + }, + "documentation": { + "id": 4111, + "nodeType": "StructuredDocumentation", + "src": "1666:124:17", + "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." + }, + "id": 4126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 4114, + "modifierName": { + "argumentTypes": null, + "id": 4113, + "name": "whenNotPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4100, + "src": "1830:13:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1830:13:17" + } + ], + "name": "_pause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4112, + "nodeType": "ParameterList", + "parameters": [], + "src": "1810:2:17" + }, + "returnParameters": { + "id": 4115, + "nodeType": "ParameterList", + "parameters": [], + "src": "1844:0:17" + }, + "scope": 4143, + "src": "1795:115:17", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 4141, + "nodeType": "Block", + "src": "2090:69:17", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 4132, + "name": "_paused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4071, + "src": "2100:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2110:5:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "2100:15:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4135, + "nodeType": "ExpressionStatement", + "src": "2100:15:17" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4137, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3281, + "src": "2139:10:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 4138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2139:12:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 4136, + "name": "Unpaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4069, + "src": "2130:8:17", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2130:22:17", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4140, + "nodeType": "EmitStatement", + "src": "2125:27:17" + } + ] + }, + "documentation": { + "id": 4127, + "nodeType": "StructuredDocumentation", + "src": "1916:121:17", + "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." + }, + "id": 4142, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 4130, + "modifierName": { + "argumentTypes": null, + "id": 4129, + "name": "whenPaused", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4110, + "src": "2079:10:17", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2079:10:17" + } + ], + "name": "_unpause", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 4128, + "nodeType": "ParameterList", + "parameters": [], + "src": "2059:2:17" + }, + "returnParameters": { + "id": 4131, + "nodeType": "ParameterList", + "parameters": [], + "src": "2090:0:17" + }, + "scope": 4143, + "src": "2042:117:17", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 4144, + "src": "528:1633:17" + } + ], + "src": "33:2129:17" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.606Z", + "devdoc": { + "details": "Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.", + "events": { + "Paused(address)": { + "details": "Emitted when the pause is triggered by `account`." + }, + "Unpaused(address)": { + "details": "Emitted when the pause is lifted by `account`." + } + }, + "kind": "dev", + "methods": { + "constructor": { + "details": "Initializes the contract in unpaused state." + }, + "paused()": { + "details": "Returns true if the contract is paused, and false otherwise." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/RuntimeAddressProvider.json b/smart-contracts/build/contracts/RuntimeAddressProvider.json new file mode 100644 index 0000000000..b4a2f8c116 --- /dev/null +++ b/smart-contracts/build/contracts/RuntimeAddressProvider.json @@ -0,0 +1,1734 @@ +{ + "contractName": "RuntimeAddressProvider", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_runtimeAddress", + "type": "address" + }, + { + "internalType": "address", + "name": "_councilAddress", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "councilAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "runtimeAddress", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_runtimeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_councilAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"councilAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":\"RuntimeAddressProvider\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b5060405161012c38038061012c8339818101604052604081101561003357600080fd5b508051602090910151600080546001600160a01b039384166001600160a01b0319918216179091556001805493909216921691909117905560b3806100796000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806362bc0cd6146037578063ec30338c146059575b600080fd5b603d605f565b604080516001600160a01b039092168252519081900360200190f35b603d606e565b6001546001600160a01b031681565b6000546001600160a01b03168156fea26469706673582212201257aae8c586fe8eb22105d48c9d0c8597835d3b3debd967b3015810258ce7e264736f6c634300060c0033", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806362bc0cd6146037578063ec30338c146059575b600080fd5b603d605f565b604080516001600160a01b039092168252519081900360200190f35b603d606e565b6001546001600160a01b031681565b6000546001600160a01b03168156fea26469706673582212201257aae8c586fe8eb22105d48c9d0c8597835d3b3debd967b3015810258ce7e264736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "25:455:4:-:0;;;125:353;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;125:353:4;;;;;;;300:14;:32;;-1:-1:-1;;;;;300:32:4;;;-1:-1:-1;;;;;;300:32:4;;;;;;;;442;;;;;;;;;;;;;;25:455;;;;;;", + "deployedSourceMap": "25:455:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;92:29;;;:::i;:::-;;;;-1:-1:-1;;;;;92:29:4;;;;;;;;;;;;;;60;;;:::i;92:::-;;;-1:-1:-1;;;;;92:29:4;;:::o;60:::-;;;-1:-1:-1;;;;;60:29:4;;:::o", + "source": "pragma solidity ^0.6.0;\n\ncontract RuntimeAddressProvider {\n\taddress public runtimeAddress;\n\taddress public councilAddress;\n\n\tconstructor (address _runtimeAddress, address _councilAddress) public {\n\t\t// This is the address that only the runtime is able to use as msg.sender (used to update bridges)\n\t\truntimeAddress = _runtimeAddress;\n\t\t// This is the address hardcoded in proposal module (can only be used in context of proposal execution)\n\t\tcouncilAddress = _councilAddress;\n\t}\n}\n\nabstract contract RuntimeManageable {\n\tRuntimeAddressProvider public runtimeAddressProvider;\n\n\tconstructor (RuntimeAddressProvider _runtimeAddressProvider) public {\n\t\truntimeAddressProvider = _runtimeAddressProvider;\n\t}\n\n\tmodifier onlyRuntime {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.runtimeAddress(),\n\t\t\t\"This function can only be executed from the runtime\"\n\t\t);\n\t\t_;\n\t}\n\n\tmodifier onlyCouncil {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.councilAddress(),\n\t\t\t\"This function can only be executed through proposal system\"\n\t\t);\n\t\t_;\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "exportedSymbols": { + "RuntimeAddressProvider": [ + 1636 + ], + "RuntimeManageable": [ + 1677 + ] + }, + "id": 1678, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1636, + "linearizedBaseContracts": [ + 1636 + ], + "name": "RuntimeAddressProvider", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "ec30338c", + "id": 1617, + "mutability": "mutable", + "name": "runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "60:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "60:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "62bc0cd6", + "id": 1619, + "mutability": "mutable", + "name": "councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "92:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "92:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1634, + "nodeType": "Block", + "src": "195:283:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1626, + "name": "runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "300:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1627, + "name": "_runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1621, + "src": "317:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "300:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "300:32:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1630, + "name": "councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "442:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1631, + "name": "_councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "459:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "442:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1633, + "nodeType": "ExpressionStatement", + "src": "442:32:4" + } + ] + }, + "documentation": null, + "id": 1635, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1621, + "mutability": "mutable", + "name": "_runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "138:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "138:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "_councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "163:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "163:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "137:50:4" + }, + "returnParameters": { + "id": 1625, + "nodeType": "ParameterList", + "parameters": [], + "src": "195:0:4" + }, + "scope": 1636, + "src": "125:353:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1678, + "src": "25:455:4" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1677, + "linearizedBaseContracts": [ + 1677 + ], + "name": "RuntimeManageable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "2ca880d4", + "id": 1638, + "mutability": "mutable", + "name": "runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1677, + "src": "521:52:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1637, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "521:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1647, + "nodeType": "Block", + "src": "645:56:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1643, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "649:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1644, + "name": "_runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "674:23:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "src": "649:48:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "649:48:4" + } + ] + }, + "documentation": null, + "id": 1648, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "_runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1648, + "src": "590:46:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1639, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "590:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "589:48:4" + }, + "returnParameters": { + "id": 1642, + "nodeType": "ParameterList", + "parameters": [], + "src": "645:0:4" + }, + "scope": 1677, + "src": "577:124:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1661, + "nodeType": "Block", + "src": "725:140:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "741:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "741:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1653, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "755:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "runtimeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1617, + "src": "755:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "755:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "741:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "799:53:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + }, + "value": "This function can only be executed from the runtime" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + } + ], + "id": 1650, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "729:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "729:127:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1659, + "nodeType": "ExpressionStatement", + "src": "729:127:4" + }, + { + "id": 1660, + "nodeType": "PlaceholderStatement", + "src": "860:1:4" + } + ] + }, + "documentation": null, + "id": 1662, + "name": "onlyRuntime", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:4" + }, + "src": "704:161:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1675, + "nodeType": "Block", + "src": "889:147:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1665, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "905:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "905:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1667, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "919:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "councilAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "919:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "919:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "905:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "963:60:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + }, + "value": "This function can only be executed through proposal system" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + } + ], + "id": 1664, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "893:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "893:134:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1673, + "nodeType": "ExpressionStatement", + "src": "893:134:4" + }, + { + "id": 1674, + "nodeType": "PlaceholderStatement", + "src": "1031:1:4" + } + ] + }, + "documentation": null, + "id": 1676, + "name": "onlyCouncil", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [], + "src": "889:0:4" + }, + "src": "868:168:4", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1678, + "src": "482:556:4" + } + ], + "src": "0:1039:4" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "exportedSymbols": { + "RuntimeAddressProvider": [ + 1636 + ], + "RuntimeManageable": [ + 1677 + ] + }, + "id": 1678, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1636, + "linearizedBaseContracts": [ + 1636 + ], + "name": "RuntimeAddressProvider", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "ec30338c", + "id": 1617, + "mutability": "mutable", + "name": "runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "60:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "60:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "62bc0cd6", + "id": 1619, + "mutability": "mutable", + "name": "councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "92:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "92:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1634, + "nodeType": "Block", + "src": "195:283:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1626, + "name": "runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "300:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1627, + "name": "_runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1621, + "src": "317:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "300:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "300:32:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1630, + "name": "councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "442:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1631, + "name": "_councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "459:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "442:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1633, + "nodeType": "ExpressionStatement", + "src": "442:32:4" + } + ] + }, + "documentation": null, + "id": 1635, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1621, + "mutability": "mutable", + "name": "_runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "138:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "138:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "_councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "163:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "163:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "137:50:4" + }, + "returnParameters": { + "id": 1625, + "nodeType": "ParameterList", + "parameters": [], + "src": "195:0:4" + }, + "scope": 1636, + "src": "125:353:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1678, + "src": "25:455:4" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1677, + "linearizedBaseContracts": [ + 1677 + ], + "name": "RuntimeManageable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "2ca880d4", + "id": 1638, + "mutability": "mutable", + "name": "runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1677, + "src": "521:52:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1637, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "521:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1647, + "nodeType": "Block", + "src": "645:56:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1643, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "649:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1644, + "name": "_runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "674:23:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "src": "649:48:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "649:48:4" + } + ] + }, + "documentation": null, + "id": 1648, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "_runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1648, + "src": "590:46:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1639, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "590:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "589:48:4" + }, + "returnParameters": { + "id": 1642, + "nodeType": "ParameterList", + "parameters": [], + "src": "645:0:4" + }, + "scope": 1677, + "src": "577:124:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1661, + "nodeType": "Block", + "src": "725:140:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "741:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "741:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1653, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "755:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "runtimeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1617, + "src": "755:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "755:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "741:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "799:53:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + }, + "value": "This function can only be executed from the runtime" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + } + ], + "id": 1650, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "729:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "729:127:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1659, + "nodeType": "ExpressionStatement", + "src": "729:127:4" + }, + { + "id": 1660, + "nodeType": "PlaceholderStatement", + "src": "860:1:4" + } + ] + }, + "documentation": null, + "id": 1662, + "name": "onlyRuntime", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:4" + }, + "src": "704:161:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1675, + "nodeType": "Block", + "src": "889:147:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1665, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "905:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "905:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1667, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "919:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "councilAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "919:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "919:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "905:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "963:60:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + }, + "value": "This function can only be executed through proposal system" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + } + ], + "id": 1664, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "893:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "893:134:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1673, + "nodeType": "ExpressionStatement", + "src": "893:134:4" + }, + { + "id": 1674, + "nodeType": "PlaceholderStatement", + "src": "1031:1:4" + } + ] + }, + "documentation": null, + "id": 1676, + "name": "onlyCouncil", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [], + "src": "889:0:4" + }, + "src": "868:168:4", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1678, + "src": "482:556:4" + } + ], + "src": "0:1039:4" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.543Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/RuntimeManageable.json b/smart-contracts/build/contracts/RuntimeManageable.json new file mode 100644 index 0000000000..1b7de1c826 --- /dev/null +++ b/smart-contracts/build/contracts/RuntimeManageable.json @@ -0,0 +1,1716 @@ +{ + "contractName": "RuntimeManageable", + "abi": [ + { + "inputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "_runtimeAddressProvider", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "runtimeAddressProvider", + "outputs": [ + { + "internalType": "contract RuntimeAddressProvider", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_runtimeAddressProvider\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":\"RuntimeManageable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.6.0;\n\ncontract RuntimeAddressProvider {\n\taddress public runtimeAddress;\n\taddress public councilAddress;\n\n\tconstructor (address _runtimeAddress, address _councilAddress) public {\n\t\t// This is the address that only the runtime is able to use as msg.sender (used to update bridges)\n\t\truntimeAddress = _runtimeAddress;\n\t\t// This is the address hardcoded in proposal module (can only be used in context of proposal execution)\n\t\tcouncilAddress = _councilAddress;\n\t}\n}\n\nabstract contract RuntimeManageable {\n\tRuntimeAddressProvider public runtimeAddressProvider;\n\n\tconstructor (RuntimeAddressProvider _runtimeAddressProvider) public {\n\t\truntimeAddressProvider = _runtimeAddressProvider;\n\t}\n\n\tmodifier onlyRuntime {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.runtimeAddress(),\n\t\t\t\"This function can only be executed from the runtime\"\n\t\t);\n\t\t_;\n\t}\n\n\tmodifier onlyCouncil {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.councilAddress(),\n\t\t\t\"This function can only be executed through proposal system\"\n\t\t);\n\t\t_;\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "exportedSymbols": { + "RuntimeAddressProvider": [ + 1636 + ], + "RuntimeManageable": [ + 1677 + ] + }, + "id": 1678, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1636, + "linearizedBaseContracts": [ + 1636 + ], + "name": "RuntimeAddressProvider", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "ec30338c", + "id": 1617, + "mutability": "mutable", + "name": "runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "60:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "60:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "62bc0cd6", + "id": 1619, + "mutability": "mutable", + "name": "councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "92:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "92:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1634, + "nodeType": "Block", + "src": "195:283:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1626, + "name": "runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "300:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1627, + "name": "_runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1621, + "src": "317:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "300:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "300:32:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1630, + "name": "councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "442:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1631, + "name": "_councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "459:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "442:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1633, + "nodeType": "ExpressionStatement", + "src": "442:32:4" + } + ] + }, + "documentation": null, + "id": 1635, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1621, + "mutability": "mutable", + "name": "_runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "138:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "138:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "_councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "163:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "163:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "137:50:4" + }, + "returnParameters": { + "id": 1625, + "nodeType": "ParameterList", + "parameters": [], + "src": "195:0:4" + }, + "scope": 1636, + "src": "125:353:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1678, + "src": "25:455:4" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1677, + "linearizedBaseContracts": [ + 1677 + ], + "name": "RuntimeManageable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "2ca880d4", + "id": 1638, + "mutability": "mutable", + "name": "runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1677, + "src": "521:52:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1637, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "521:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1647, + "nodeType": "Block", + "src": "645:56:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1643, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "649:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1644, + "name": "_runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "674:23:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "src": "649:48:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "649:48:4" + } + ] + }, + "documentation": null, + "id": 1648, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "_runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1648, + "src": "590:46:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1639, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "590:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "589:48:4" + }, + "returnParameters": { + "id": 1642, + "nodeType": "ParameterList", + "parameters": [], + "src": "645:0:4" + }, + "scope": 1677, + "src": "577:124:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1661, + "nodeType": "Block", + "src": "725:140:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "741:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "741:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1653, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "755:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "runtimeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1617, + "src": "755:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "755:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "741:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "799:53:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + }, + "value": "This function can only be executed from the runtime" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + } + ], + "id": 1650, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "729:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "729:127:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1659, + "nodeType": "ExpressionStatement", + "src": "729:127:4" + }, + { + "id": 1660, + "nodeType": "PlaceholderStatement", + "src": "860:1:4" + } + ] + }, + "documentation": null, + "id": 1662, + "name": "onlyRuntime", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:4" + }, + "src": "704:161:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1675, + "nodeType": "Block", + "src": "889:147:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1665, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "905:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "905:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1667, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "919:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "councilAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "919:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "919:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "905:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "963:60:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + }, + "value": "This function can only be executed through proposal system" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + } + ], + "id": 1664, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "893:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "893:134:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1673, + "nodeType": "ExpressionStatement", + "src": "893:134:4" + }, + { + "id": 1674, + "nodeType": "PlaceholderStatement", + "src": "1031:1:4" + } + ] + }, + "documentation": null, + "id": 1676, + "name": "onlyCouncil", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [], + "src": "889:0:4" + }, + "src": "868:168:4", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1678, + "src": "482:556:4" + } + ], + "src": "0:1039:4" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", + "exportedSymbols": { + "RuntimeAddressProvider": [ + 1636 + ], + "RuntimeManageable": [ + 1677 + ] + }, + "id": 1678, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1615, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:4" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1636, + "linearizedBaseContracts": [ + 1636 + ], + "name": "RuntimeAddressProvider", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "ec30338c", + "id": 1617, + "mutability": "mutable", + "name": "runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "60:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "60:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "62bc0cd6", + "id": 1619, + "mutability": "mutable", + "name": "councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1636, + "src": "92:29:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1618, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "92:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1634, + "nodeType": "Block", + "src": "195:283:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1626, + "name": "runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "300:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1627, + "name": "_runtimeAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1621, + "src": "317:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "300:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1629, + "nodeType": "ExpressionStatement", + "src": "300:32:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1630, + "name": "councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1619, + "src": "442:14:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1631, + "name": "_councilAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "459:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "442:32:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1633, + "nodeType": "ExpressionStatement", + "src": "442:32:4" + } + ] + }, + "documentation": null, + "id": 1635, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1621, + "mutability": "mutable", + "name": "_runtimeAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "138:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1620, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "138:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "_councilAddress", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1635, + "src": "163:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "163:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "137:50:4" + }, + "returnParameters": { + "id": 1625, + "nodeType": "ParameterList", + "parameters": [], + "src": "195:0:4" + }, + "scope": 1636, + "src": "125:353:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 1678, + "src": "25:455:4" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 1677, + "linearizedBaseContracts": [ + 1677 + ], + "name": "RuntimeManageable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "2ca880d4", + "id": 1638, + "mutability": "mutable", + "name": "runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1677, + "src": "521:52:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1637, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "521:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1647, + "nodeType": "Block", + "src": "645:56:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1643, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "649:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 1644, + "name": "_runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "674:23:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "src": "649:48:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "649:48:4" + } + ] + }, + "documentation": null, + "id": 1648, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "_runtimeAddressProvider", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1648, + "src": "590:46:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + }, + "typeName": { + "contractScope": null, + "id": 1639, + "name": "RuntimeAddressProvider", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1636, + "src": "590:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "589:48:4" + }, + "returnParameters": { + "id": 1642, + "nodeType": "ParameterList", + "parameters": [], + "src": "645:0:4" + }, + "scope": 1677, + "src": "577:124:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1661, + "nodeType": "Block", + "src": "725:140:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1651, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "741:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "741:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1653, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "755:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "runtimeAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1617, + "src": "755:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "755:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "741:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "799:53:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + }, + "value": "This function can only be executed from the runtime" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", + "typeString": "literal_string \"This function can only be executed from the runtime\"" + } + ], + "id": 1650, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "729:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "729:127:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1659, + "nodeType": "ExpressionStatement", + "src": "729:127:4" + }, + { + "id": 1660, + "nodeType": "PlaceholderStatement", + "src": "860:1:4" + } + ] + }, + "documentation": null, + "id": 1662, + "name": "onlyRuntime", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [], + "src": "725:0:4" + }, + "src": "704:161:4", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1675, + "nodeType": "Block", + "src": "889:147:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1665, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "905:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "905:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 1667, + "name": "runtimeAddressProvider", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1638, + "src": "919:22:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", + "typeString": "contract RuntimeAddressProvider" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "councilAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "919:37:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", + "typeString": "function () view external returns (address)" + } + }, + "id": 1669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "919:39:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "905:53:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "963:60:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + }, + "value": "This function can only be executed through proposal system" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", + "typeString": "literal_string \"This function can only be executed through proposal system\"" + } + ], + "id": 1664, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "893:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "893:134:4", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1673, + "nodeType": "ExpressionStatement", + "src": "893:134:4" + }, + { + "id": 1674, + "nodeType": "PlaceholderStatement", + "src": "1031:1:4" + } + ] + }, + "documentation": null, + "id": 1676, + "name": "onlyCouncil", + "nodeType": "ModifierDefinition", + "overrides": null, + "parameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [], + "src": "889:0:4" + }, + "src": "868:168:4", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1678, + "src": "482:556:4" + } + ], + "src": "0:1039:4" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.545Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath.json b/smart-contracts/build/contracts/SafeMath.json new file mode 100644 index 0000000000..5e6e875276 --- /dev/null +++ b/smart-contracts/build/contracts/SafeMath.json @@ -0,0 +1,5148 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220652489c9dd967bdf35c86d8e4ade31ab6d590496c8f11b137909121c2f9f579c64736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220652489c9dd967bdf35c86d8e4ade31ab6d590496c8f11b137909121c2f9f579c64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "622:4578:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "622:4578:15:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 3598 + ] + }, + "id": 3599, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3404, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "58:563:15", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 3598, + "linearizedBaseContracts": [ + 3598 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3430, + "nodeType": "Block", + "src": "941:109:15", + "statements": [ + { + "assignments": [ + 3416 + ], + "declarations": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3430, + "src": "951:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "951:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3420, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3417, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3408, + "src": "963:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3418, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3410, + "src": "967:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "963:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "951:17:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3422, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "986:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3423, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3408, + "src": "991:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "986:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 3425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "994:29:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 3421, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "978:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "978:46:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3427, + "nodeType": "ExpressionStatement", + "src": "978:46:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3428, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "1042:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3414, + "id": 3429, + "nodeType": "Return", + "src": "1035:8:15" + } + ] + }, + "documentation": { + "id": 3406, + "nodeType": "StructuredDocumentation", + "src": "645:224:15", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 3431, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3408, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3431, + "src": "887:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "887:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3410, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3431, + "src": "898:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "898:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "886:22:15" + }, + "returnParameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3431, + "src": "932:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "932:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "931:9:15" + }, + "scope": 3598, + "src": "874:176:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3447, + "nodeType": "Block", + "src": "1388:67:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3442, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "1409:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3443, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1412:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1415:32:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 3441, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3448, + 3476 + ], + "referencedDeclaration": 3476, + "src": "1405:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1405:43:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3440, + "id": 3446, + "nodeType": "Return", + "src": "1398:50:15" + } + ] + }, + "documentation": { + "id": 3432, + "nodeType": "StructuredDocumentation", + "src": "1056:260:15", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3448, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3434, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3448, + "src": "1334:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3433, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1334:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3448, + "src": "1345:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1345:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1333:22:15" + }, + "returnParameters": { + "id": 3440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3439, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3448, + "src": "1379:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1379:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1378:9:15" + }, + "scope": 3598, + "src": "1321:134:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3475, + "nodeType": "Block", + "src": "1841:92:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3461, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3453, + "src": "1859:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3462, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3451, + "src": "1864:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1859:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 3464, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3455, + "src": "1867:12:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3460, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1851:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1851:29:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3466, + "nodeType": "ExpressionStatement", + "src": "1851:29:15" + }, + { + "assignments": [ + 3468 + ], + "declarations": [ + { + "constant": false, + "id": 3468, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3475, + "src": "1890:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1890:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3472, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3469, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3451, + "src": "1902:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3470, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3453, + "src": "1906:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1902:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1890:17:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3473, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "1925:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3459, + "id": 3474, + "nodeType": "Return", + "src": "1918:8:15" + } + ] + }, + "documentation": { + "id": 3449, + "nodeType": "StructuredDocumentation", + "src": "1461:280:15", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3451, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1759:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1759:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3453, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1770:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1770:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3455, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1781:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3454, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1781:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1758:50:15" + }, + "returnParameters": { + "id": 3459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3458, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1832:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1832:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1831:9:15" + }, + "scope": 3598, + "src": "1746:187:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3510, + "nodeType": "Block", + "src": "2247:392:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3486, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3479, + "src": "2479:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2484:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2479:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3492, + "nodeType": "IfStatement", + "src": "2475:45:15", + "trueBody": { + "id": 3491, + "nodeType": "Block", + "src": "2487:33:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2508:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3485, + "id": 3490, + "nodeType": "Return", + "src": "2501:8:15" + } + ] + } + }, + { + "assignments": [ + 3494 + ], + "declarations": [ + { + "constant": false, + "id": 3494, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3510, + "src": "2530:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2530:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3498, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3495, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3479, + "src": "2542:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3496, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3481, + "src": "2546:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2542:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2530:17:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3500, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3494, + "src": "2565:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3501, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3479, + "src": "2569:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2565:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3503, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3481, + "src": "2574:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2565:10:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2577:35:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 3499, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2557:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2557:56:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3507, + "nodeType": "ExpressionStatement", + "src": "2557:56:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3508, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3494, + "src": "2631:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3485, + "id": 3509, + "nodeType": "Return", + "src": "2624:8:15" + } + ] + }, + "documentation": { + "id": 3477, + "nodeType": "StructuredDocumentation", + "src": "1939:236:15", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 3511, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3479, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3511, + "src": "2193:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2193:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3481, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3511, + "src": "2204:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2204:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2192:22:15" + }, + "returnParameters": { + "id": 3485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3484, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3511, + "src": "2238:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3483, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2238:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2237:9:15" + }, + "scope": 3598, + "src": "2180:459:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3527, + "nodeType": "Block", + "src": "3168:63:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3522, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3514, + "src": "3189:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3523, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3516, + "src": "3192:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3195:28:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 3521, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3528, + 3556 + ], + "referencedDeclaration": 3556, + "src": "3185:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3185:39:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3520, + "id": 3526, + "nodeType": "Return", + "src": "3178:46:15" + } + ] + }, + "documentation": { + "id": 3512, + "nodeType": "StructuredDocumentation", + "src": "2645:451:15", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3528, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3514, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3528, + "src": "3114:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3114:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3516, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3528, + "src": "3125:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3125:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3113:22:15" + }, + "returnParameters": { + "id": 3520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3519, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3528, + "src": "3159:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3159:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3158:9:15" + }, + "scope": 3598, + "src": "3101:130:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3555, + "nodeType": "Block", + "src": "3808:177:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3541, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3533, + "src": "3826:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3830:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3826:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 3544, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3535, + "src": "3833:12:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3540, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3818:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3818:28:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3546, + "nodeType": "ExpressionStatement", + "src": "3818:28:15" + }, + { + "assignments": [ + 3548 + ], + "declarations": [ + { + "constant": false, + "id": 3548, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3555, + "src": "3856:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3856:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3552, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3549, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "3868:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3550, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3533, + "src": "3872:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3868:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3856:17:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3553, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3548, + "src": "3977:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3539, + "id": 3554, + "nodeType": "Return", + "src": "3970:8:15" + } + ] + }, + "documentation": { + "id": 3529, + "nodeType": "StructuredDocumentation", + "src": "3237:471:15", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3556, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3531, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3726:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3726:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3533, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3737:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3737:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3535, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3748:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3534, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3748:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3725:50:15" + }, + "returnParameters": { + "id": 3539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3799:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3799:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3798:9:15" + }, + "scope": 3598, + "src": "3713:272:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3572, + "nodeType": "Block", + "src": "4503:61:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3567, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3559, + "src": "4524:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3568, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "4527:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 3569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4530:26:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 3566, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3573, + 3597 + ], + "referencedDeclaration": 3597, + "src": "4520:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4520:37:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3565, + "id": 3571, + "nodeType": "Return", + "src": "4513:44:15" + } + ] + }, + "documentation": { + "id": 3557, + "nodeType": "StructuredDocumentation", + "src": "3991:440:15", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3573, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3559, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3573, + "src": "4449:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4449:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3561, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3573, + "src": "4460:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4460:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4448:22:15" + }, + "returnParameters": { + "id": 3565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3564, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3573, + "src": "4494:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4494:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4493:9:15" + }, + "scope": 3598, + "src": "4436:128:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3596, + "nodeType": "Block", + "src": "5130:68:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3586, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3578, + "src": "5148:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5153:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5148:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 3589, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3580, + "src": "5156:12:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5140:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5140:29:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3591, + "nodeType": "ExpressionStatement", + "src": "5140:29:15" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3592, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3576, + "src": "5186:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 3593, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3578, + "src": "5190:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5186:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3584, + "id": 3595, + "nodeType": "Return", + "src": "5179:12:15" + } + ] + }, + "documentation": { + "id": 3574, + "nodeType": "StructuredDocumentation", + "src": "4570:460:15", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3597, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3576, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5048:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3575, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5048:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3578, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5059:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5059:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3580, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5070:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3579, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5070:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5047:50:15" + }, + "returnParameters": { + "id": 3584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5121:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5121:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5120:9:15" + }, + "scope": 3598, + "src": "5035:163:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3599, + "src": "622:4578:15" + } + ], + "src": "33:5168:15" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 3598 + ] + }, + "id": 3599, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3404, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "33:23:15" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "58:563:15", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 3598, + "linearizedBaseContracts": [ + 3598 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 3430, + "nodeType": "Block", + "src": "941:109:15", + "statements": [ + { + "assignments": [ + 3416 + ], + "declarations": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3430, + "src": "951:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "951:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3420, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3417, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3408, + "src": "963:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 3418, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3410, + "src": "967:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "963:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "951:17:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3422, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "986:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 3423, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3408, + "src": "991:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "986:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 3425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "994:29:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 3421, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "978:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "978:46:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3427, + "nodeType": "ExpressionStatement", + "src": "978:46:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3428, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3416, + "src": "1042:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3414, + "id": 3429, + "nodeType": "Return", + "src": "1035:8:15" + } + ] + }, + "documentation": { + "id": 3406, + "nodeType": "StructuredDocumentation", + "src": "645:224:15", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 3431, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3408, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3431, + "src": "887:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3407, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "887:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3410, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3431, + "src": "898:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "898:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "886:22:15" + }, + "returnParameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3431, + "src": "932:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "932:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "931:9:15" + }, + "scope": 3598, + "src": "874:176:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3447, + "nodeType": "Block", + "src": "1388:67:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3442, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3434, + "src": "1409:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3443, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3436, + "src": "1412:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1415:32:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 3441, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3448, + 3476 + ], + "referencedDeclaration": 3476, + "src": "1405:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1405:43:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3440, + "id": 3446, + "nodeType": "Return", + "src": "1398:50:15" + } + ] + }, + "documentation": { + "id": 3432, + "nodeType": "StructuredDocumentation", + "src": "1056:260:15", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3448, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3434, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3448, + "src": "1334:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3433, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1334:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3448, + "src": "1345:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1345:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1333:22:15" + }, + "returnParameters": { + "id": 3440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3439, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3448, + "src": "1379:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3438, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1379:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1378:9:15" + }, + "scope": 3598, + "src": "1321:134:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3475, + "nodeType": "Block", + "src": "1841:92:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3461, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3453, + "src": "1859:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 3462, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3451, + "src": "1864:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1859:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 3464, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3455, + "src": "1867:12:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3460, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1851:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1851:29:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3466, + "nodeType": "ExpressionStatement", + "src": "1851:29:15" + }, + { + "assignments": [ + 3468 + ], + "declarations": [ + { + "constant": false, + "id": 3468, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3475, + "src": "1890:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3467, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1890:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3472, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3469, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3451, + "src": "1902:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 3470, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3453, + "src": "1906:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1902:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1890:17:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3473, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "1925:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3459, + "id": 3474, + "nodeType": "Return", + "src": "1918:8:15" + } + ] + }, + "documentation": { + "id": 3449, + "nodeType": "StructuredDocumentation", + "src": "1461:280:15", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 3476, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3456, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3451, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1759:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1759:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3453, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1770:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1770:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3455, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1781:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3454, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1781:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1758:50:15" + }, + "returnParameters": { + "id": 3459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3458, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3476, + "src": "1832:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1832:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1831:9:15" + }, + "scope": 3598, + "src": "1746:187:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3510, + "nodeType": "Block", + "src": "2247:392:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3486, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3479, + "src": "2479:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2484:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2479:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3492, + "nodeType": "IfStatement", + "src": "2475:45:15", + "trueBody": { + "id": 3491, + "nodeType": "Block", + "src": "2487:33:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3489, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2508:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 3485, + "id": 3490, + "nodeType": "Return", + "src": "2501:8:15" + } + ] + } + }, + { + "assignments": [ + 3494 + ], + "declarations": [ + { + "constant": false, + "id": 3494, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3510, + "src": "2530:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2530:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3498, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3497, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3495, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3479, + "src": "2542:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 3496, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3481, + "src": "2546:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2542:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2530:17:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3500, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3494, + "src": "2565:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3501, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3479, + "src": "2569:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2565:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3503, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3481, + "src": "2574:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2565:10:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 3505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2577:35:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 3499, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2557:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2557:56:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3507, + "nodeType": "ExpressionStatement", + "src": "2557:56:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3508, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3494, + "src": "2631:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3485, + "id": 3509, + "nodeType": "Return", + "src": "2624:8:15" + } + ] + }, + "documentation": { + "id": 3477, + "nodeType": "StructuredDocumentation", + "src": "1939:236:15", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 3511, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3482, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3479, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3511, + "src": "2193:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2193:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3481, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3511, + "src": "2204:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3480, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2204:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2192:22:15" + }, + "returnParameters": { + "id": 3485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3484, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3511, + "src": "2238:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3483, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2238:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2237:9:15" + }, + "scope": 3598, + "src": "2180:459:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3527, + "nodeType": "Block", + "src": "3168:63:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3522, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3514, + "src": "3189:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3523, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3516, + "src": "3192:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3195:28:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 3521, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3528, + 3556 + ], + "referencedDeclaration": 3556, + "src": "3185:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3185:39:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3520, + "id": 3526, + "nodeType": "Return", + "src": "3178:46:15" + } + ] + }, + "documentation": { + "id": 3512, + "nodeType": "StructuredDocumentation", + "src": "2645:451:15", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3528, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3514, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3528, + "src": "3114:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3513, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3114:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3516, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3528, + "src": "3125:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3125:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3113:22:15" + }, + "returnParameters": { + "id": 3520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3519, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3528, + "src": "3159:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3159:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3158:9:15" + }, + "scope": 3598, + "src": "3101:130:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3555, + "nodeType": "Block", + "src": "3808:177:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3541, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3533, + "src": "3826:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3830:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3826:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 3544, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3535, + "src": "3833:12:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3540, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3818:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3818:28:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3546, + "nodeType": "ExpressionStatement", + "src": "3818:28:15" + }, + { + "assignments": [ + 3548 + ], + "declarations": [ + { + "constant": false, + "id": 3548, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3555, + "src": "3856:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3856:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3552, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3549, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3531, + "src": "3868:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 3550, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3533, + "src": "3872:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3868:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3856:17:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 3553, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3548, + "src": "3977:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3539, + "id": 3554, + "nodeType": "Return", + "src": "3970:8:15" + } + ] + }, + "documentation": { + "id": 3529, + "nodeType": "StructuredDocumentation", + "src": "3237:471:15", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3556, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3531, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3726:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3726:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3533, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3737:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3737:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3535, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3748:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3534, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3748:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3725:50:15" + }, + "returnParameters": { + "id": 3539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3556, + "src": "3799:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3799:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3798:9:15" + }, + "scope": 3598, + "src": "3713:272:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3572, + "nodeType": "Block", + "src": "4503:61:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3567, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3559, + "src": "4524:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3568, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3561, + "src": "4527:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 3569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4530:26:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 3566, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3573, + 3597 + ], + "referencedDeclaration": 3597, + "src": "4520:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" + } + }, + "id": 3570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4520:37:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3565, + "id": 3571, + "nodeType": "Return", + "src": "4513:44:15" + } + ] + }, + "documentation": { + "id": 3557, + "nodeType": "StructuredDocumentation", + "src": "3991:440:15", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3573, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3559, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3573, + "src": "4449:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4449:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3561, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3573, + "src": "4460:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4460:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4448:22:15" + }, + "returnParameters": { + "id": 3565, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3564, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3573, + "src": "4494:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3563, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4494:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4493:9:15" + }, + "scope": 3598, + "src": "4436:128:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3596, + "nodeType": "Block", + "src": "5130:68:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3586, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3578, + "src": "5148:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5153:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5148:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 3589, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3580, + "src": "5156:12:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3585, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5140:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5140:29:15", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3591, + "nodeType": "ExpressionStatement", + "src": "5140:29:15" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3592, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3576, + "src": "5186:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 3593, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3578, + "src": "5190:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5186:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3584, + "id": 3595, + "nodeType": "Return", + "src": "5179:12:15" + } + ] + }, + "documentation": { + "id": 3574, + "nodeType": "StructuredDocumentation", + "src": "4570:460:15", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 3597, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3576, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5048:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3575, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5048:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3578, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5059:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5059:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3580, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5070:26:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3579, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5070:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5047:50:15" + }, + "returnParameters": { + "id": 3584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3583, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3597, + "src": "5121:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5121:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5120:9:15" + }, + "scope": 3598, + "src": "5035:163:15", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3599, + "src": "622:4578:15" + } + ], + "src": "33:5168:15" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.594Z", + "devdoc": { + "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath16.json b/smart-contracts/build/contracts/SafeMath16.json new file mode 100644 index 0000000000..3e977ca176 --- /dev/null +++ b/smart-contracts/build/contracts/SafeMath16.json @@ -0,0 +1,5137 @@ +{ + "contractName": "SafeMath16", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":\"SafeMath16\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":{\"keccak256\":\"0x3144434af3449276d1a4e92e7a0dd5e213df54bdff1c8d7de210c6afddf2a4ff\",\"urls\":[\"bzz-raw://a04571ba65a5111dca479803ec8582acf04e7f074db82b9a83610e5cc4787dcb\",\"dweb:/ipfs/QmXyfBJxHsFhhbZd7R2zwQWrRvMWFmNoTqZALTWBfLj3uJ\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201bce44b4f5c3f04b08a543fba71106a7bcdedda6e6c0ee66c7b2c47c517a699f64736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201bce44b4f5c3f04b08a543fba71106a7bcdedda6e6c0ee66c7b2c47c517a699f64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "70:4552:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "70:4552:5:-:0;;;;;;;;", + "source": "pragma solidity ^0.6.0;\n\n// uint16 version of OpenZeppelin's SafeMath\nlibrary SafeMath16 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint16 a, uint16 b) internal pure returns (uint16) {\n uint16 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint16 a, uint16 b) internal pure returns (uint16) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) {\n require(b <= a, errorMessage);\n uint16 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint16 a, uint16 b) internal pure returns (uint16) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint16 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint16 a, uint16 b) internal pure returns (uint16) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) {\n require(b > 0, errorMessage);\n uint16 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint16 a, uint16 b) internal pure returns (uint16) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", + "exportedSymbols": { + "SafeMath16": [ + 1872 + ] + }, + "id": 1873, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1679, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 1872, + "linearizedBaseContracts": [ + 1872 + ], + "name": "SafeMath16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1704, + "nodeType": "Block", + "src": "388:108:5", + "statements": [ + { + "assignments": [ + 1690 + ], + "declarations": [ + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1704, + "src": "398:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1689, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "398:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1694, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1691, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1682, + "src": "409:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 1692, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1684, + "src": "413:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "409:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "398:16:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1696, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "432:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1697, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1682, + "src": "437:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "432:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:29:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 1695, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "424:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "424:46:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1701, + "nodeType": "ExpressionStatement", + "src": "424:46:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1702, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "488:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1688, + "id": 1703, + "nodeType": "Return", + "src": "481:8:5" + } + ] + }, + "documentation": { + "id": 1680, + "nodeType": "StructuredDocumentation", + "src": "95:224:5", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 1705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1682, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1705, + "src": "337:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1681, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "337:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1684, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1705, + "src": "347:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1683, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "347:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:20:5" + }, + "returnParameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1705, + "src": "380:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1686, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "380:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:8:5" + }, + "scope": 1872, + "src": "324:172:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1721, + "nodeType": "Block", + "src": "831:67:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1716, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "852:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 1717, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "855:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "858:32:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 1715, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1722, + 1750 + ], + "referencedDeclaration": 1750, + "src": "848:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" + } + }, + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "848:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1714, + "id": 1720, + "nodeType": "Return", + "src": "841:50:5" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "502:260:5", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1722, + "src": "780:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1707, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "780:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1722, + "src": "790:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1709, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "790:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "779:20:5" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1722, + "src": "823:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1712, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "823:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "822:8:5" + }, + "scope": 1872, + "src": "767:131:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1749, + "nodeType": "Block", + "src": "1281:91:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1735, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "1299:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1736, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1304:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1299:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1738, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1729, + "src": "1307:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1734, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1291:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1740, + "nodeType": "ExpressionStatement", + "src": "1291:29:5" + }, + { + "assignments": [ + 1742 + ], + "declarations": [ + { + "constant": false, + "id": 1742, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1749, + "src": "1330:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1741, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1330:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1746, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1743, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1341:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1744, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "1345:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1341:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1330:16:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1747, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1742, + "src": "1364:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1733, + "id": 1748, + "nodeType": "Return", + "src": "1357:8:5" + } + ] + }, + "documentation": { + "id": 1723, + "nodeType": "StructuredDocumentation", + "src": "904:280:5", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1750, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1202:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1724, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1202:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1727, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1212:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1726, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1212:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1222:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1222:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:48:5" + }, + "returnParameters": { + "id": 1733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1732, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1273:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1731, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1273:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:8:5" + }, + "scope": 1872, + "src": "1189:183:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1784, + "nodeType": "Block", + "src": "1683:391:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1760, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "1915:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1920:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1915:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1766, + "nodeType": "IfStatement", + "src": "1911:45:5", + "trueBody": { + "id": 1765, + "nodeType": "Block", + "src": "1923:33:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1944:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1759, + "id": 1764, + "nodeType": "Return", + "src": "1937:8:5" + } + ] + } + }, + { + "assignments": [ + 1768 + ], + "declarations": [ + { + "constant": false, + "id": 1768, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1784, + "src": "1966:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1767, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1966:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1772, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1769, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "1977:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1770, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "1981:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1977:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1966:16:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1774, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1768, + "src": "2000:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "2004:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2000:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1777, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "2009:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2000:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:35:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1773, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1992:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1992:56:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1781, + "nodeType": "ExpressionStatement", + "src": "1992:56:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1782, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1768, + "src": "2066:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1759, + "id": 1783, + "nodeType": "Return", + "src": "2059:8:5" + } + ] + }, + "documentation": { + "id": 1751, + "nodeType": "StructuredDocumentation", + "src": "1378:236:5", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1785, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1753, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1785, + "src": "1632:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1752, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1632:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1755, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1785, + "src": "1642:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1754, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1642:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1631:20:5" + }, + "returnParameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1758, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1785, + "src": "1675:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1757, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1675:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:8:5" + }, + "scope": 1872, + "src": "1619:455:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1801, + "nodeType": "Block", + "src": "2600:63:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1796, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "2621:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 1797, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "2624:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:28:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1795, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1802, + 1830 + ], + "referencedDeclaration": 1830, + "src": "2617:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1794, + "id": 1800, + "nodeType": "Return", + "src": "2610:46:5" + } + ] + }, + "documentation": { + "id": 1786, + "nodeType": "StructuredDocumentation", + "src": "2080:451:5", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1802, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1788, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "2549:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1787, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2549:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1790, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "2559:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1789, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2559:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2548:20:5" + }, + "returnParameters": { + "id": 1794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "2592:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1792, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2592:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2591:8:5" + }, + "scope": 1872, + "src": "2536:127:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1829, + "nodeType": "Block", + "src": "3237:176:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1815, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "3255:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3259:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3255:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1818, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "3262:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1814, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3247:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1820, + "nodeType": "ExpressionStatement", + "src": "3247:28:5" + }, + { + "assignments": [ + 1822 + ], + "declarations": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1829, + "src": "3285:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1821, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3285:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1826, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1823, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "3296:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1824, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "3300:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "3296:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3285:16:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1827, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "3405:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1813, + "id": 1828, + "nodeType": "Return", + "src": "3398:8:5" + } + ] + }, + "documentation": { + "id": 1803, + "nodeType": "StructuredDocumentation", + "src": "2669:471:5", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3158:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1804, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3158:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3168:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1806, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3168:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1809, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3178:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1808, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3178:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3157:48:5" + }, + "returnParameters": { + "id": 1813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1812, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3229:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1811, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3229:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3228:8:5" + }, + "scope": 1872, + "src": "3145:268:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1846, + "nodeType": "Block", + "src": "3928:61:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1841, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3949:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 1842, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "3952:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3955:26:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1840, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1847, + 1871 + ], + "referencedDeclaration": 1871, + "src": "3945:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" + } + }, + "id": 1844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3945:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1839, + "id": 1845, + "nodeType": "Return", + "src": "3938:44:5" + } + ] + }, + "documentation": { + "id": 1831, + "nodeType": "StructuredDocumentation", + "src": "3419:440:5", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1847, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1847, + "src": "3877:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1832, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3877:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1835, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1847, + "src": "3887:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1834, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3887:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3876:20:5" + }, + "returnParameters": { + "id": 1839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1838, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1847, + "src": "3920:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1837, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3920:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3919:8:5" + }, + "scope": 1872, + "src": "3864:125:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1870, + "nodeType": "Block", + "src": "4552:68:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1860, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1852, + "src": "4570:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4575:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4570:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1863, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1854, + "src": "4578:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1859, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4562:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4562:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1865, + "nodeType": "ExpressionStatement", + "src": "4562:29:5" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1866, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1850, + "src": "4608:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 1867, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1852, + "src": "4612:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "4608:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1858, + "id": 1869, + "nodeType": "Return", + "src": "4601:12:5" + } + ] + }, + "documentation": { + "id": 1848, + "nodeType": "StructuredDocumentation", + "src": "3995:460:5", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1871, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1850, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4473:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1849, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4473:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1852, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4483:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1851, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4483:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4493:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1853, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4493:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4472:48:5" + }, + "returnParameters": { + "id": 1858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1857, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4544:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1856, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4544:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4543:8:5" + }, + "scope": 1872, + "src": "4460:160:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1873, + "src": "70:4552:5" + } + ], + "src": "0:4623:5" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", + "exportedSymbols": { + "SafeMath16": [ + 1872 + ] + }, + "id": 1873, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1679, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:5" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 1872, + "linearizedBaseContracts": [ + 1872 + ], + "name": "SafeMath16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1704, + "nodeType": "Block", + "src": "388:108:5", + "statements": [ + { + "assignments": [ + 1690 + ], + "declarations": [ + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1704, + "src": "398:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1689, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "398:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1694, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1691, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1682, + "src": "409:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 1692, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1684, + "src": "413:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "409:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "398:16:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1696, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "432:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1697, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1682, + "src": "437:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "432:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:29:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 1695, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "424:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "424:46:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1701, + "nodeType": "ExpressionStatement", + "src": "424:46:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1702, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "488:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1688, + "id": 1703, + "nodeType": "Return", + "src": "481:8:5" + } + ] + }, + "documentation": { + "id": 1680, + "nodeType": "StructuredDocumentation", + "src": "95:224:5", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 1705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1682, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1705, + "src": "337:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1681, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "337:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1684, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1705, + "src": "347:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1683, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "347:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:20:5" + }, + "returnParameters": { + "id": 1688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1687, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1705, + "src": "380:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1686, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "380:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:8:5" + }, + "scope": 1872, + "src": "324:172:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1721, + "nodeType": "Block", + "src": "831:67:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1716, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "852:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 1717, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "855:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "858:32:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 1715, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1722, + 1750 + ], + "referencedDeclaration": 1750, + "src": "848:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" + } + }, + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "848:43:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1714, + "id": 1720, + "nodeType": "Return", + "src": "841:50:5" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "502:260:5", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1722, + "src": "780:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1707, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "780:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1722, + "src": "790:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1709, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "790:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "779:20:5" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1722, + "src": "823:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1712, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "823:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "822:8:5" + }, + "scope": 1872, + "src": "767:131:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1749, + "nodeType": "Block", + "src": "1281:91:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1735, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "1299:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1736, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1304:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1299:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1738, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1729, + "src": "1307:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1734, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1291:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1740, + "nodeType": "ExpressionStatement", + "src": "1291:29:5" + }, + { + "assignments": [ + 1742 + ], + "declarations": [ + { + "constant": false, + "id": 1742, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1749, + "src": "1330:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1741, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1330:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1746, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1743, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1725, + "src": "1341:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1744, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1727, + "src": "1345:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1341:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1330:16:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1747, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1742, + "src": "1364:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1733, + "id": 1748, + "nodeType": "Return", + "src": "1357:8:5" + } + ] + }, + "documentation": { + "id": 1723, + "nodeType": "StructuredDocumentation", + "src": "904:280:5", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1750, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1725, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1202:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1724, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1202:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1727, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1212:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1726, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1212:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1729, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1222:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1222:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:48:5" + }, + "returnParameters": { + "id": 1733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1732, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1750, + "src": "1273:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1731, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1273:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:8:5" + }, + "scope": 1872, + "src": "1189:183:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1784, + "nodeType": "Block", + "src": "1683:391:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1760, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "1915:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1920:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1915:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1766, + "nodeType": "IfStatement", + "src": "1911:45:5", + "trueBody": { + "id": 1765, + "nodeType": "Block", + "src": "1923:33:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1944:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1759, + "id": 1764, + "nodeType": "Return", + "src": "1937:8:5" + } + ] + } + }, + { + "assignments": [ + 1768 + ], + "declarations": [ + { + "constant": false, + "id": 1768, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1784, + "src": "1966:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1767, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1966:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1772, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1769, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "1977:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1770, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "1981:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1977:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1966:16:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1774, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1768, + "src": "2000:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1753, + "src": "2004:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2000:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1777, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1755, + "src": "2009:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2000:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:35:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1773, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1992:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1992:56:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1781, + "nodeType": "ExpressionStatement", + "src": "1992:56:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1782, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1768, + "src": "2066:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1759, + "id": 1783, + "nodeType": "Return", + "src": "2059:8:5" + } + ] + }, + "documentation": { + "id": 1751, + "nodeType": "StructuredDocumentation", + "src": "1378:236:5", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1785, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1753, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1785, + "src": "1632:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1752, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1632:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1755, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1785, + "src": "1642:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1754, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1642:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1631:20:5" + }, + "returnParameters": { + "id": 1759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1758, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1785, + "src": "1675:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1757, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1675:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:8:5" + }, + "scope": 1872, + "src": "1619:455:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1801, + "nodeType": "Block", + "src": "2600:63:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1796, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1788, + "src": "2621:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 1797, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1790, + "src": "2624:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:28:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1795, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1802, + 1830 + ], + "referencedDeclaration": 1830, + "src": "2617:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" + } + }, + "id": 1799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:39:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1794, + "id": 1800, + "nodeType": "Return", + "src": "2610:46:5" + } + ] + }, + "documentation": { + "id": 1786, + "nodeType": "StructuredDocumentation", + "src": "2080:451:5", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1802, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1791, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1788, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "2549:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1787, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2549:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1790, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "2559:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1789, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2559:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2548:20:5" + }, + "returnParameters": { + "id": 1794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1802, + "src": "2592:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1792, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "2592:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2591:8:5" + }, + "scope": 1872, + "src": "2536:127:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1829, + "nodeType": "Block", + "src": "3237:176:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1815, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "3255:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3259:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3255:5:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1818, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "3262:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1814, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3247:28:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1820, + "nodeType": "ExpressionStatement", + "src": "3247:28:5" + }, + { + "assignments": [ + 1822 + ], + "declarations": [ + { + "constant": false, + "id": 1822, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1829, + "src": "3285:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1821, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3285:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1826, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1823, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1805, + "src": "3296:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1824, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "3300:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "3296:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3285:16:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 1827, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "3405:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1813, + "id": 1828, + "nodeType": "Return", + "src": "3398:8:5" + } + ] + }, + "documentation": { + "id": 1803, + "nodeType": "StructuredDocumentation", + "src": "2669:471:5", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3158:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1804, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3158:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3168:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1806, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3168:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1809, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3178:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1808, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3178:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3157:48:5" + }, + "returnParameters": { + "id": 1813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1812, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1830, + "src": "3229:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1811, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3229:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3228:8:5" + }, + "scope": 1872, + "src": "3145:268:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1846, + "nodeType": "Block", + "src": "3928:61:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1841, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1833, + "src": "3949:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "id": 1842, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "3952:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3955:26:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1840, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1847, + 1871 + ], + "referencedDeclaration": 1871, + "src": "3945:3:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" + } + }, + "id": 1844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3945:37:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1839, + "id": 1845, + "nodeType": "Return", + "src": "3938:44:5" + } + ] + }, + "documentation": { + "id": 1831, + "nodeType": "StructuredDocumentation", + "src": "3419:440:5", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1847, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1833, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1847, + "src": "3877:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1832, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3877:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1835, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1847, + "src": "3887:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1834, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3887:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3876:20:5" + }, + "returnParameters": { + "id": 1839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1838, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1847, + "src": "3920:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1837, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3920:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3919:8:5" + }, + "scope": 1872, + "src": "3864:125:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1870, + "nodeType": "Block", + "src": "4552:68:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1860, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1852, + "src": "4570:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4575:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4570:6:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1863, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1854, + "src": "4578:12:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1859, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4562:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4562:29:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1865, + "nodeType": "ExpressionStatement", + "src": "4562:29:5" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1866, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1850, + "src": "4608:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 1867, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1852, + "src": "4612:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "4608:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 1858, + "id": 1869, + "nodeType": "Return", + "src": "4601:12:5" + } + ] + }, + "documentation": { + "id": 1848, + "nodeType": "StructuredDocumentation", + "src": "3995:460:5", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1871, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1850, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4473:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1849, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4473:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1852, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4483:8:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1851, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4483:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4493:26:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1853, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4493:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4472:48:5" + }, + "returnParameters": { + "id": 1858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1857, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1871, + "src": "4544:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 1856, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4544:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4543:8:5" + }, + "scope": 1872, + "src": "4460:160:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1873, + "src": "70:4552:5" + } + ], + "src": "0:4623:5" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.547Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath32.json b/smart-contracts/build/contracts/SafeMath32.json new file mode 100644 index 0000000000..e560aad2d7 --- /dev/null +++ b/smart-contracts/build/contracts/SafeMath32.json @@ -0,0 +1,5137 @@ +{ + "contractName": "SafeMath32", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":\"SafeMath32\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220850da4e04fd442cb4bac09a608c69852651a1fbea0f7e7448588abe3245b404a64736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220850da4e04fd442cb4bac09a608c69852651a1fbea0f7e7448588abe3245b404a64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "70:4552:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "70:4552:6:-:0;;;;;;;;", + "source": "pragma solidity ^0.6.0;\n\n// uint32 version of OpenZeppelin's SafeMath\nlibrary SafeMath32 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint32 a, uint32 b) internal pure returns (uint32) {\n uint32 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint32 a, uint32 b) internal pure returns (uint32) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) {\n require(b <= a, errorMessage);\n uint32 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint32 a, uint32 b) internal pure returns (uint32) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint32 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint32 a, uint32 b) internal pure returns (uint32) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) {\n require(b > 0, errorMessage);\n uint32 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint32 a, uint32 b) internal pure returns (uint32) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "exportedSymbols": { + "SafeMath32": [ + 2067 + ] + }, + "id": 2068, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1874, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:6" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2067, + "linearizedBaseContracts": [ + 2067 + ], + "name": "SafeMath32", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "388:108:6", + "statements": [ + { + "assignments": [ + 1885 + ], + "declarations": [ + { + "constant": false, + "id": 1885, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1899, + "src": "398:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1884, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "398:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1889, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1886, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "409:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 1887, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "413:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "409:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "398:16:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1891, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1885, + "src": "432:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1892, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "437:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "432:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:29:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 1890, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "424:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "424:46:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1896, + "nodeType": "ExpressionStatement", + "src": "424:46:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1897, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1885, + "src": "488:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1883, + "id": 1898, + "nodeType": "Return", + "src": "481:8:6" + } + ] + }, + "documentation": { + "id": 1875, + "nodeType": "StructuredDocumentation", + "src": "95:224:6", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1877, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "337:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1876, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "337:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1879, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "347:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1878, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "347:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:20:6" + }, + "returnParameters": { + "id": 1883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1882, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "380:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1881, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "380:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:8:6" + }, + "scope": 2067, + "src": "324:172:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1916, + "nodeType": "Block", + "src": "831:67:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1911, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "852:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 1912, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "855:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "858:32:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 1910, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1917, + 1945 + ], + "referencedDeclaration": 1945, + "src": "848:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "848:43:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1909, + "id": 1915, + "nodeType": "Return", + "src": "841:50:6" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "502:260:6", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1917, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1917, + "src": "780:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1902, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "780:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1917, + "src": "790:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1904, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "790:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "779:20:6" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1917, + "src": "823:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1907, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "823:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "822:8:6" + }, + "scope": 2067, + "src": "767:131:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1944, + "nodeType": "Block", + "src": "1281:91:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1930, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1922, + "src": "1299:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1931, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1920, + "src": "1304:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1299:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1933, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1924, + "src": "1307:12:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1929, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1291:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1935, + "nodeType": "ExpressionStatement", + "src": "1291:29:6" + }, + { + "assignments": [ + 1937 + ], + "declarations": [ + { + "constant": false, + "id": 1937, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1944, + "src": "1330:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1936, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1330:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1941, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1938, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1920, + "src": "1341:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1939, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1922, + "src": "1345:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1341:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1330:16:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1942, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1937, + "src": "1364:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1928, + "id": 1943, + "nodeType": "Return", + "src": "1357:8:6" + } + ] + }, + "documentation": { + "id": 1918, + "nodeType": "StructuredDocumentation", + "src": "904:280:6", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1945, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1920, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1202:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1919, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1202:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1922, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1212:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1921, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1212:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1924, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1222:26:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1923, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1222:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:48:6" + }, + "returnParameters": { + "id": 1928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1273:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1926, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1273:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:8:6" + }, + "scope": 2067, + "src": "1189:183:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1979, + "nodeType": "Block", + "src": "1683:391:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1955, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "1915:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1920:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1915:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1961, + "nodeType": "IfStatement", + "src": "1911:45:6", + "trueBody": { + "id": 1960, + "nodeType": "Block", + "src": "1923:33:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1944:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1954, + "id": 1959, + "nodeType": "Return", + "src": "1937:8:6" + } + ] + } + }, + { + "assignments": [ + 1963 + ], + "declarations": [ + { + "constant": false, + "id": 1963, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1979, + "src": "1966:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1962, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1966:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1967, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1964, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "1977:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1965, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1950, + "src": "1981:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1977:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1966:16:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1969, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "2000:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1970, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "2004:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "2000:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1972, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1950, + "src": "2009:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "2000:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:35:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1968, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1992:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1992:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1976, + "nodeType": "ExpressionStatement", + "src": "1992:56:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1977, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "2066:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1954, + "id": 1978, + "nodeType": "Return", + "src": "2059:8:6" + } + ] + }, + "documentation": { + "id": 1946, + "nodeType": "StructuredDocumentation", + "src": "1378:236:6", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1980, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1948, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1980, + "src": "1632:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1947, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1632:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1950, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1980, + "src": "1642:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1949, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1642:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1631:20:6" + }, + "returnParameters": { + "id": 1954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1953, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1980, + "src": "1675:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1952, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1675:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:8:6" + }, + "scope": 2067, + "src": "1619:455:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1996, + "nodeType": "Block", + "src": "2600:63:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1991, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "2621:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 1992, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1985, + "src": "2624:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:28:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1990, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1997, + 2025 + ], + "referencedDeclaration": 2025, + "src": "2617:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" + } + }, + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1989, + "id": 1995, + "nodeType": "Return", + "src": "2610:46:6" + } + ] + }, + "documentation": { + "id": 1981, + "nodeType": "StructuredDocumentation", + "src": "2080:451:6", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1997, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1986, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1997, + "src": "2549:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1982, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2549:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1985, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1997, + "src": "2559:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1984, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2559:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2548:20:6" + }, + "returnParameters": { + "id": 1989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1988, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1997, + "src": "2592:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1987, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2592:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2591:8:6" + }, + "scope": 2067, + "src": "2536:127:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2024, + "nodeType": "Block", + "src": "3237:176:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2002, + "src": "3255:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3259:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3255:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2013, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "3262:12:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2009, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3247:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3247:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2015, + "nodeType": "ExpressionStatement", + "src": "3247:28:6" + }, + { + "assignments": [ + 2017 + ], + "declarations": [ + { + "constant": false, + "id": 2017, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2024, + "src": "3285:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2016, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3285:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2021, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2018, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "3296:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2019, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2002, + "src": "3300:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3296:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3285:16:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 2022, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "3405:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2008, + "id": 2023, + "nodeType": "Return", + "src": "3398:8:6" + } + ] + }, + "documentation": { + "id": 1998, + "nodeType": "StructuredDocumentation", + "src": "2669:471:6", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2025, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3158:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1999, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3158:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2002, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3168:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2001, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3168:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2004, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3178:26:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2003, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3178:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3157:48:6" + }, + "returnParameters": { + "id": 2008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3229:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2006, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3229:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3228:8:6" + }, + "scope": 2067, + "src": "3145:268:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2041, + "nodeType": "Block", + "src": "3928:61:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2036, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2028, + "src": "3949:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 2037, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "3952:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3955:26:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 2035, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2042, + 2066 + ], + "referencedDeclaration": 2066, + "src": "3945:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" + } + }, + "id": 2039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3945:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2034, + "id": 2040, + "nodeType": "Return", + "src": "3938:44:6" + } + ] + }, + "documentation": { + "id": 2026, + "nodeType": "StructuredDocumentation", + "src": "3419:440:6", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2028, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2042, + "src": "3877:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2027, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3877:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2030, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2042, + "src": "3887:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2029, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3887:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3876:20:6" + }, + "returnParameters": { + "id": 2034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2042, + "src": "3920:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2032, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3920:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3919:8:6" + }, + "scope": 2067, + "src": "3864:125:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2065, + "nodeType": "Block", + "src": "4552:68:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2055, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2047, + "src": "4570:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4575:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4570:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2058, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2049, + "src": "4578:12:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2054, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4562:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4562:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2060, + "nodeType": "ExpressionStatement", + "src": "4562:29:6" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2061, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2045, + "src": "4608:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 2062, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2047, + "src": "4612:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4608:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2053, + "id": 2064, + "nodeType": "Return", + "src": "4601:12:6" + } + ] + }, + "documentation": { + "id": 2043, + "nodeType": "StructuredDocumentation", + "src": "3995:460:6", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2066, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2045, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4473:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2044, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4473:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2047, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4483:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2046, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4483:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2049, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4493:26:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2048, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4493:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4472:48:6" + }, + "returnParameters": { + "id": 2053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2052, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4544:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2051, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4544:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4543:8:6" + }, + "scope": 2067, + "src": "4460:160:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2068, + "src": "70:4552:6" + } + ], + "src": "0:4623:6" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", + "exportedSymbols": { + "SafeMath32": [ + 2067 + ] + }, + "id": 2068, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1874, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:6" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2067, + "linearizedBaseContracts": [ + 2067 + ], + "name": "SafeMath32", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "388:108:6", + "statements": [ + { + "assignments": [ + 1885 + ], + "declarations": [ + { + "constant": false, + "id": 1885, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1899, + "src": "398:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1884, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "398:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1889, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1886, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "409:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 1887, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "413:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "409:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "398:16:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1891, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1885, + "src": "432:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 1892, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "437:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "432:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:29:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 1890, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "424:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "424:46:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1896, + "nodeType": "ExpressionStatement", + "src": "424:46:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1897, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1885, + "src": "488:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1883, + "id": 1898, + "nodeType": "Return", + "src": "481:8:6" + } + ] + }, + "documentation": { + "id": 1875, + "nodeType": "StructuredDocumentation", + "src": "95:224:6", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1877, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "337:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1876, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "337:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1879, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "347:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1878, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "347:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:20:6" + }, + "returnParameters": { + "id": 1883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1882, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1900, + "src": "380:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1881, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "380:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:8:6" + }, + "scope": 2067, + "src": "324:172:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1916, + "nodeType": "Block", + "src": "831:67:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1911, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "852:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 1912, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "855:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 1913, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "858:32:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 1910, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1917, + 1945 + ], + "referencedDeclaration": 1945, + "src": "848:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "848:43:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1909, + "id": 1915, + "nodeType": "Return", + "src": "841:50:6" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "502:260:6", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1917, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1917, + "src": "780:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1902, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "780:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1917, + "src": "790:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1904, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "790:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "779:20:6" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1917, + "src": "823:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1907, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "823:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "822:8:6" + }, + "scope": 2067, + "src": "767:131:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1944, + "nodeType": "Block", + "src": "1281:91:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1930, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1922, + "src": "1299:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 1931, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1920, + "src": "1304:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1299:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 1933, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1924, + "src": "1307:12:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1929, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1291:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1935, + "nodeType": "ExpressionStatement", + "src": "1291:29:6" + }, + { + "assignments": [ + 1937 + ], + "declarations": [ + { + "constant": false, + "id": 1937, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1944, + "src": "1330:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1936, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1330:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1941, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1938, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1920, + "src": "1341:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 1939, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1922, + "src": "1345:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1341:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1330:16:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1942, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1937, + "src": "1364:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1928, + "id": 1943, + "nodeType": "Return", + "src": "1357:8:6" + } + ] + }, + "documentation": { + "id": 1918, + "nodeType": "StructuredDocumentation", + "src": "904:280:6", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1945, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1920, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1202:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1919, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1202:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1922, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1212:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1921, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1212:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1924, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1222:26:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1923, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1222:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:48:6" + }, + "returnParameters": { + "id": 1928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1945, + "src": "1273:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1926, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1273:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:8:6" + }, + "scope": 2067, + "src": "1189:183:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1979, + "nodeType": "Block", + "src": "1683:391:6", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1955, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "1915:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1920:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1915:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 1961, + "nodeType": "IfStatement", + "src": "1911:45:6", + "trueBody": { + "id": 1960, + "nodeType": "Block", + "src": "1923:33:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1944:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 1954, + "id": 1959, + "nodeType": "Return", + "src": "1937:8:6" + } + ] + } + }, + { + "assignments": [ + 1963 + ], + "declarations": [ + { + "constant": false, + "id": 1963, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1979, + "src": "1966:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1962, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1966:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1967, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1964, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "1977:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 1965, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1950, + "src": "1981:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1977:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1966:16:6" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1969, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "2000:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 1970, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1948, + "src": "2004:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "2000:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 1972, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1950, + "src": "2009:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "2000:10:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:35:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1968, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1992:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1992:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1976, + "nodeType": "ExpressionStatement", + "src": "1992:56:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 1977, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "2066:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1954, + "id": 1978, + "nodeType": "Return", + "src": "2059:8:6" + } + ] + }, + "documentation": { + "id": 1946, + "nodeType": "StructuredDocumentation", + "src": "1378:236:6", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1980, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1948, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1980, + "src": "1632:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1947, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1632:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1950, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1980, + "src": "1642:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1949, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1642:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1631:20:6" + }, + "returnParameters": { + "id": 1954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1953, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1980, + "src": "1675:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1952, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1675:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:8:6" + }, + "scope": 2067, + "src": "1619:455:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1996, + "nodeType": "Block", + "src": "2600:63:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1991, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "2621:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 1992, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1985, + "src": "2624:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:28:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1990, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1997, + 2025 + ], + "referencedDeclaration": 2025, + "src": "2617:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" + } + }, + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 1989, + "id": 1995, + "nodeType": "Return", + "src": "2610:46:6" + } + ] + }, + "documentation": { + "id": 1981, + "nodeType": "StructuredDocumentation", + "src": "2080:451:6", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1997, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 1986, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1997, + "src": "2549:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1982, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2549:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1985, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1997, + "src": "2559:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1984, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2559:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2548:20:6" + }, + "returnParameters": { + "id": 1989, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1988, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 1997, + "src": "2592:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1987, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "2592:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2591:8:6" + }, + "scope": 2067, + "src": "2536:127:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2024, + "nodeType": "Block", + "src": "3237:176:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2002, + "src": "3255:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3259:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3255:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2013, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2004, + "src": "3262:12:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2009, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3247:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3247:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2015, + "nodeType": "ExpressionStatement", + "src": "3247:28:6" + }, + { + "assignments": [ + 2017 + ], + "declarations": [ + { + "constant": false, + "id": 2017, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2024, + "src": "3285:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2016, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3285:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2021, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2018, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2000, + "src": "3296:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2019, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2002, + "src": "3300:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "3296:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3285:16:6" + }, + { + "expression": { + "argumentTypes": null, + "id": 2022, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2017, + "src": "3405:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2008, + "id": 2023, + "nodeType": "Return", + "src": "3398:8:6" + } + ] + }, + "documentation": { + "id": 1998, + "nodeType": "StructuredDocumentation", + "src": "2669:471:6", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2025, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2000, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3158:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 1999, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3158:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2002, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3168:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2001, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3168:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2004, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3178:26:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2003, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3178:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3157:48:6" + }, + "returnParameters": { + "id": 2008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2007, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2025, + "src": "3229:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2006, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3229:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3228:8:6" + }, + "scope": 2067, + "src": "3145:268:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2041, + "nodeType": "Block", + "src": "3928:61:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2036, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2028, + "src": "3949:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "id": 2037, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "3952:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 2038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3955:26:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 2035, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2042, + 2066 + ], + "referencedDeclaration": 2066, + "src": "3945:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", + "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" + } + }, + "id": 2039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3945:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2034, + "id": 2040, + "nodeType": "Return", + "src": "3938:44:6" + } + ] + }, + "documentation": { + "id": 2026, + "nodeType": "StructuredDocumentation", + "src": "3419:440:6", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2028, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2042, + "src": "3877:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2027, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3877:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2030, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2042, + "src": "3887:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2029, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3887:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3876:20:6" + }, + "returnParameters": { + "id": 2034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2042, + "src": "3920:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2032, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "3920:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3919:8:6" + }, + "scope": 2067, + "src": "3864:125:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2065, + "nodeType": "Block", + "src": "4552:68:6", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2055, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2047, + "src": "4570:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4575:1:6", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4570:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2058, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2049, + "src": "4578:12:6", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2054, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4562:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4562:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2060, + "nodeType": "ExpressionStatement", + "src": "4562:29:6" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2061, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2045, + "src": "4608:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 2062, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2047, + "src": "4612:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4608:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 2053, + "id": 2064, + "nodeType": "Return", + "src": "4601:12:6" + } + ] + }, + "documentation": { + "id": 2043, + "nodeType": "StructuredDocumentation", + "src": "3995:460:6", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2066, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2050, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2045, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4473:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2044, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4473:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2047, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4483:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2046, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4483:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2049, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4493:26:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2048, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4493:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4472:48:6" + }, + "returnParameters": { + "id": 2053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2052, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2066, + "src": "4544:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2051, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4544:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4543:8:6" + }, + "scope": 2067, + "src": "4460:160:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2068, + "src": "70:4552:6" + } + ], + "src": "0:4623:6" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.550Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath64.json b/smart-contracts/build/contracts/SafeMath64.json new file mode 100644 index 0000000000..1b9f8c670d --- /dev/null +++ b/smart-contracts/build/contracts/SafeMath64.json @@ -0,0 +1,5137 @@ +{ + "contractName": "SafeMath64", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":\"SafeMath64\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7620ab407e888b71e9a9273d92887fc5bb9074d2cdaa9f429bb537be41a72a464736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7620ab407e888b71e9a9273d92887fc5bb9074d2cdaa9f429bb537be41a72a464736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "70:4552:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "70:4552:7:-:0;;;;;;;;", + "source": "pragma solidity ^0.6.0;\n\n// uint64 version of OpenZeppelin's SafeMath\nlibrary SafeMath64 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint64 a, uint64 b) internal pure returns (uint64) {\n uint64 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint64 a, uint64 b) internal pure returns (uint64) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) {\n require(b <= a, errorMessage);\n uint64 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint64 a, uint64 b) internal pure returns (uint64) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint64 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint64 a, uint64 b) internal pure returns (uint64) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) {\n require(b > 0, errorMessage);\n uint64 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint64 a, uint64 b) internal pure returns (uint64) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "exportedSymbols": { + "SafeMath64": [ + 2262 + ] + }, + "id": 2263, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2069, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2262, + "linearizedBaseContracts": [ + 2262 + ], + "name": "SafeMath64", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2094, + "nodeType": "Block", + "src": "388:108:7", + "statements": [ + { + "assignments": [ + 2080 + ], + "declarations": [ + { + "constant": false, + "id": 2080, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2094, + "src": "398:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2079, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "398:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2084, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2072, + "src": "409:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2074, + "src": "413:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "409:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "398:16:7" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2086, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2080, + "src": "432:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2087, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2072, + "src": "437:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "432:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:29:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 2085, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "424:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "424:46:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2091, + "nodeType": "ExpressionStatement", + "src": "424:46:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2092, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2080, + "src": "488:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2078, + "id": 2093, + "nodeType": "Return", + "src": "481:8:7" + } + ] + }, + "documentation": { + "id": 2070, + "nodeType": "StructuredDocumentation", + "src": "95:224:7", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 2095, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2072, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2095, + "src": "337:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2071, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "337:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2074, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2095, + "src": "347:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2073, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "347:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:20:7" + }, + "returnParameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2095, + "src": "380:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2076, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "380:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:8:7" + }, + "scope": 2262, + "src": "324:172:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2111, + "nodeType": "Block", + "src": "831:67:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2106, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2098, + "src": "852:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 2107, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "855:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 2108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "858:32:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 2105, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2112, + 2140 + ], + "referencedDeclaration": 2140, + "src": "848:3:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" + } + }, + "id": 2109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "848:43:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2104, + "id": 2110, + "nodeType": "Return", + "src": "841:50:7" + } + ] + }, + "documentation": { + "id": 2096, + "nodeType": "StructuredDocumentation", + "src": "502:260:7", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2112, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2098, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2112, + "src": "780:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2097, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "780:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2112, + "src": "790:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2099, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "790:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "779:20:7" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2112, + "src": "823:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2102, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "823:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "822:8:7" + }, + "scope": 2262, + "src": "767:131:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2139, + "nodeType": "Block", + "src": "1281:91:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2125, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2117, + "src": "1299:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2126, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "1304:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "1299:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2128, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2119, + "src": "1307:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2124, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1291:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:29:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "1291:29:7" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2139, + "src": "1330:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2131, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1330:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2136, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2133, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "1341:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 2134, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2117, + "src": "1345:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "1341:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1330:16:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2137, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "1364:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2123, + "id": 2138, + "nodeType": "Return", + "src": "1357:8:7" + } + ] + }, + "documentation": { + "id": 2113, + "nodeType": "StructuredDocumentation", + "src": "904:280:7", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2140, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1202:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2114, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1202:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2117, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1212:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2116, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1212:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2119, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1222:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2118, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1222:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:48:7" + }, + "returnParameters": { + "id": 2123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2122, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1273:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2121, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1273:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:8:7" + }, + "scope": 2262, + "src": "1189:183:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2174, + "nodeType": "Block", + "src": "1683:391:7", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2150, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "1915:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1920:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1915:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2156, + "nodeType": "IfStatement", + "src": "1911:45:7", + "trueBody": { + "id": 2155, + "nodeType": "Block", + "src": "1923:33:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1944:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2149, + "id": 2154, + "nodeType": "Return", + "src": "1937:8:7" + } + ] + } + }, + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2174, + "src": "1966:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2157, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1966:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2162, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2159, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "1977:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 2160, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "1981:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "1977:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1966:16:7" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2164, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "2000:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2165, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "2004:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "2000:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2167, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "2009:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "2000:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:35:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 2163, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1992:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1992:56:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2171, + "nodeType": "ExpressionStatement", + "src": "1992:56:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2172, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "2066:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2149, + "id": 2173, + "nodeType": "Return", + "src": "2059:8:7" + } + ] + }, + "documentation": { + "id": 2141, + "nodeType": "StructuredDocumentation", + "src": "1378:236:7", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 2175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2143, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2175, + "src": "1632:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2142, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1632:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2175, + "src": "1642:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2144, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1642:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1631:20:7" + }, + "returnParameters": { + "id": 2149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2175, + "src": "1675:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2147, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1675:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:8:7" + }, + "scope": 2262, + "src": "1619:455:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2191, + "nodeType": "Block", + "src": "2600:63:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2186, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "2621:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 2187, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2180, + "src": "2624:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:28:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 2185, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2192, + 2220 + ], + "referencedDeclaration": 2220, + "src": "2617:3:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" + } + }, + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:39:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2184, + "id": 2190, + "nodeType": "Return", + "src": "2610:46:7" + } + ] + }, + "documentation": { + "id": 2176, + "nodeType": "StructuredDocumentation", + "src": "2080:451:7", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2192, + "src": "2549:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2177, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2549:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2180, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2192, + "src": "2559:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2179, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2559:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2548:20:7" + }, + "returnParameters": { + "id": 2184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2183, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2192, + "src": "2592:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2182, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2592:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2591:8:7" + }, + "scope": 2262, + "src": "2536:127:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2219, + "nodeType": "Block", + "src": "3237:176:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2205, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2197, + "src": "3255:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3259:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3255:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2208, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "3262:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2204, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3247:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3247:28:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2210, + "nodeType": "ExpressionStatement", + "src": "3247:28:7" + }, + { + "assignments": [ + 2212 + ], + "declarations": [ + { + "constant": false, + "id": 2212, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2219, + "src": "3285:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2211, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3285:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2216, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2213, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "3296:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2214, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2197, + "src": "3300:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "3296:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3285:16:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2217, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "3405:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2203, + "id": 2218, + "nodeType": "Return", + "src": "3398:8:7" + } + ] + }, + "documentation": { + "id": 2193, + "nodeType": "StructuredDocumentation", + "src": "2669:471:7", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2220, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2195, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3158:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2194, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3158:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2197, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3168:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2196, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3168:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3178:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2198, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3178:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3157:48:7" + }, + "returnParameters": { + "id": 2203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2202, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3229:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2201, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3229:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3228:8:7" + }, + "scope": 2262, + "src": "3145:268:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2236, + "nodeType": "Block", + "src": "3928:61:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2231, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "3949:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 2232, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2225, + "src": "3952:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3955:26:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 2230, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2237, + 2261 + ], + "referencedDeclaration": 2261, + "src": "3945:3:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" + } + }, + "id": 2234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3945:37:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2229, + "id": 2235, + "nodeType": "Return", + "src": "3938:44:7" + } + ] + }, + "documentation": { + "id": 2221, + "nodeType": "StructuredDocumentation", + "src": "3419:440:7", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2237, + "src": "3877:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2222, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3877:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2225, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2237, + "src": "3887:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2224, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3887:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3876:20:7" + }, + "returnParameters": { + "id": 2229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2228, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2237, + "src": "3920:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2227, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3920:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3919:8:7" + }, + "scope": 2262, + "src": "3864:125:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2260, + "nodeType": "Block", + "src": "4552:68:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2250, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "4570:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4575:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4570:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2253, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "4578:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2249, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4562:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4562:29:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2255, + "nodeType": "ExpressionStatement", + "src": "4562:29:7" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2256, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "4608:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 2257, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "4612:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "4608:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2248, + "id": 2259, + "nodeType": "Return", + "src": "4601:12:7" + } + ] + }, + "documentation": { + "id": 2238, + "nodeType": "StructuredDocumentation", + "src": "3995:460:7", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2240, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4473:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2239, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4473:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4483:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2241, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4483:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2244, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4493:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2243, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4493:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4472:48:7" + }, + "returnParameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2247, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4544:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2246, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4544:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4543:8:7" + }, + "scope": 2262, + "src": "4460:160:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2263, + "src": "70:4552:7" + } + ], + "src": "0:4623:7" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "exportedSymbols": { + "SafeMath64": [ + 2262 + ] + }, + "id": 2263, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2069, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:7" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2262, + "linearizedBaseContracts": [ + 2262 + ], + "name": "SafeMath64", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2094, + "nodeType": "Block", + "src": "388:108:7", + "statements": [ + { + "assignments": [ + 2080 + ], + "declarations": [ + { + "constant": false, + "id": 2080, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2094, + "src": "398:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2079, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "398:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2084, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2072, + "src": "409:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2074, + "src": "413:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "409:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "398:16:7" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2086, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2080, + "src": "432:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2087, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2072, + "src": "437:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "432:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 2089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "440:29:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 2085, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "424:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "424:46:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2091, + "nodeType": "ExpressionStatement", + "src": "424:46:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2092, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2080, + "src": "488:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2078, + "id": 2093, + "nodeType": "Return", + "src": "481:8:7" + } + ] + }, + "documentation": { + "id": 2070, + "nodeType": "StructuredDocumentation", + "src": "95:224:7", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 2095, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2072, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2095, + "src": "337:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2071, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "337:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2074, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2095, + "src": "347:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2073, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "347:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "336:20:7" + }, + "returnParameters": { + "id": 2078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2095, + "src": "380:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2076, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "380:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "379:8:7" + }, + "scope": 2262, + "src": "324:172:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2111, + "nodeType": "Block", + "src": "831:67:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2106, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2098, + "src": "852:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 2107, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "855:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 2108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "858:32:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 2105, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2112, + 2140 + ], + "referencedDeclaration": 2140, + "src": "848:3:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" + } + }, + "id": 2109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "848:43:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2104, + "id": 2110, + "nodeType": "Return", + "src": "841:50:7" + } + ] + }, + "documentation": { + "id": 2096, + "nodeType": "StructuredDocumentation", + "src": "502:260:7", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2112, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2098, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2112, + "src": "780:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2097, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "780:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2112, + "src": "790:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2099, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "790:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "779:20:7" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2112, + "src": "823:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2102, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "823:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "822:8:7" + }, + "scope": 2262, + "src": "767:131:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2139, + "nodeType": "Block", + "src": "1281:91:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2125, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2117, + "src": "1299:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2126, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "1304:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "1299:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2128, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2119, + "src": "1307:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2124, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1291:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1291:29:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "1291:29:7" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2139, + "src": "1330:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2131, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1330:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2136, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2133, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "1341:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 2134, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2117, + "src": "1345:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "1341:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1330:16:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2137, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "1364:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2123, + "id": 2138, + "nodeType": "Return", + "src": "1357:8:7" + } + ] + }, + "documentation": { + "id": 2113, + "nodeType": "StructuredDocumentation", + "src": "904:280:7", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2140, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2120, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1202:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2114, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1202:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2117, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1212:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2116, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1212:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2119, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1222:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2118, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1222:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1201:48:7" + }, + "returnParameters": { + "id": 2123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2122, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2140, + "src": "1273:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2121, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1273:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1272:8:7" + }, + "scope": 2262, + "src": "1189:183:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2174, + "nodeType": "Block", + "src": "1683:391:7", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2150, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "1915:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1920:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1915:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2156, + "nodeType": "IfStatement", + "src": "1911:45:7", + "trueBody": { + "id": 2155, + "nodeType": "Block", + "src": "1923:33:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1944:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2149, + "id": 2154, + "nodeType": "Return", + "src": "1937:8:7" + } + ] + } + }, + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2174, + "src": "1966:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2157, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1966:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2162, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2159, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "1977:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 2160, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "1981:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "1977:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1966:16:7" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2164, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "2000:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2165, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2143, + "src": "2004:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "2000:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2167, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "2009:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "2000:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 2169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2012:35:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 2163, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1992:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1992:56:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2171, + "nodeType": "ExpressionStatement", + "src": "1992:56:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2172, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "2066:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2149, + "id": 2173, + "nodeType": "Return", + "src": "2059:8:7" + } + ] + }, + "documentation": { + "id": 2141, + "nodeType": "StructuredDocumentation", + "src": "1378:236:7", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 2175, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2143, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2175, + "src": "1632:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2142, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1632:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2145, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2175, + "src": "1642:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2144, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1642:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1631:20:7" + }, + "returnParameters": { + "id": 2149, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2175, + "src": "1675:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2147, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1675:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1674:8:7" + }, + "scope": 2262, + "src": "1619:455:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2191, + "nodeType": "Block", + "src": "2600:63:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2186, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "2621:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 2187, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2180, + "src": "2624:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:28:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 2185, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2192, + 2220 + ], + "referencedDeclaration": 2220, + "src": "2617:3:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" + } + }, + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2617:39:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2184, + "id": 2190, + "nodeType": "Return", + "src": "2610:46:7" + } + ] + }, + "documentation": { + "id": 2176, + "nodeType": "StructuredDocumentation", + "src": "2080:451:7", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2178, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2192, + "src": "2549:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2177, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2549:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2180, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2192, + "src": "2559:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2179, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2559:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2548:20:7" + }, + "returnParameters": { + "id": 2184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2183, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2192, + "src": "2592:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2182, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2592:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2591:8:7" + }, + "scope": 2262, + "src": "2536:127:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2219, + "nodeType": "Block", + "src": "3237:176:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2205, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2197, + "src": "3255:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3259:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3255:5:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2208, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2199, + "src": "3262:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2204, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3247:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3247:28:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2210, + "nodeType": "ExpressionStatement", + "src": "3247:28:7" + }, + { + "assignments": [ + 2212 + ], + "declarations": [ + { + "constant": false, + "id": 2212, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2219, + "src": "3285:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2211, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3285:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2216, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2213, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2195, + "src": "3296:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2214, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2197, + "src": "3300:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "3296:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3285:16:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 2217, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2212, + "src": "3405:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2203, + "id": 2218, + "nodeType": "Return", + "src": "3398:8:7" + } + ] + }, + "documentation": { + "id": 2193, + "nodeType": "StructuredDocumentation", + "src": "2669:471:7", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2220, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2200, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2195, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3158:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2194, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3158:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2197, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3168:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2196, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3168:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2199, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3178:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2198, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3178:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3157:48:7" + }, + "returnParameters": { + "id": 2203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2202, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2220, + "src": "3229:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2201, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3229:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3228:8:7" + }, + "scope": 2262, + "src": "3145:268:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2236, + "nodeType": "Block", + "src": "3928:61:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2231, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "3949:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "id": 2232, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2225, + "src": "3952:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 2233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3955:26:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 2230, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2237, + 2261 + ], + "referencedDeclaration": 2261, + "src": "3945:3:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", + "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" + } + }, + "id": 2234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3945:37:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2229, + "id": 2235, + "nodeType": "Return", + "src": "3938:44:7" + } + ] + }, + "documentation": { + "id": 2221, + "nodeType": "StructuredDocumentation", + "src": "3419:440:7", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2237, + "src": "3877:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2222, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3877:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2225, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2237, + "src": "3887:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2224, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3887:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3876:20:7" + }, + "returnParameters": { + "id": 2229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2228, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2237, + "src": "3920:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2227, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3920:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3919:8:7" + }, + "scope": 2262, + "src": "3864:125:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2260, + "nodeType": "Block", + "src": "4552:68:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2250, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "4570:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4575:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4570:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2253, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2244, + "src": "4578:12:7", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2249, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4562:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4562:29:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2255, + "nodeType": "ExpressionStatement", + "src": "4562:29:7" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 2258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2256, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2240, + "src": "4608:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 2257, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2242, + "src": "4612:1:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "4608:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 2248, + "id": 2259, + "nodeType": "Return", + "src": "4601:12:7" + } + ] + }, + "documentation": { + "id": 2238, + "nodeType": "StructuredDocumentation", + "src": "3995:460:7", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2240, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4473:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2239, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4473:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2242, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4483:8:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2241, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4483:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2244, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4493:26:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2243, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4493:6:7", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4472:48:7" + }, + "returnParameters": { + "id": 2248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2247, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2261, + "src": "4544:6:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 2246, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4544:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4543:8:7" + }, + "scope": 2262, + "src": "4460:160:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2263, + "src": "70:4552:7" + } + ], + "src": "0:4623:7" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.554Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath8.json b/smart-contracts/build/contracts/SafeMath8.json new file mode 100644 index 0000000000..ea6d335651 --- /dev/null +++ b/smart-contracts/build/contracts/SafeMath8.json @@ -0,0 +1,5137 @@ +{ + "contractName": "SafeMath8", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":\"SafeMath8\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":{\"keccak256\":\"0xad7031eb97c64c9dff0b4db53835514e46c79d710ab873cdd2d36a5fd20b8c1c\",\"urls\":[\"bzz-raw://866dcdd27d00364da1e05739d9d4b586227a66d8bc4a61f4638064774b74e9d2\",\"dweb:/ipfs/QmUbC1VsPf4Cj5xTqMiHcNBo1WLPcmmczp6M3WFAb4cpap\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d4ccefe32172b6255ebb1f26c77cbcbe9d67edd020c47a4d88019a9593a9ccc64736f6c634300060c0033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d4ccefe32172b6255ebb1f26c77cbcbe9d67edd020c47a4d88019a9593a9ccc64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "69:4523:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "69:4523:8:-:0;;;;;;;;", + "source": "pragma solidity ^0.6.0;\n\n// uint8 version of OpenZeppelin's SafeMath\nlibrary SafeMath8 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint8 a, uint8 b) internal pure returns (uint8) {\n uint8 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint8 a, uint8 b) internal pure returns (uint8) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) {\n require(b <= a, errorMessage);\n uint8 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint8 a, uint8 b) internal pure returns (uint8) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint8 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint8 a, uint8 b) internal pure returns (uint8) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) {\n require(b > 0, errorMessage);\n uint8 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint8 a, uint8 b) internal pure returns (uint8) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", + "exportedSymbols": { + "SafeMath8": [ + 2457 + ] + }, + "id": 2458, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2264, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:8" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2457, + "linearizedBaseContracts": [ + 2457 + ], + "name": "SafeMath8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2289, + "nodeType": "Block", + "src": "383:107:8", + "statements": [ + { + "assignments": [ + 2275 + ], + "declarations": [ + { + "constant": false, + "id": 2275, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2289, + "src": "393:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2274, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "393:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2279, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2276, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2267, + "src": "403:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2277, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2269, + "src": "407:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "403:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "393:15:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2281, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2275, + "src": "426:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2282, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2267, + "src": "431:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "426:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "434:29:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 2280, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "418:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "418:46:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2286, + "nodeType": "ExpressionStatement", + "src": "418:46:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2287, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2275, + "src": "482:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2273, + "id": 2288, + "nodeType": "Return", + "src": "475:8:8" + } + ] + }, + "documentation": { + "id": 2265, + "nodeType": "StructuredDocumentation", + "src": "93:224:8", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 2290, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2267, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2290, + "src": "335:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2266, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "335:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2269, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2290, + "src": "344:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2268, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "344:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "334:18:8" + }, + "returnParameters": { + "id": 2273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2272, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2290, + "src": "376:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "376:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:7:8" + }, + "scope": 2457, + "src": "322:168:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2306, + "nodeType": "Block", + "src": "822:67:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2293, + "src": "843:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "846:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "849:32:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 2300, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2307, + 2335 + ], + "referencedDeclaration": 2335, + "src": "839:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", + "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" + } + }, + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "839:43:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2299, + "id": 2305, + "nodeType": "Return", + "src": "832:50:8" + } + ] + }, + "documentation": { + "id": 2291, + "nodeType": "StructuredDocumentation", + "src": "496:260:8", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2307, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2293, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2307, + "src": "774:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2292, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "774:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2295, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2307, + "src": "783:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2294, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "783:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "773:18:8" + }, + "returnParameters": { + "id": 2299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2298, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2307, + "src": "815:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2297, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "815:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "814:7:8" + }, + "scope": 2457, + "src": "761:128:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2334, + "nodeType": "Block", + "src": "1269:90:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2320, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "1287:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2321, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "1292:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1287:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2323, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2314, + "src": "1295:12:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1279:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2325, + "nodeType": "ExpressionStatement", + "src": "1279:29:8" + }, + { + "assignments": [ + 2327 + ], + "declarations": [ + { + "constant": false, + "id": 2327, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2334, + "src": "1318:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2326, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1318:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2331, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2328, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "1328:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 2329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "1332:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1328:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1318:15:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2332, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2327, + "src": "1351:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2318, + "id": 2333, + "nodeType": "Return", + "src": "1344:8:8" + } + ] + }, + "documentation": { + "id": 2308, + "nodeType": "StructuredDocumentation", + "src": "895:280:8", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2335, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1193:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2309, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1193:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2312, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1202:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2311, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1202:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1211:26:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2313, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1211:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1192:46:8" + }, + "returnParameters": { + "id": 2318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2317, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1262:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2316, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1262:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1261:7:8" + }, + "scope": 2457, + "src": "1180:179:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2369, + "nodeType": "Block", + "src": "1667:390:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2345, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2338, + "src": "1899:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1904:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2351, + "nodeType": "IfStatement", + "src": "1895:45:8", + "trueBody": { + "id": 2350, + "nodeType": "Block", + "src": "1907:33:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1928:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2344, + "id": 2349, + "nodeType": "Return", + "src": "1921:8:8" + } + ] + } + }, + { + "assignments": [ + 2353 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2369, + "src": "1950:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2352, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1950:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2357, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2354, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2338, + "src": "1960:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 2355, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2340, + "src": "1964:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1960:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1950:15:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2359, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "1983:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2360, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2338, + "src": "1987:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1983:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2362, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2340, + "src": "1992:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1983:10:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 2364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1995:35:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 2358, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1975:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1975:56:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2366, + "nodeType": "ExpressionStatement", + "src": "1975:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2367, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "2049:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2344, + "id": 2368, + "nodeType": "Return", + "src": "2042:8:8" + } + ] + }, + "documentation": { + "id": 2336, + "nodeType": "StructuredDocumentation", + "src": "1365:236:8", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 2370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2338, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2370, + "src": "1619:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2337, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1619:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2340, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2370, + "src": "1628:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2339, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1628:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1618:18:8" + }, + "returnParameters": { + "id": 2344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2370, + "src": "1660:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2342, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1660:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1659:7:8" + }, + "scope": 2457, + "src": "1606:451:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2386, + "nodeType": "Block", + "src": "2580:63:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2381, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2373, + "src": "2601:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2382, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2375, + "src": "2604:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2607:28:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 2380, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2387, + 2415 + ], + "referencedDeclaration": 2415, + "src": "2597:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", + "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" + } + }, + "id": 2384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2597:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2379, + "id": 2385, + "nodeType": "Return", + "src": "2590:46:8" + } + ] + }, + "documentation": { + "id": 2371, + "nodeType": "StructuredDocumentation", + "src": "2063:451:8", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2373, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2387, + "src": "2532:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2372, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2532:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2375, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2387, + "src": "2541:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2374, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2541:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2531:18:8" + }, + "returnParameters": { + "id": 2379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2378, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2387, + "src": "2573:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2377, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2573:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2572:7:8" + }, + "scope": 2457, + "src": "2519:124:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2414, + "nodeType": "Block", + "src": "3214:175:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2400, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "3232:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3236:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3232:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2403, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "3239:12:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2399, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3224:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3224:28:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2405, + "nodeType": "ExpressionStatement", + "src": "3224:28:8" + }, + { + "assignments": [ + 2407 + ], + "declarations": [ + { + "constant": false, + "id": 2407, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2414, + "src": "3262:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2406, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3262:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2411, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2408, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2390, + "src": "3272:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2409, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "3276:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3272:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3262:15:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2412, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "3381:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2398, + "id": 2413, + "nodeType": "Return", + "src": "3374:8:8" + } + ] + }, + "documentation": { + "id": 2388, + "nodeType": "StructuredDocumentation", + "src": "2649:471:8", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2415, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2390, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3138:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2389, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3138:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3147:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2391, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3147:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3156:26:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2393, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3137:46:8" + }, + "returnParameters": { + "id": 2398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2397, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3207:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2396, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3207:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3206:7:8" + }, + "scope": 2457, + "src": "3125:264:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2431, + "nodeType": "Block", + "src": "3901:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2426, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2418, + "src": "3922:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2427, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2420, + "src": "3925:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 2428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3928:26:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 2425, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2432, + 2456 + ], + "referencedDeclaration": 2456, + "src": "3918:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", + "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" + } + }, + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3918:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2424, + "id": 2430, + "nodeType": "Return", + "src": "3911:44:8" + } + ] + }, + "documentation": { + "id": 2416, + "nodeType": "StructuredDocumentation", + "src": "3395:440:8", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2432, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2418, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2432, + "src": "3853:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2417, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3853:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2420, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2432, + "src": "3862:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2419, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3862:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3852:18:8" + }, + "returnParameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2432, + "src": "3894:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2422, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3894:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3893:7:8" + }, + "scope": 2457, + "src": "3840:122:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2455, + "nodeType": "Block", + "src": "4522:68:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2445, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2437, + "src": "4540:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4545:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4540:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2448, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2439, + "src": "4548:12:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2444, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4532:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4532:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2450, + "nodeType": "ExpressionStatement", + "src": "4532:29:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2451, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "4578:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 2452, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2437, + "src": "4582:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4578:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2443, + "id": 2454, + "nodeType": "Return", + "src": "4571:12:8" + } + ] + }, + "documentation": { + "id": 2433, + "nodeType": "StructuredDocumentation", + "src": "3968:460:8", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2435, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4446:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2434, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4446:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2437, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4455:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2436, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4455:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2439, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4464:26:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2438, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4464:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4445:46:8" + }, + "returnParameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4515:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2441, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4515:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4514:7:8" + }, + "scope": 2457, + "src": "4433:157:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2458, + "src": "69:4523:8" + } + ], + "src": "0:4593:8" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", + "exportedSymbols": { + "SafeMath8": [ + 2457 + ] + }, + "id": 2458, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2264, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:8" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 2457, + "linearizedBaseContracts": [ + 2457 + ], + "name": "SafeMath8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2289, + "nodeType": "Block", + "src": "383:107:8", + "statements": [ + { + "assignments": [ + 2275 + ], + "declarations": [ + { + "constant": false, + "id": 2275, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2289, + "src": "393:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2274, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "393:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2279, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2276, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2267, + "src": "403:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 2277, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2269, + "src": "407:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "403:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "393:15:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2281, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2275, + "src": "426:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 2282, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2267, + "src": "431:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "426:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "434:29:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 2280, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "418:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "418:46:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2286, + "nodeType": "ExpressionStatement", + "src": "418:46:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2287, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2275, + "src": "482:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2273, + "id": 2288, + "nodeType": "Return", + "src": "475:8:8" + } + ] + }, + "documentation": { + "id": 2265, + "nodeType": "StructuredDocumentation", + "src": "93:224:8", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 2290, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2267, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2290, + "src": "335:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2266, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "335:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2269, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2290, + "src": "344:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2268, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "344:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "334:18:8" + }, + "returnParameters": { + "id": 2273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2272, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2290, + "src": "376:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2271, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "376:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "375:7:8" + }, + "scope": 2457, + "src": "322:168:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2306, + "nodeType": "Block", + "src": "822:67:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2301, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2293, + "src": "843:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2302, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2295, + "src": "846:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "849:32:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 2300, + "name": "sub", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2307, + 2335 + ], + "referencedDeclaration": 2335, + "src": "839:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", + "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" + } + }, + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "839:43:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2299, + "id": 2305, + "nodeType": "Return", + "src": "832:50:8" + } + ] + }, + "documentation": { + "id": 2291, + "nodeType": "StructuredDocumentation", + "src": "496:260:8", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2307, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2293, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2307, + "src": "774:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2292, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "774:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2295, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2307, + "src": "783:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2294, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "783:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "773:18:8" + }, + "returnParameters": { + "id": 2299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2298, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2307, + "src": "815:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2297, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "815:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "814:7:8" + }, + "scope": 2457, + "src": "761:128:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2334, + "nodeType": "Block", + "src": "1269:90:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2320, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "1287:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 2321, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "1292:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1287:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2323, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2314, + "src": "1295:12:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1279:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2325, + "nodeType": "ExpressionStatement", + "src": "1279:29:8" + }, + { + "assignments": [ + 2327 + ], + "declarations": [ + { + "constant": false, + "id": 2327, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2334, + "src": "1318:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2326, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1318:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2331, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2328, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2310, + "src": "1328:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 2329, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2312, + "src": "1332:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1328:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1318:15:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2332, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2327, + "src": "1351:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2318, + "id": 2333, + "nodeType": "Return", + "src": "1344:8:8" + } + ] + }, + "documentation": { + "id": 2308, + "nodeType": "StructuredDocumentation", + "src": "895:280:8", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 2335, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2310, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1193:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2309, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1193:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2312, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1202:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2311, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1202:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1211:26:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2313, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1211:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1192:46:8" + }, + "returnParameters": { + "id": 2318, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2317, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2335, + "src": "1262:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2316, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1262:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1261:7:8" + }, + "scope": 2457, + "src": "1180:179:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2369, + "nodeType": "Block", + "src": "1667:390:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2345, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2338, + "src": "1899:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2346, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1904:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1899:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2351, + "nodeType": "IfStatement", + "src": "1895:45:8", + "trueBody": { + "id": 2350, + "nodeType": "Block", + "src": "1907:33:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1928:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 2344, + "id": 2349, + "nodeType": "Return", + "src": "1921:8:8" + } + ] + } + }, + { + "assignments": [ + 2353 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2369, + "src": "1950:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2352, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1950:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2357, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2354, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2338, + "src": "1960:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 2355, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2340, + "src": "1964:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1960:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1950:15:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2359, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "1983:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2360, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2338, + "src": "1987:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1983:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2362, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2340, + "src": "1992:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "1983:10:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 2364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1995:35:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 2358, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1975:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1975:56:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2366, + "nodeType": "ExpressionStatement", + "src": "1975:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2367, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "2049:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2344, + "id": 2368, + "nodeType": "Return", + "src": "2042:8:8" + } + ] + }, + "documentation": { + "id": 2336, + "nodeType": "StructuredDocumentation", + "src": "1365:236:8", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 2370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2338, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2370, + "src": "1619:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2337, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1619:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2340, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2370, + "src": "1628:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2339, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1628:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1618:18:8" + }, + "returnParameters": { + "id": 2344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2370, + "src": "1660:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2342, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1660:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1659:7:8" + }, + "scope": 2457, + "src": "1606:451:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2386, + "nodeType": "Block", + "src": "2580:63:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2381, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2373, + "src": "2601:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2382, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2375, + "src": "2604:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 2383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2607:28:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 2380, + "name": "div", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2387, + 2415 + ], + "referencedDeclaration": 2415, + "src": "2597:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", + "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" + } + }, + "id": 2384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2597:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2379, + "id": 2385, + "nodeType": "Return", + "src": "2590:46:8" + } + ] + }, + "documentation": { + "id": 2371, + "nodeType": "StructuredDocumentation", + "src": "2063:451:8", + "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2373, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2387, + "src": "2532:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2372, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2532:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2375, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2387, + "src": "2541:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2374, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2541:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2531:18:8" + }, + "returnParameters": { + "id": 2379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2378, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2387, + "src": "2573:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2377, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2573:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2572:7:8" + }, + "scope": 2457, + "src": "2519:124:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2414, + "nodeType": "Block", + "src": "3214:175:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2400, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "3232:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3236:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3232:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2403, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "3239:12:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2399, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "3224:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3224:28:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2405, + "nodeType": "ExpressionStatement", + "src": "3224:28:8" + }, + { + "assignments": [ + 2407 + ], + "declarations": [ + { + "constant": false, + "id": 2407, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2414, + "src": "3262:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2406, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3262:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2411, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2408, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2390, + "src": "3272:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 2409, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "3276:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3272:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3262:15:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 2412, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "3381:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2398, + "id": 2413, + "nodeType": "Return", + "src": "3374:8:8" + } + ] + }, + "documentation": { + "id": 2388, + "nodeType": "StructuredDocumentation", + "src": "2649:471:8", + "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2415, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2395, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2390, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3138:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2389, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3138:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3147:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2391, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3147:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3156:26:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2393, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3156:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3137:46:8" + }, + "returnParameters": { + "id": 2398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2397, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2415, + "src": "3207:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2396, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3207:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3206:7:8" + }, + "scope": 2457, + "src": "3125:264:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2431, + "nodeType": "Block", + "src": "3901:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2426, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2418, + "src": "3922:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2427, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2420, + "src": "3925:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 2428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3928:26:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 2425, + "name": "mod", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2432, + 2456 + ], + "referencedDeclaration": 2456, + "src": "3918:3:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", + "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" + } + }, + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3918:37:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2424, + "id": 2430, + "nodeType": "Return", + "src": "3911:44:8" + } + ] + }, + "documentation": { + "id": 2416, + "nodeType": "StructuredDocumentation", + "src": "3395:440:8", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2432, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2421, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2418, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2432, + "src": "3853:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2417, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3853:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2420, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2432, + "src": "3862:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2419, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3862:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3852:18:8" + }, + "returnParameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2432, + "src": "3894:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2422, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3894:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3893:7:8" + }, + "scope": 2457, + "src": "3840:122:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2455, + "nodeType": "Block", + "src": "4522:68:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2445, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2437, + "src": "4540:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2446, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4545:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4540:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 2448, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2439, + "src": "4548:12:8", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2444, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4532:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4532:29:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2450, + "nodeType": "ExpressionStatement", + "src": "4532:29:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2451, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2435, + "src": "4578:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "argumentTypes": null, + "id": 2452, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2437, + "src": "4582:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4578:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 2443, + "id": 2454, + "nodeType": "Return", + "src": "4571:12:8" + } + ] + }, + "documentation": { + "id": 2433, + "nodeType": "StructuredDocumentation", + "src": "3968:460:8", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 2456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 2440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2435, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4446:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2434, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4446:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2437, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4455:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2436, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4455:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2439, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4464:26:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2438, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4464:6:8", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4445:46:8" + }, + "returnParameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2442, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 2456, + "src": "4515:5:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2441, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4515:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4514:7:8" + }, + "scope": 2457, + "src": "4433:157:8", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2458, + "src": "69:4523:8" + } + ], + "src": "0:4593:8" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.558Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/build/contracts/VideoStorage.json b/smart-contracts/build/contracts/VideoStorage.json new file mode 100644 index 0000000000..4aed567d29 --- /dev/null +++ b/smart-contracts/build/contracts/VideoStorage.json @@ -0,0 +1,3873 @@ +{ + "contractName": "VideoStorage", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "name": "videoCountByChannelId", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_channelId", + "type": "uint64" + } + ], + "name": "addVideo", + "outputs": [ + { + "internalType": "uint64", + "name": "", + "type": "uint64" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + } + ], + "name": "getExistingVideo", + "outputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "channelId", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "isActive", + "type": "bool" + }, + { + "internalType": "bool", + "name": "isExisting", + "type": "bool" + } + ], + "internalType": "struct Video", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + }, + { + "internalType": "bool", + "name": "_isActive", + "type": "bool" + } + ], + "name": "updateStatus", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "_videoId", + "type": "uint64" + } + ], + "name": "removeVideo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"addVideo\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"getExistingVideo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"channelId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isExisting\",\"type\":\"bool\"}],\"internalType\":\"struct Video\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"removeVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isActive\",\"type\":\"bool\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"videoCountByChannelId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol\":\"VideoStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol\":{\"keccak256\":\"0xeaa1d2609e979107c346e8eb52b83e91732fc79478223c32ee165f9a9c2af6a6\",\"urls\":[\"bzz-raw://60135b3b62c8841761048ae81b4adf4e60f237e4498c9bdc391dde6cfaad689f\",\"dweb:/ipfs/QmaRQsMewgAEkdYxHgm5c8FXuNomwr6p9LAxiGBTEpUn5u\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]}},\"version\":1}", + "bytecode": "0x6080604052600380546001600160401b031916600117905534801561002357600080fd5b50600061002e61007d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610081565b3390565b61081b806100906000396000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c8063010529821461007d578063715018a6146100a6578063750a1063146100b05780638da5cb5b146100d05780639a055bbf146100e55780639d8d51f8146100f8578063b5b9dc911461010b578063f2fde38b1461011e575b600080fd5b61009061008b3660046105bd565b610131565b60405161009d91906107b1565b60405180910390f35b6100ae61014c565b005b6100c36100be3660046105bd565b6101c2565b60405161009d9190610783565b6100d8610246565b60405161009d919061062b565b6100ae6100f33660046105bd565b610255565b6100906101063660046105bd565b6102e7565b6100ae6101193660046105e4565b6103ab565b6100ae61012c366004610596565b610415565b6002602052600090815260409020546001600160401b031681565b6101546104b9565b6000546001600160a01b0390811691161461018a5760405162461bcd60e51b81526004016101819061070d565b60405180910390fd5b600080546040516001600160a01b03909116906000805160206107c6833981519152908390a3600080546001600160a01b0319169055565b6101ca610576565b6101d2610576565b506001600160401b0380831660009081526001602090815260409182902082516060810184529054938416815260ff600160401b85048116151592820192909252600160481b9093041615159082018190526102405760405162461bcd60e51b815260040161018190610742565b92915050565b6000546001600160a01b031690565b61025d6104b9565b6000546001600160a01b0390811691161461028a5760405162461bcd60e51b81526004016101819061070d565b6001600160401b03808216600090815260016020818152604080842054851684526002909152909120546102bf9216906104bd565b506001600160401b0316600090815260016020526040902080546001600160501b0319169055565b60006102f16104b9565b6000546001600160a01b0390811691161461031e5760405162461bcd60e51b81526004016101819061070d565b6003546001600160401b0390811660008181526001602081815260408084208054600160401b600160481b60ff60481b199092169190911760ff60401b1916176001600160401b031916898816908117825585526002909252909220549293919261038a921690610506565b506003546103a2906001600160401b03166001610506565b50909392505050565b6103b36104b9565b6000546001600160a01b039081169116146103e05760405162461bcd60e51b81526004016101819061070d565b6001600160401b0390911660009081526001602052604090208054911515600160401b0260ff60401b19909216919091179055565b61041d6104b9565b6000546001600160a01b0390811691161461044a5760405162461bcd60e51b81526004016101819061070d565b6001600160a01b0381166104705760405162461bcd60e51b815260040161018190610692565b600080546040516001600160a01b03808516939216916000805160206107c683398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60006104ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610537565b9392505050565b60008282016001600160401b0380851690821610156104ff5760405162461bcd60e51b8152600401610181906106d8565b6000836001600160401b0316836001600160401b03161115829061056e5760405162461bcd60e51b8152600401610181919061063f565b505050900390565b604080516060810182526000808252602082018190529181019190915290565b6000602082840312156105a7578081fd5b81356001600160a01b03811681146104ff578182fd5b6000602082840312156105ce578081fd5b81356001600160401b03811681146104ff578182fd5b600080604083850312156105f6578081fd5b82356001600160401b038116811461060c578182fd5b915060208301358015158114610620578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b8181101561066b5785810183015185820160400152820161064f565b8181111561067c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e6720766964656040820152606f60f81b606082015260800190565b81516001600160401b0316815260208083015115159082015260409182015115159181019190915260600190565b6001600160401b039190911681526020019056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220bfe2b6e1714a633139d3e0680422359b56bdcc045055314ce8472504e979bb0d64736f6c634300060c0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100785760003560e01c8063010529821461007d578063715018a6146100a6578063750a1063146100b05780638da5cb5b146100d05780639a055bbf146100e55780639d8d51f8146100f8578063b5b9dc911461010b578063f2fde38b1461011e575b600080fd5b61009061008b3660046105bd565b610131565b60405161009d91906107b1565b60405180910390f35b6100ae61014c565b005b6100c36100be3660046105bd565b6101c2565b60405161009d9190610783565b6100d8610246565b60405161009d919061062b565b6100ae6100f33660046105bd565b610255565b6100906101063660046105bd565b6102e7565b6100ae6101193660046105e4565b6103ab565b6100ae61012c366004610596565b610415565b6002602052600090815260409020546001600160401b031681565b6101546104b9565b6000546001600160a01b0390811691161461018a5760405162461bcd60e51b81526004016101819061070d565b60405180910390fd5b600080546040516001600160a01b03909116906000805160206107c6833981519152908390a3600080546001600160a01b0319169055565b6101ca610576565b6101d2610576565b506001600160401b0380831660009081526001602090815260409182902082516060810184529054938416815260ff600160401b85048116151592820192909252600160481b9093041615159082018190526102405760405162461bcd60e51b815260040161018190610742565b92915050565b6000546001600160a01b031690565b61025d6104b9565b6000546001600160a01b0390811691161461028a5760405162461bcd60e51b81526004016101819061070d565b6001600160401b03808216600090815260016020818152604080842054851684526002909152909120546102bf9216906104bd565b506001600160401b0316600090815260016020526040902080546001600160501b0319169055565b60006102f16104b9565b6000546001600160a01b0390811691161461031e5760405162461bcd60e51b81526004016101819061070d565b6003546001600160401b0390811660008181526001602081815260408084208054600160401b600160481b60ff60481b199092169190911760ff60401b1916176001600160401b031916898816908117825585526002909252909220549293919261038a921690610506565b506003546103a2906001600160401b03166001610506565b50909392505050565b6103b36104b9565b6000546001600160a01b039081169116146103e05760405162461bcd60e51b81526004016101819061070d565b6001600160401b0390911660009081526001602052604090208054911515600160401b0260ff60401b19909216919091179055565b61041d6104b9565b6000546001600160a01b0390811691161461044a5760405162461bcd60e51b81526004016101819061070d565b6001600160a01b0381166104705760405162461bcd60e51b815260040161018190610692565b600080546040516001600160a01b03808516939216916000805160206107c683398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60006104ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610537565b9392505050565b60008282016001600160401b0380851690821610156104ff5760405162461bcd60e51b8152600401610181906106d8565b6000836001600160401b0316836001600160401b03161115829061056e5760405162461bcd60e51b8152600401610181919061063f565b505050900390565b604080516060810182526000808252602082018190529181019190915290565b6000602082840312156105a7578081fd5b81356001600160a01b03811681146104ff578182fd5b6000602082840312156105ce578081fd5b81356001600160401b03811681146104ff578182fd5b600080604083850312156105f6578081fd5b82356001600160401b038116811461060c578182fd5b915060208301358015158114610620578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b8181101561066b5785810183015185820160400152820161064f565b8181111561067c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e6720766964656040820152606f60f81b606082015260800190565b81516001600160401b0316815260208083015115159082015260409182015115159181019190915260600190565b6001600160401b039190911681526020019056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220bfe2b6e1714a633139d3e0680422359b56bdcc045055314ce8472504e979bb0d64736f6c634300060c0033", + "immutableReferences": {}, + "sourceMap": "305:1439:11:-:0;;;608:22;;;-1:-1:-1;;;;;;608:22:11;629:1;608:22;;;305:1439;;;;;;;;;-1:-1:-1;865:17:14;885:12;:10;:12::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:14;-1:-1:-1;;;;;907:18:14;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:14;940:43;;907:6;;940:43;831:159;305:1439:11;;590:104:13;677:10;590:104;:::o;305:1439:11:-;;;;;;;", + "deployedSourceMap": "305:1439:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;487:55;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:145:14;;;:::i;:::-;;1081:208:11;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1066:77:14:-;;;:::i;:::-;;;;;;;:::i;1503:239:11:-;;;;;;:::i;:::-;;:::i;637:399::-;;;;;;:::i;:::-;;:::i;1292:205::-;;;;;;:::i;:::-;;:::i;1983:240:14:-;;;;;;:::i;:::-;;:::i;487:55:11:-;;;;;;;;;;;;-1:-1:-1;;;;;487:55:11;;:::o;1689:145:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;;;;;;;;;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:14;;::::1;::::0;-1:-1:-1;;;;;;;;;;;1758:40:14;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:14::1;::::0;;1689:145::o;1081:208:11:-;1145:12;;:::i;:::-;1163:18;;:::i;:::-;-1:-1:-1;;;;;;1184:19:11;;;;;;;:9;:19;;;;;;;;;1163:40;;;;;;;;;;;;;;;-1:-1:-1;;;1163:40:11;;;;;;;;;;;;;-1:-1:-1;;;1163:40:11;;;;;;;;;;;;1207:62;;;;-1:-1:-1;;;1207:62:11;;;;;;;:::i;:::-;1280:5;1081:208;-1:-1:-1;;1081:208:11:o;1066:77:14:-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:14;1066:77;:::o;1503:239:11:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;1614:19:11;;::::1;1592:52;1614:19:::0;;;1649:1:::1;1614:19;::::0;;;;;;;:29;;::::1;1592:52:::0;;:21:::1;:52:::0;;;;;;;:59:::1;::::0;:52:::1;::::0;:56:::1;:59::i;:::-;-1:-1:-1::0;;;;;;1719:19:11::1;;::::0;;;:9:::1;:19;::::0;;;;1712:26;;-1:-1:-1;;;;;;1712:26:11;;;1503:239::o;637:399::-;701:6;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;730:11:11::1;::::0;-1:-1:-1;;;;;730:11:11;;::::1;713:14;791:18:::0;;;730:11;791:18:::1;::::0;;;;;;;838:26;;-1:-1:-1;;;;;;;;;;838:26:11;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;868:24:11::1;;-1:-1:-1::0;;;;;;896:31:11::1;::::0;;::::1;::::0;;::::1;::::0;;952:33;;:21:::1;:33:::0;;;;;;;730:11;;791:18;;952:40:::1;::::0;:33:::1;::::0;:37:::1;:40::i;:::-;-1:-1:-1::0;996:11:11::1;::::0;:18:::1;::::0;-1:-1:-1;;;;;996:11:11::1;1012:1;996:15;:18::i;:::-;-1:-1:-1::0;1025:7:11;;637:399;-1:-1:-1;;;637:399:11:o;1292:205::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;1412:19:11;;::::1;1390;1412::::0;;;:9:::1;:19;::::0;;;;1467:26;;;::::1;;-1:-1:-1::0;;;1467:26:11::1;-1:-1:-1::0;;;;1467:26:11;;::::1;::::0;;;::::1;::::0;;1292:205::o;1983:240:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2071:22:14;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:14::1;;;;;;;:::i;:::-;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:14;;::::1;::::0;2172:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2151:38:14;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:14::1;-1:-1:-1::0;;;;;2199:17:14;;;::::1;::::0;;;::::1;::::0;;1983:240::o;590:104:13:-;677:10;590:104;:::o;767:131:7:-;823:6;848:43;852:1;855;848:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;841:50;767:131;-1:-1:-1;;;767:131:7:o;324:172::-;380:6;409:5;;;-1:-1:-1;;;;;432:6:7;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:7;;;;;;;:::i;1189:183::-;1273:6;1304:1;-1:-1:-1;;;;;1299:6:7;:1;-1:-1:-1;;;;;1299:6:7;;;1307:12;1291:29;;;;;-1:-1:-1;;;1291:29:7;;;;;;;;:::i;:::-;-1:-1:-1;;;1341:5:7;;;1189:183::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;408:241::-;;512:2;500:9;491:7;487:23;483:32;480:2;;;-1:-1;;518:12;480:2;72:20;;-1:-1;;;;;7512:54;;8122:35;;8112:2;;-1:-1;;8161:12;656:239;;759:2;747:9;738:7;734:23;730:32;727:2;;;-1:-1;;765:12;727:2;339:20;;-1:-1;;;;;7639:30;;8363:34;;8353:2;;-1:-1;;8401:12;902:358;;;1019:2;1007:9;998:7;994:23;990:32;987:2;;;-1:-1;;1025:12;987:2;339:20;;-1:-1;;;;;7639:30;;8363:34;;8353:2;;-1:-1;;8401:12;8353:2;1077:62;-1:-1;1176:2;1212:22;;206:20;7424:13;;7417:21;8243:32;;8233:2;;-1:-1;;8279:12;8233:2;1184:60;;;;981:279;;;;;:::o;4175:222::-;-1:-1;;;;;7512:54;;;;1338:37;;4302:2;4287:18;;4273:124::o;4404:310::-;;4551:2;;4572:17;4565:47;1633:5;7047:12;7204:6;4551:2;4540:9;4536:18;7192:19;-1:-1;7754:101;7768:6;7765:1;7762:13;7754:101;;;7835:11;;;;;7829:18;7816:11;;;7232:14;7816:11;7809:39;7783:10;;7754:101;;;7870:6;7867:1;7864:13;7861:2;;;-1:-1;7232:14;7926:6;4540:9;7917:16;;7910:27;7861:2;-1:-1;8042:7;8026:14;-1:-1;;8022:28;1791:39;;;;7232:14;1791:39;;4522:192;-1:-1;;;4522:192::o;4721:416::-;4921:2;4935:47;;;2067:2;4906:18;;;7192:19;2103:34;7232:14;;;2083:55;-1:-1;;;2158:12;;;2151:30;2200:12;;;4892:245::o;5144:416::-;5344:2;5358:47;;;2451:2;5329:18;;;7192:19;-1:-1;;;7232:14;;;2467:50;2536:12;;;5315:245::o;5567:416::-;5767:2;5781:47;;;5752:18;;;7192:19;2823:34;7232:14;;;2803:55;2877:12;;;5738:245::o;5990:416::-;6190:2;6204:47;;;3128:2;6175:18;;;7192:19;3164:34;7232:14;;;3144:55;-1:-1;;;3219:12;;;3212:25;3256:12;;;6161:245::o;6413:314::-;3527:23;;-1:-1;;;;;7639:30;4010:36;;3700:4;3689:16;;;3683:23;7424:13;7417:21;3754:14;;;1442:34;7650:18;3843:16;;;3837:23;7424:13;7417:21;3908:14;;;1442:34;;;;6586:2;6571:18;;6557:170::o;6734:218::-;-1:-1;;;;;7639:30;;;;4010:36;;6859:2;6844:18;;6830:122::o", + "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../lib/SafeMath64.sol\";\n\n// Any change to this struct requires VideoStorage migration\nstruct Video {\n uint64 channelId;\n bool isActive;\n bool isExisting;\n}\n\ncontract VideoStorage is Ownable {\n\tusing SafeMath64 for uint64;\n\n mapping (uint64 => Video) private videoById;\n\t// TODO: Use logic contract to update this in ChannelStorage?\n mapping (uint64 => uint64) public videoCountByChannelId; // TODO: Either u32 or update this in logic for consistency\n uint64 nextVideoId = 1;\n\n function addVideo (uint64 _channelId) public onlyOwner returns (uint64) {\n\t\tuint64 videoId = nextVideoId;\n\t\t// Get storage ref\n\t\tVideo storage newVideo = videoById[videoId];\n\t\t// Populate the struct\n\t\tnewVideo.isExisting = true;\n\t\tnewVideo.isActive = true;\n\t\tnewVideo.channelId = _channelId;\n\t\t// Update counters\n\t\tvideoCountByChannelId[_channelId].add(1);\n\t\tnextVideoId.add(1);\n\t\treturn videoId;\n\t}\n\n\t// Get channel + perform existance check\n\tfunction getExistingVideo(uint64 _videoId) public view returns (Video memory) {\n\t\tVideo memory video = videoById[_videoId];\n\t\trequire(video.isExisting, \"Trying to access unexisting video\");\n\t\treturn video;\n\t}\n\n\tfunction updateStatus (uint64 _videoId, bool _isActive) public onlyOwner {\n\t\t// Get storage ref\n\t\tVideo storage video = videoById[_videoId];\n\t\t// Update the value in struct\n\t\tvideo.isActive = _isActive;\n\t}\n\n function removeVideo (uint64 _videoId) public onlyOwner {\n\t\t// Dec videoCountByChannel\n\t\tvideoCountByChannelId[videoById[_videoId].channelId].sub(1);\n\t\t// Clear entry in map (setting isExisting to false)\n \tdelete videoById[_videoId];\n\t}\n}\n", + "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", + "ast": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", + "exportedSymbols": { + "Video": [ + 3126 + ], + "VideoStorage": [ + 3263 + ] + }, + "id": 3264, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3116, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:11" + }, + { + "id": 3117, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:11" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 3118, + "nodeType": "ImportDirective", + "scope": 3264, + "sourceUnit": 3403, + "src": "59:71:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "file": "../lib/SafeMath64.sol", + "id": 3119, + "nodeType": "ImportDirective", + "scope": 3264, + "sourceUnit": 2263, + "src": "131:31:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "Video", + "id": 3126, + "members": [ + { + "constant": false, + "id": 3121, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3126, + "src": "244:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3120, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "244:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3123, + "mutability": "mutable", + "name": "isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3126, + "src": "266:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3122, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "266:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3125, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3126, + "src": "285:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "285:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Video", + "nodeType": "StructDefinition", + "scope": 3264, + "src": "225:78:11", + "visibility": "public" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3127, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "330:7:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 3128, + "nodeType": "InheritanceSpecifier", + "src": "330:7:11" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3263, + "linearizedBaseContracts": [ + 3263, + 3402, + 3293 + ], + "name": "VideoStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3131, + "libraryName": { + "contractScope": null, + "id": 3129, + "name": "SafeMath64", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2262, + "src": "347:10:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath64_$2262", + "typeString": "library SafeMath64" + } + }, + "nodeType": "UsingForDirective", + "src": "341:28:11", + "typeName": { + "id": 3130, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "362:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + { + "constant": false, + "id": 3135, + "mutability": "mutable", + "name": "videoById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3263, + "src": "375:43:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video)" + }, + "typeName": { + "id": 3134, + "keyType": { + "id": 3132, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "384:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "375:25:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video)" + }, + "valueType": { + "contractScope": null, + "id": 3133, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "394:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "01052982", + "id": 3139, + "mutability": "mutable", + "name": "videoCountByChannelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3263, + "src": "487:55:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + }, + "typeName": { + "id": 3138, + "keyType": { + "id": 3136, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "496:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "487:26:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + }, + "valueType": { + "id": 3137, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "506:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3142, + "mutability": "mutable", + "name": "nextVideoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3263, + "src": "608:22:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3140, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "608:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 3141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "629:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "internal" + }, + { + "body": { + "id": 3194, + "nodeType": "Block", + "src": "709:327:11", + "statements": [ + { + "assignments": [ + 3152 + ], + "declarations": [ + { + "constant": false, + "id": 3152, + "mutability": "mutable", + "name": "videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3194, + "src": "713:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3151, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "713:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3154, + "initialValue": { + "argumentTypes": null, + "id": 3153, + "name": "nextVideoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3142, + "src": "730:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "713:28:11" + }, + { + "assignments": [ + 3156 + ], + "declarations": [ + { + "constant": false, + "id": 3156, + "mutability": "mutable", + "name": "newVideo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3194, + "src": "766:22:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3155, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "766:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3160, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3157, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "791:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3159, + "indexExpression": { + "argumentTypes": null, + "id": 3158, + "name": "videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3152, + "src": "801:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "791:18:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "766:43:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3161, + "name": "newVideo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3156, + "src": "838:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 3125, + "src": "838:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "860:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "838:26:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3166, + "nodeType": "ExpressionStatement", + "src": "838:26:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3167, + "name": "newVideo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3156, + "src": "868:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3169, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "868:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "888:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "868:24:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3172, + "nodeType": "ExpressionStatement", + "src": "868:24:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3173, + "name": "newVideo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3156, + "src": "896:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3175, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "896:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3176, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3144, + "src": "917:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "896:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3178, + "nodeType": "ExpressionStatement", + "src": "896:31:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "990:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3179, + "name": "videoCountByChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3139, + "src": "952:21:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + } + }, + "id": 3181, + "indexExpression": { + "argumentTypes": null, + "id": 3180, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3144, + "src": "974:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "952:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "952:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "952:40:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3185, + "nodeType": "ExpressionStatement", + "src": "952:40:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1012:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 3186, + "name": "nextVideoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3142, + "src": "996:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "996:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 3190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "996:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3191, + "nodeType": "ExpressionStatement", + "src": "996:18:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3192, + "name": "videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3152, + "src": "1025:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 3150, + "id": 3193, + "nodeType": "Return", + "src": "1018:14:11" + } + ] + }, + "documentation": null, + "functionSelector": "9d8d51f8", + "id": 3195, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3147, + "modifierName": { + "argumentTypes": null, + "id": 3146, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "682:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "682:9:11" + } + ], + "name": "addVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3144, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3195, + "src": "656:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3143, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "656:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "655:19:11" + }, + "returnParameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3195, + "src": "701:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3148, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "701:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "700:8:11" + }, + "scope": 3263, + "src": "637:399:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3216, + "nodeType": "Block", + "src": "1159:130:11", + "statements": [ + { + "assignments": [ + 3203 + ], + "declarations": [ + { + "constant": false, + "id": 3203, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3216, + "src": "1163:18:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3202, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "1163:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3207, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3204, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1184:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3206, + "indexExpression": { + "argumentTypes": null, + "id": 3205, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3197, + "src": "1194:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1184:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1163:40:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3209, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "1215:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 3210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 3125, + "src": "1215:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e6720766964656f", + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:35:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", + "typeString": "literal_string \"Trying to access unexisting video\"" + }, + "value": "Trying to access unexisting video" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", + "typeString": "literal_string \"Trying to access unexisting video\"" + } + ], + "id": 3208, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1207:62:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3213, + "nodeType": "ExpressionStatement", + "src": "1207:62:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3214, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "1280:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "functionReturnParameters": 3201, + "id": 3215, + "nodeType": "Return", + "src": "1273:12:11" + } + ] + }, + "documentation": null, + "functionSelector": "750a1063", + "id": 3217, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3197, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3217, + "src": "1107:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3196, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1107:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1106:17:11" + }, + "returnParameters": { + "id": 3201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3200, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3217, + "src": "1145:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3199, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "1145:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1144:14:11" + }, + "scope": 3263, + "src": "1081:208:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3238, + "nodeType": "Block", + "src": "1365:132:11", + "statements": [ + { + "assignments": [ + 3227 + ], + "declarations": [ + { + "constant": false, + "id": 3227, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3238, + "src": "1390:19:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3226, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "1390:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3231, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3228, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1412:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3230, + "indexExpression": { + "argumentTypes": null, + "id": 3229, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "1422:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1412:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1390:41:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3232, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "1467:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "1467:14:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3235, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3221, + "src": "1484:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1467:26:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3237, + "nodeType": "ExpressionStatement", + "src": "1467:26:11" + } + ] + }, + "documentation": null, + "functionSelector": "b5b9dc91", + "id": 3239, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3224, + "modifierName": { + "argumentTypes": null, + "id": 3223, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1355:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1355:9:11" + } + ], + "name": "updateStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3219, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3239, + "src": "1315:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3218, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1315:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3221, + "mutability": "mutable", + "name": "_isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3239, + "src": "1332:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3220, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1332:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1314:33:11" + }, + "returnParameters": { + "id": 3225, + "nodeType": "ParameterList", + "parameters": [], + "src": "1365:0:11" + }, + "scope": 3263, + "src": "1292:205:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3261, + "nodeType": "Block", + "src": "1559:183:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1649:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3246, + "name": "videoCountByChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3139, + "src": "1592:21:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + } + }, + "id": 3251, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3247, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1614:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3249, + "indexExpression": { + "argumentTypes": null, + "id": 3248, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "1624:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1614:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "1614:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1592:52:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2112, + "src": "1592:56:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1592:59:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3255, + "nodeType": "ExpressionStatement", + "src": "1592:59:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "1712:26:11", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3256, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1719:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3258, + "indexExpression": { + "argumentTypes": null, + "id": 3257, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "1729:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1719:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3260, + "nodeType": "ExpressionStatement", + "src": "1712:26:11" + } + ] + }, + "documentation": null, + "functionSelector": "9a055bbf", + "id": 3262, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3244, + "modifierName": { + "argumentTypes": null, + "id": 3243, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1549:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1549:9:11" + } + ], + "name": "removeVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3241, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3262, + "src": "1525:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3240, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1525:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1524:17:11" + }, + "returnParameters": { + "id": 3245, + "nodeType": "ParameterList", + "parameters": [], + "src": "1559:0:11" + }, + "scope": 3263, + "src": "1503:239:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3264, + "src": "305:1439:11" + } + ], + "src": "0:1745:11" + }, + "legacyAST": { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", + "exportedSymbols": { + "Video": [ + 3126 + ], + "VideoStorage": [ + 3263 + ] + }, + "id": 3264, + "license": null, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3116, + "literals": [ + "solidity", + "^", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:11" + }, + { + "id": 3117, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "24:33:11" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", + "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", + "id": 3118, + "nodeType": "ImportDirective", + "scope": 3264, + "sourceUnit": 3403, + "src": "59:71:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", + "file": "../lib/SafeMath64.sol", + "id": 3119, + "nodeType": "ImportDirective", + "scope": 3264, + "sourceUnit": 2263, + "src": "131:31:11", + "symbolAliases": [], + "unitAlias": "" + }, + { + "canonicalName": "Video", + "id": 3126, + "members": [ + { + "constant": false, + "id": 3121, + "mutability": "mutable", + "name": "channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3126, + "src": "244:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3120, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "244:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3123, + "mutability": "mutable", + "name": "isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3126, + "src": "266:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3122, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "266:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3125, + "mutability": "mutable", + "name": "isExisting", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3126, + "src": "285:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "285:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Video", + "nodeType": "StructDefinition", + "scope": 3264, + "src": "225:78:11", + "visibility": "public" + }, + { + "abstract": false, + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 3127, + "name": "Ownable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3402, + "src": "330:7:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Ownable_$3402", + "typeString": "contract Ownable" + } + }, + "id": 3128, + "nodeType": "InheritanceSpecifier", + "src": "330:7:11" + } + ], + "contractDependencies": [ + 3293, + 3402 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 3263, + "linearizedBaseContracts": [ + 3263, + 3402, + 3293 + ], + "name": "VideoStorage", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 3131, + "libraryName": { + "contractScope": null, + "id": 3129, + "name": "SafeMath64", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2262, + "src": "347:10:11", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath64_$2262", + "typeString": "library SafeMath64" + } + }, + "nodeType": "UsingForDirective", + "src": "341:28:11", + "typeName": { + "id": 3130, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "362:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + { + "constant": false, + "id": 3135, + "mutability": "mutable", + "name": "videoById", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3263, + "src": "375:43:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video)" + }, + "typeName": { + "id": 3134, + "keyType": { + "id": 3132, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "384:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "375:25:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video)" + }, + "valueType": { + "contractScope": null, + "id": 3133, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "394:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "01052982", + "id": 3139, + "mutability": "mutable", + "name": "videoCountByChannelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3263, + "src": "487:55:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + }, + "typeName": { + "id": 3138, + "keyType": { + "id": 3136, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "496:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Mapping", + "src": "487:26:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + }, + "valueType": { + "id": 3137, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "506:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 3142, + "mutability": "mutable", + "name": "nextVideoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3263, + "src": "608:22:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3140, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "608:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 3141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "629:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "internal" + }, + { + "body": { + "id": 3194, + "nodeType": "Block", + "src": "709:327:11", + "statements": [ + { + "assignments": [ + 3152 + ], + "declarations": [ + { + "constant": false, + "id": 3152, + "mutability": "mutable", + "name": "videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3194, + "src": "713:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3151, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "713:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3154, + "initialValue": { + "argumentTypes": null, + "id": 3153, + "name": "nextVideoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3142, + "src": "730:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "713:28:11" + }, + { + "assignments": [ + 3156 + ], + "declarations": [ + { + "constant": false, + "id": 3156, + "mutability": "mutable", + "name": "newVideo", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3194, + "src": "766:22:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3155, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "766:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3160, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3157, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "791:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3159, + "indexExpression": { + "argumentTypes": null, + "id": 3158, + "name": "videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3152, + "src": "801:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "791:18:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "766:43:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3161, + "name": "newVideo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3156, + "src": "838:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 3125, + "src": "838:19:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "860:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "838:26:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3166, + "nodeType": "ExpressionStatement", + "src": "838:26:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3167, + "name": "newVideo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3156, + "src": "868:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3169, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "868:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "888:4:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "868:24:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3172, + "nodeType": "ExpressionStatement", + "src": "868:24:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3173, + "name": "newVideo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3156, + "src": "896:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3175, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "896:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3176, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3144, + "src": "917:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "896:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3178, + "nodeType": "ExpressionStatement", + "src": "896:31:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "990:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3179, + "name": "videoCountByChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3139, + "src": "952:21:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + } + }, + "id": 3181, + "indexExpression": { + "argumentTypes": null, + "id": 3180, + "name": "_channelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3144, + "src": "974:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "952:33:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "952:37:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "952:40:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3185, + "nodeType": "ExpressionStatement", + "src": "952:40:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1012:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 3186, + "name": "nextVideoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3142, + "src": "996:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 2095, + "src": "996:15:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 3190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "996:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3191, + "nodeType": "ExpressionStatement", + "src": "996:18:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3192, + "name": "videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3152, + "src": "1025:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 3150, + "id": 3193, + "nodeType": "Return", + "src": "1018:14:11" + } + ] + }, + "documentation": null, + "functionSelector": "9d8d51f8", + "id": 3195, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3147, + "modifierName": { + "argumentTypes": null, + "id": 3146, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "682:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "682:9:11" + } + ], + "name": "addVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3145, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3144, + "mutability": "mutable", + "name": "_channelId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3195, + "src": "656:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3143, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "656:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "655:19:11" + }, + "returnParameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3195, + "src": "701:6:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3148, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "701:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "700:8:11" + }, + "scope": 3263, + "src": "637:399:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3216, + "nodeType": "Block", + "src": "1159:130:11", + "statements": [ + { + "assignments": [ + 3203 + ], + "declarations": [ + { + "constant": false, + "id": 3203, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3216, + "src": "1163:18:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3202, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "1163:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3207, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3204, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1184:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3206, + "indexExpression": { + "argumentTypes": null, + "id": 3205, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3197, + "src": "1194:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1184:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1163:40:11" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3209, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "1215:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "id": 3210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "isExisting", + "nodeType": "MemberAccess", + "referencedDeclaration": 3125, + "src": "1215:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "547279696e6720746f2061636365737320756e6578697374696e6720766964656f", + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1233:35:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", + "typeString": "literal_string \"Trying to access unexisting video\"" + }, + "value": "Trying to access unexisting video" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", + "typeString": "literal_string \"Trying to access unexisting video\"" + } + ], + "id": 3208, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1207:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1207:62:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3213, + "nodeType": "ExpressionStatement", + "src": "1207:62:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3214, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3203, + "src": "1280:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video memory" + } + }, + "functionReturnParameters": 3201, + "id": 3215, + "nodeType": "Return", + "src": "1273:12:11" + } + ] + }, + "documentation": null, + "functionSelector": "750a1063", + "id": 3217, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExistingVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3197, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3217, + "src": "1107:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3196, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1107:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1106:17:11" + }, + "returnParameters": { + "id": 3201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3200, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3217, + "src": "1145:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3199, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "1145:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1144:14:11" + }, + "scope": 3263, + "src": "1081:208:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3238, + "nodeType": "Block", + "src": "1365:132:11", + "statements": [ + { + "assignments": [ + 3227 + ], + "declarations": [ + { + "constant": false, + "id": 3227, + "mutability": "mutable", + "name": "video", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3238, + "src": "1390:19:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + }, + "typeName": { + "contractScope": null, + "id": 3226, + "name": "Video", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3126, + "src": "1390:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3231, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3228, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1412:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3230, + "indexExpression": { + "argumentTypes": null, + "id": 3229, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "1422:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1412:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1390:41:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3232, + "name": "video", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3227, + "src": "1467:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", + "typeString": "struct Video storage pointer" + } + }, + "id": 3234, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "isActive", + "nodeType": "MemberAccess", + "referencedDeclaration": 3123, + "src": "1467:14:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3235, + "name": "_isActive", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3221, + "src": "1484:9:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1467:26:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3237, + "nodeType": "ExpressionStatement", + "src": "1467:26:11" + } + ] + }, + "documentation": null, + "functionSelector": "b5b9dc91", + "id": 3239, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3224, + "modifierName": { + "argumentTypes": null, + "id": 3223, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1355:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1355:9:11" + } + ], + "name": "updateStatus", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3219, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3239, + "src": "1315:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3218, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1315:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3221, + "mutability": "mutable", + "name": "_isActive", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3239, + "src": "1332:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3220, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1332:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1314:33:11" + }, + "returnParameters": { + "id": 3225, + "nodeType": "ParameterList", + "parameters": [], + "src": "1365:0:11" + }, + "scope": 3263, + "src": "1292:205:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3261, + "nodeType": "Block", + "src": "1559:183:11", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1649:1:11", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3246, + "name": "videoCountByChannelId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3139, + "src": "1592:21:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", + "typeString": "mapping(uint64 => uint64)" + } + }, + "id": 3251, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3247, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1614:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3249, + "indexExpression": { + "argumentTypes": null, + "id": 3248, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "1624:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1614:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "channelId", + "nodeType": "MemberAccess", + "referencedDeclaration": 3121, + "src": "1614:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1592:52:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 2112, + "src": "1592:56:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", + "typeString": "function (uint64,uint64) pure returns (uint64)" + } + }, + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1592:59:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 3255, + "nodeType": "ExpressionStatement", + "src": "1592:59:11" + }, + { + "expression": { + "argumentTypes": null, + "id": 3259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "1712:26:11", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3256, + "name": "videoById", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3135, + "src": "1719:9:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", + "typeString": "mapping(uint64 => struct Video storage ref)" + } + }, + "id": 3258, + "indexExpression": { + "argumentTypes": null, + "id": 3257, + "name": "_videoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "1729:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1719:19:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Video_$3126_storage", + "typeString": "struct Video storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3260, + "nodeType": "ExpressionStatement", + "src": "1712:26:11" + } + ] + }, + "documentation": null, + "functionSelector": "9a055bbf", + "id": 3262, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 3244, + "modifierName": { + "argumentTypes": null, + "id": 3243, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3351, + "src": "1549:9:11", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1549:9:11" + } + ], + "name": "removeVideo", + "nodeType": "FunctionDefinition", + "overrides": null, + "parameters": { + "id": 3242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3241, + "mutability": "mutable", + "name": "_videoId", + "nodeType": "VariableDeclaration", + "overrides": null, + "scope": 3262, + "src": "1525:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 3240, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1525:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1524:17:11" + }, + "returnParameters": { + "id": 3245, + "nodeType": "ParameterList", + "parameters": [], + "src": "1559:0:11" + }, + "scope": 3263, + "src": "1503:239:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3264, + "src": "305:1439:11" + } + ], + "src": "0:1745:11" + }, + "compiler": { + "name": "solc", + "version": "0.6.12+commit.27d51765.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.2", + "updatedAt": "2020-11-17T12:09:37.589Z", + "devdoc": { + "kind": "dev", + "methods": { + "owner()": { + "details": "Returns the address of the current owner." + }, + "renounceOwnership()": { + "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." + }, + "transferOwnership(address)": { + "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/smart-contracts/contracts/ContentDirectory.sol b/smart-contracts/contracts/ContentDirectory.sol new file mode 100644 index 0000000000..3a5bf1ea51 --- /dev/null +++ b/smart-contracts/contracts/ContentDirectory.sol @@ -0,0 +1,510 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; +pragma experimental ABIEncoderV2; + +// TODO: Interfaces +import "./storage/ChannelStorage.sol"; +import "./storage/CuratorGroupStorage.sol"; +import "./storage/VideoStorage.sol"; + +import "./bridge/MembershipBridge.sol"; +import "./bridge/ContentWorkingGroupBridge.sol"; +import "./bridge/auth.sol"; + +import "../node_modules/@openzeppelin/contracts/utils/Pausable.sol"; +import "../node_modules/@openzeppelin/contracts/access/Ownable.sol"; + +contract ContentDirectory is RuntimeManageable, Pausable { + // Storage contracts + ChannelStorage public channelStorage; + VideoStorage public videoStorage; + CuratorGroupStorage public curatorGroupStorage; + // "Bridge" contracts + MembershipBridge public membershipBridge; + ContentWorkingGroupBridge public contentWorkingGroupBridge; + + // Limits + // (they can me "migrated" just be setting a default value here, so no need to keep them in a separate storage) + uint64 public channelInstancesLimit = 10; + uint32 public videosPerChannelDefaultLimit = 5; + uint32 public videosPerChannelMaxLimit = 1000; + + // Enum + constant related to group permissions + enum ContentDirectoryOperation { + UpdateChannelMetadata, + AddVideo, + UpdateVideoMetadata, + RemoveVideo + } + uint8 constant GROUP_PERMISSIONS_FLAGS_LENGTH = 4; + + // Reason validation consts + uint16 constant DEACTIVATE_CHANNEL_REASON_MIN_LENGTH = 2; + uint16 constant DEACTIVATE_VIDEO_REASON_MIN_LENGTH = 2; + uint16 constant REMOVE_VIDEO_REASON_MIN_LENGTH = 2; + + + // Limits change events + event ChannelInstancesLimitUpdated(uint64 _newLimit); + event VideosPerChannelDefaultLimitUpdated(uint32 _newLimit); + event VideosPerChannelMaxLimitUpdated(uint32 _newLimit); + + // Migration event + event Migrated(address _logic, address _videoStorage, address _channelStorage, address _curatorGroupStorage); + + // Channel-related events + event ChannelCreated(uint64 _id, ChannelOwnership _ownership, string[2][] _metadata); + event ChannelMetadataUpdated(uint64 _id, string[2][] _metadata); + event ChannelOwnershipUpdated(uint64 _id, ChannelOwnership _ownership); + event ChannelVideoLimitUpdated(uint64 _id, uint64 _newLimit); + event ChannelDeactivated(uint64 _id, string _reason); + event ChannelReactivated(uint64 _id); + event ChannelRemoved(uint64 _id); + + // CuratorGroup-related events + event CuratorGroupCreated(uint16 _groupId, bool[] _permissions); + event CuratorGroupPermissionsUpdated(uint16 _groupId, bool[] _permissions); + event CuratorAddedToGroup(uint64 _curatorId, uint16 _groupId); + event CuratorRemovedFromGroup(uint64 _curatorId, uint16 _groupId); + event CuratorRemovedFromAllGroups(uint64 _curatorId); + event CuratorGroupRemoved(uint16 _groupId); + + // Video-related events + event VideoAdded(uint64 _id, uint64 _channelId, string[2][] _metadata); + event VideoMetadataUpdated(uint64 _id, string[2][] _metadata); + event VideoRemoved(uint64 _id); + event VideoRemovedByCurator(uint64 _id, string _reason); + event VideoDeactivated(uint64 _id, string _reason); + event VideoReactivated(uint64 _id); + + // Common modifiers/helpers + function _isActiveLead (address _address) internal view returns (bool) { + return contentWorkingGroupBridge.isActiveLead(_address); + } + + function _isCurator (address _address, uint64 _curatorId) internal view returns (bool) { + return contentWorkingGroupBridge.isCurator(_address, _curatorId); + } + + modifier onlyLead () { + require(_isActiveLead(msg.sender), "Active lead access required!"); + _; + } + + // Pause/unpause contract (can be done through proposal) + function pause () public onlyCouncil { + _pause(); + } + + function unpause () public onlyCouncil { + _unpause(); + } + + // Limit setters that can be called via proposal module + function setChannelInstancesLimit (uint64 _newLimit) public onlyCouncil whenNotPaused { + channelInstancesLimit = _newLimit; + emit ChannelInstancesLimitUpdated(_newLimit); + } + + function setVideosPerChannelDefaultLimit (uint32 _newLimit) public onlyCouncil whenNotPaused { + require( + _newLimit <= videosPerChannelMaxLimit, + "videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit" + ); + videosPerChannelDefaultLimit = _newLimit; + emit VideosPerChannelDefaultLimitUpdated(_newLimit); + } + + function setVideosPerChannelMaxLimit (uint32 _newLimit) public onlyCouncil whenNotPaused { + require( + _newLimit >= videosPerChannelDefaultLimit, + "videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit" + ); + videosPerChannelMaxLimit = _newLimit; + emit VideosPerChannelMaxLimitUpdated(_newLimit); + } + + constructor ( + RuntimeAddressProvider _provider, + MembershipBridge _membershipBridge, + ContentWorkingGroupBridge _contentWorkingGroupBridge + // TODO: The upgraded logic contract would take those as args: + // ChannelStorage _channelStorage, + // VideoStorage _videoStorage, + // CuratorGroupStorage _curatorGroupStorage + ) public RuntimeManageable(_provider) { + membershipBridge = _membershipBridge; + contentWorkingGroupBridge = _contentWorkingGroupBridge; + channelStorage = new ChannelStorage(); + videoStorage = new VideoStorage(); + curatorGroupStorage = new CuratorGroupStorage(); + } + + // Faciliates migration to new logic contract + function migrate ( + address _newLogic, + address _newVideoStorage, + address _newChannelStorage, + address _newCuratorGroupStorage + ) public onlyCouncil { + _migrateStorage(address(videoStorage), _newVideoStorage, _newLogic); + _migrateStorage(address(channelStorage), _newChannelStorage, _newLogic); + _migrateStorage(address(curatorGroupStorage), _newCuratorGroupStorage, _newLogic); + emit Migrated( + _newLogic, + _newVideoStorage == address(0) ? address(videoStorage) : _newVideoStorage, + _newChannelStorage == address(0) ? address(channelStorage) : _newChannelStorage, + _newCuratorGroupStorage == address(0) ? address(curatorGroupStorage) : _newCuratorGroupStorage + ); + selfdestruct(msg.sender); + } + + function _migrateStorage ( + address _oldStorageAddress, + address _newStorageAddress, + address _newLogicAddress + ) internal { + if (_newStorageAddress != address(0)) { + // TODO: Set upgraded storage contract owner + } + Ownable oldStorage = Ownable(_oldStorageAddress); + oldStorage.transferOwnership(_newLogicAddress); + } + + // CHANNELS + using ChannelOwnershipDecoder for ChannelOwnership; + + // Access/validation utils: + function _validateOwnership (ChannelOwnership memory _ownership) internal view returns (bool) { + require(_ownership.isValid(), "Invalid ownership data"); + if (_ownership.isMember()) { + require( + membershipBridge.memberExists(_ownership.asMember()), + "Member ownership - member does not exist!" + ); + } + if (_ownership.isCuratorGroup()) { + require( + curatorGroupStorage.groupExists(_ownership.asCuratorGroup()), + "CuratorGroup ownership - group does not exist!" + ); + } + } + + function _hasOwnerAccess (address _address, ChannelOwnership memory _ownership) internal view returns (bool) { + if (_ownership.isAddress()) { + return _address == _ownership.asAddress(); + } + else if (_ownership.isMember()) { + return membershipBridge.isMemberController(_address, _ownership.asMember()); + } + else if (_ownership.isCuratorGroup()) { + // Only lead can act as owner of group channel + return contentWorkingGroupBridge.isActiveLead(_address); + } + + assert(false); // Ensure all cases are covered + } + + function _canCurate ( + address _address, + uint64 _curatorId, + ChannelOwnership memory _ownership + ) internal view returns (bool) { + return _ownership.isCuratorGroup() ? _isActiveLead(_address) : _isCurator(_address, _curatorId); + } + + function _hasGroupAccessToOperation ( + address _address, + uint64 _curatorId, + ChannelOwnership memory _ownership, + ContentDirectoryOperation _operation + ) internal view returns (bool) { + return ( + _ownership.isCuratorGroup() && + _isCurator(_address, _curatorId) && + curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _ownership.asCuratorGroup()) && + curatorGroupStorage.getExistingGroup(_ownership.asCuratorGroup()).permissions[uint8(_operation)] == true + ); + } + + // Channel operations: + function createChannel ( + ChannelOwnership memory _ownership, + string[2][] memory _metadata + ) public whenNotPaused { + require(_ownership.isValid(), "Invalid ownership"); + require(channelStorage.nextChannelId() <= channelInstancesLimit, "Channel instances limit reached"); + require(_hasOwnerAccess(msg.sender, _ownership), "Access denied under provided ownership"); + uint64 channelId = channelStorage.addChannel(_ownership); + emit ChannelCreated(channelId, _ownership, _metadata); + } + + function updateChannelMetadata ( + uint64 _channelId, + string[2][] memory _metadata + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + emit ChannelMetadataUpdated(_channelId, _metadata); + } + + // updateChannelMetadata overload with curator context (_curatorId) + function updateChannelMetadataAsCurator ( + uint64 _channelId, + string[2][] memory _metadata, + uint64 _curatorId + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require( + _canCurate(msg.sender, _curatorId, channel.ownership) || + _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.UpdateChannelMetadata), + "Access denied" + ); + emit ChannelMetadataUpdated(_channelId, _metadata); + } + + function updateChannelOwnership ( + uint64 _channelId, + ChannelOwnership memory _ownership + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + require(_ownership.isValid(), "Invalid ownership"); + require(!_ownership.isCuratorGroup() || _isActiveLead(msg.sender), "Only lead can update ownership to CuratorGroup"); + channelStorage.updateOwnership(_channelId, _ownership); + emit ChannelOwnershipUpdated(_channelId, _ownership); + } + + function updateChannelVideoLimit ( + uint64 _channelId, + uint32 _limit, // Note that "0" here would mean "use currently default limit" + uint64 _curatorId + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(_limit <= videosPerChannelMaxLimit, "The limit cannot exceed global videosPerChannelMaxLimit"); + channelStorage.setChannelVideoLimit(_channelId, _limit); + emit ChannelVideoLimitUpdated(_channelId, _limit); + } + + function deactivateChannel ( + uint64 _channelId, + string memory _reason, + uint64 _curatorId + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(channel.isActive, "Channel already deactivated"); + require(bytes(_reason).length >= DEACTIVATE_CHANNEL_REASON_MIN_LENGTH, "The reason is too short"); + channelStorage.updateStatus(_channelId, false); + emit ChannelDeactivated(_channelId, _reason); + } + + function activateChannel ( + uint64 _channelId, + uint64 _curatorId + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(!channel.isActive, "Channel already active"); + channelStorage.updateStatus(_channelId, true); + emit ChannelReactivated(_channelId); + } + + function removeChannel ( + uint64 _channelId + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + require(videoStorage.videoCountByChannelId(_channelId) == 0, "Cannot remove a channel unless it has no videos"); + channelStorage.removeChannel(_channelId); + emit ChannelRemoved(_channelId); + } + + // CURATOR GROUPS + + function createCuratorGroup ( + bool[] memory _permissions + ) public whenNotPaused onlyLead { + require(_permissions.length == GROUP_PERMISSIONS_FLAGS_LENGTH, "Invalid permissions array length"); + uint16 groupId = curatorGroupStorage.addGroup(_permissions); + emit CuratorGroupCreated(groupId, _permissions); + } + + function updateCuratorGroupPermissions ( + uint16 _groupId, + bool[] memory _permissions + ) public whenNotPaused onlyLead { + require(_permissions.length == GROUP_PERMISSIONS_FLAGS_LENGTH, "Invalid permissions array length"); + curatorGroupStorage.setGroupPermissions(_groupId, _permissions); + emit CuratorGroupPermissionsUpdated(_groupId, _permissions); + } + + function addCuratorToGroup ( + uint64 _curatorId, + uint16 _groupId + ) public whenNotPaused onlyLead { + require(contentWorkingGroupBridge.curatorExists(_curatorId), "Curator id not recognized"); + require(curatorGroupStorage.groupExists(_groupId), "Group id not recognized"); + require(curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _groupId) == false, "Curator is already in the group"); + curatorGroupStorage.addCuratorToGroup(_curatorId, _groupId); + emit CuratorAddedToGroup(_curatorId, _groupId); + } + + function removeCuratorFromGroup ( + uint64 _curatorId, + uint16 _groupId + ) public whenNotPaused onlyLead { + // We don't validate if curator exists here, it's enough to check that isCuratorInGroup == true + require(curatorGroupStorage.groupExists(_groupId), "Group id not recognized"); + require(curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _groupId) == true, "Curator is already not in the group"); + curatorGroupStorage.removeCuratorFromGroup(_curatorId, _groupId); + emit CuratorRemovedFromGroup(_curatorId, _groupId); + } + + function removeCuratorFromAllGroups ( + uint64 _curatorId + ) public whenNotPaused onlyLead { + require(contentWorkingGroupBridge.curatorExists(_curatorId), "Curator id not recognized"); + curatorGroupStorage.removeCuratorFromAllGroups(_curatorId); + emit CuratorRemovedFromAllGroups(_curatorId); + } + + function removeCuratorGroup ( + uint16 _groupId + ) public whenNotPaused onlyLead { + Group memory group = curatorGroupStorage.getExistingGroup(_groupId); + require(group.curatorsCount == 0, "Group's curators count needs to be 0"); + require( + channelStorage.channelCountByOwnership(uint8(ChannelOwnerType.CuratorGroup), _groupId) == 0, + "Group's channels count needs to be 0" + ); + curatorGroupStorage.removeGroup(_groupId); + emit CuratorGroupRemoved(_groupId); + } + + // VIDEOS + function addVideo ( + uint64 _channelId, + string[2][] memory _metadata + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + require(channel.isActive, "Cannot add video to a channel that isn't active"); + uint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit; + require(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit); + uint64 videoId = videoStorage.addVideo(_channelId); + emit VideoAdded(videoId, _channelId, _metadata); + } + + // addVideo - curator context overload + function addVideoAsCurator ( + uint64 _channelId, + string[2][] memory _metadata, + uint64 _curatorId + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require( + _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.AddVideo), + "Access denied" + ); + require(channel.isActive, "Cannot add video to a channel that isn't active"); + uint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit; + require(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit); + uint64 videoId = videoStorage.addVideo(_channelId); + emit VideoAdded(videoId, _channelId, _metadata); + } + + function updateVideoMetadata ( + uint64 _videoId, + string[2][] memory _metadata + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + emit VideoMetadataUpdated(_videoId, _metadata); + } + + // updateVideoMetadata - curator context overload + function updateVideoMetadataAsCurator ( + uint64 _videoId, + string[2][] memory _metadata, + uint64 _curatorId + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require( + _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.UpdateVideoMetadata) || + _canCurate(msg.sender, _curatorId, channel.ownership), + "Access denied" + ); + emit VideoMetadataUpdated(_videoId, _metadata); + } + + function removeVideo ( + uint64 _videoId + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + videoStorage.removeVideo(_videoId); + emit VideoRemoved(_videoId); + } + + // removeVideo - group channel video removal overload + function removeGroupChannelVideoAsCurator ( + uint64 _videoId, + uint64 _curatorId + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(channel.ownership.isCuratorGroup(), "The video does not belong to Curator Group channel"); + require( + _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.RemoveVideo), + "Access denied" + ); + videoStorage.removeVideo(_videoId); + emit VideoRemoved(_videoId); + } + + // removeVideo - curator context + reason overload + function removeVideoAsCurator ( + uint64 _videoId, + uint64 _curatorId, + string memory _reason + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(bytes(_reason).length > REMOVE_VIDEO_REASON_MIN_LENGTH, "The reason is too short"); + videoStorage.removeVideo(_videoId); + emit VideoRemovedByCurator(_videoId, _reason); + } + + function deactivateVideo ( + uint64 _videoId, + string memory _reason, + uint64 _curatorId + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(video.isActive, "Video already deactivated"); + require(bytes(_reason).length >= DEACTIVATE_VIDEO_REASON_MIN_LENGTH, "The reason is too short"); + videoStorage.updateStatus(_videoId, false); + emit VideoDeactivated(_videoId, _reason); + } + + function activateVideo ( + uint64 _videoId, + uint64 _curatorId + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(!video.isActive, "Video already active"); + videoStorage.updateStatus(_videoId, true); + emit VideoReactivated(_videoId); + } +} diff --git a/smart-contracts/contracts/Migrations.sol b/smart-contracts/contracts/Migrations.sol new file mode 100644 index 0000000000..5fcab087b9 --- /dev/null +++ b/smart-contracts/contracts/Migrations.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +contract Migrations { + address public owner; + uint public last_completed_migration; + + constructor() public { + owner = msg.sender; + } + + modifier restricted() { + if (msg.sender == owner) _; + } + + function setCompleted(uint completed) public restricted { + last_completed_migration = completed; + } + + function upgrade(address new_address) public restricted { + Migrations upgraded = Migrations(new_address); + upgraded.setCompleted(last_completed_migration); + } +} diff --git a/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol b/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol new file mode 100644 index 0000000000..c1855a35bc --- /dev/null +++ b/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +import "./auth.sol"; + +contract ContentWorkingGroupBridge is RuntimeManageable { + // A map of curatorId => evmAddress(roleKey) + mapping (uint64 => address) private addressByCuratorId; + + // evmAddress(roleKey) of current lead + address public currentLeadAddress; + + // Lead status managed by the council + bool public isLeadActive = true; + + constructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {} + + function setCuratorAddress (uint64 _curatorId, address _address) public onlyRuntime { + addressByCuratorId[_curatorId] = _address; + } + + function setLeadAddress (address _address) public onlyRuntime { + currentLeadAddress = _address; + } + + function setLeadStatus (bool _status) public onlyCouncil { + isLeadActive = _status; + } + + function isCurator (address _address, uint64 _curatorId) public view returns (bool) { + return ( + curatorExists(_curatorId) && + addressByCuratorId[_curatorId] == _address + ); + } + + function curatorExists (uint64 _curatorId) public view returns (bool) { + return addressByCuratorId[_curatorId] != address(0); + } + + function isActiveLead (address _address) public view returns (bool) { + return ( + isLeadActive && + currentLeadAddress != address(0) && + currentLeadAddress == _address + ); + } +} diff --git a/smart-contracts/contracts/bridge/MembershipBridge.sol b/smart-contracts/contracts/bridge/MembershipBridge.sol new file mode 100644 index 0000000000..2f71ed6312 --- /dev/null +++ b/smart-contracts/contracts/bridge/MembershipBridge.sol @@ -0,0 +1,25 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +import "./auth.sol"; + +contract MembershipBridge is RuntimeManageable { + mapping (uint64 => address) private controllerAddressByMemberId; + + constructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {} + + function setMemberAddress (uint64 _memberId, address _address) public onlyRuntime { + controllerAddressByMemberId[_memberId] = _address; + } + + function isMemberController (address _address, uint64 _memberId) public view returns (bool) { + return ( + memberExists(_memberId) && + controllerAddressByMemberId[_memberId] == _address + ); + } + + function memberExists (uint64 _memberId) public view returns (bool) { + return controllerAddressByMemberId[_memberId] != address(0); + } +} diff --git a/smart-contracts/contracts/bridge/auth.sol b/smart-contracts/contracts/bridge/auth.sol new file mode 100644 index 0000000000..33c7259cad --- /dev/null +++ b/smart-contracts/contracts/bridge/auth.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +// Provider of runtime-hardcoded addresses +// (can be customized for testing purposes) +contract RuntimeAddressProvider { + address public runtimeAddress; + address public councilAddress; + + constructor (address _runtimeAddress, address _councilAddress) public { + // The address hardcoded in the runtime, used to update bridges + // (and possibly other operations that shouldn't be done via proposal) + runtimeAddress = _runtimeAddress; + // This is the address hardcoded in the runtime proposal module + // (can only be used in context of proposal execution) + councilAddress = _councilAddress; + } +} + +// Abstract contract providing modifiers for contracts that can be managed through runtime/proposals +abstract contract RuntimeManageable { + RuntimeAddressProvider public runtimeAddressProvider; + + constructor (RuntimeAddressProvider _runtimeAddressProvider) public { + runtimeAddressProvider = _runtimeAddressProvider; + } + + modifier onlyRuntime { + require( + msg.sender == runtimeAddressProvider.runtimeAddress(), + "This function can only be executed from the runtime" + ); + _; + } + + modifier onlyCouncil { + require( + msg.sender == runtimeAddressProvider.councilAddress(), + "This function can only be executed through proposal system" + ); + _; + } +} diff --git a/smart-contracts/contracts/lib/SafeMath16.sol b/smart-contracts/contracts/lib/SafeMath16.sol new file mode 100644 index 0000000000..339d671153 --- /dev/null +++ b/smart-contracts/contracts/lib/SafeMath16.sol @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +// uint16 version of OpenZeppelin's SafeMath +library SafeMath16 { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint16 a, uint16 b) internal pure returns (uint16) { + uint16 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint16 a, uint16 b) internal pure returns (uint16) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) { + require(b <= a, errorMessage); + uint16 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint16 a, uint16 b) internal pure returns (uint16) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; + } + + uint16 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint16 a, uint16 b) internal pure returns (uint16) { + return div(a, b, "SafeMath: division by zero"); + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) { + require(b > 0, errorMessage); + uint16 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint16 a, uint16 b) internal pure returns (uint16) { + return mod(a, b, "SafeMath: modulo by zero"); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) { + require(b != 0, errorMessage); + return a % b; + } +} diff --git a/smart-contracts/contracts/lib/SafeMath32.sol b/smart-contracts/contracts/lib/SafeMath32.sol new file mode 100644 index 0000000000..5a9b5a673d --- /dev/null +++ b/smart-contracts/contracts/lib/SafeMath32.sol @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +// uint32 version of OpenZeppelin's SafeMath +library SafeMath32 { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint32 a, uint32 b) internal pure returns (uint32) { + uint32 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint32 a, uint32 b) internal pure returns (uint32) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) { + require(b <= a, errorMessage); + uint32 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint32 a, uint32 b) internal pure returns (uint32) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; + } + + uint32 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint32 a, uint32 b) internal pure returns (uint32) { + return div(a, b, "SafeMath: division by zero"); + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) { + require(b > 0, errorMessage); + uint32 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint32 a, uint32 b) internal pure returns (uint32) { + return mod(a, b, "SafeMath: modulo by zero"); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) { + require(b != 0, errorMessage); + return a % b; + } +} diff --git a/smart-contracts/contracts/lib/SafeMath64.sol b/smart-contracts/contracts/lib/SafeMath64.sol new file mode 100644 index 0000000000..fcf9daf142 --- /dev/null +++ b/smart-contracts/contracts/lib/SafeMath64.sol @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +// uint64 version of OpenZeppelin's SafeMath +library SafeMath64 { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint64 a, uint64 b) internal pure returns (uint64) { + uint64 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint64 a, uint64 b) internal pure returns (uint64) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) { + require(b <= a, errorMessage); + uint64 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint64 a, uint64 b) internal pure returns (uint64) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; + } + + uint64 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint64 a, uint64 b) internal pure returns (uint64) { + return div(a, b, "SafeMath: division by zero"); + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) { + require(b > 0, errorMessage); + uint64 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint64 a, uint64 b) internal pure returns (uint64) { + return mod(a, b, "SafeMath: modulo by zero"); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) { + require(b != 0, errorMessage); + return a % b; + } +} diff --git a/smart-contracts/contracts/lib/SafeMath8.sol b/smart-contracts/contracts/lib/SafeMath8.sol new file mode 100644 index 0000000000..132fd34bbb --- /dev/null +++ b/smart-contracts/contracts/lib/SafeMath8.sol @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; + +// uint8 version of OpenZeppelin's SafeMath +library SafeMath8 { + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint8 a, uint8 b) internal pure returns (uint8) { + uint8 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint8 a, uint8 b) internal pure returns (uint8) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) { + require(b <= a, errorMessage); + uint8 c = a - b; + + return c; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint8 a, uint8 b) internal pure returns (uint8) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; + } + + uint8 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint8 a, uint8 b) internal pure returns (uint8) { + return div(a, b, "SafeMath: division by zero"); + } + + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) { + require(b > 0, errorMessage); + uint8 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold + + return c; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint8 a, uint8 b) internal pure returns (uint8) { + return mod(a, b, "SafeMath: modulo by zero"); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) { + require(b != 0, errorMessage); + return a % b; + } +} diff --git a/smart-contracts/contracts/storage/ChannelStorage.sol b/smart-contracts/contracts/storage/ChannelStorage.sol new file mode 100644 index 0000000000..5e678e50e7 --- /dev/null +++ b/smart-contracts/contracts/storage/ChannelStorage.sol @@ -0,0 +1,140 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; +pragma experimental ABIEncoderV2; + +import "../../node_modules/@openzeppelin/contracts/access/Ownable.sol"; +import "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol"; +import "../lib/SafeMath32.sol"; +import "../lib/SafeMath64.sol"; + +// Generic representation of ownership, assuming that each possible ownership consists of: +// - Type (ie. Member, Group, Curator etc.), which is represented by uint8 (and can be converted to/from enum) +// - Identifier (address/id/hash), which is represented by uint256 +struct ChannelOwnership { + uint8 ownershipType; + uint256 ownerId; +} + +// Any change to this struct requires ChannelStorage migration +struct Channel { + ChannelOwnership ownership; + bool isActive; + uint32 videoLimit; // 0 = use default + bool isExisting; +} + +// A helper library to parse ChannelOwnership. +// New ownership types can be added if needed without the need for migration +// (but changing/removing existing ones would still require migration to new storage) +enum ChannelOwnerType { Address, Member, CuratorGroup } +library ChannelOwnershipDecoder { + function isAddress(ChannelOwnership memory _ownership) internal pure returns (bool) { + return _ownership.ownershipType == uint8(ChannelOwnerType.Address); + } + + function isMember(ChannelOwnership memory _ownership) internal pure returns (bool) { + return _ownership.ownershipType == uint8(ChannelOwnerType.Member); + } + + function isCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (bool) { + return _ownership.ownershipType == uint8(ChannelOwnerType.CuratorGroup); + } + + function asAddress(ChannelOwnership memory _ownership) internal pure returns (address) { + require( + isAddress(_ownership), + "asAddress called on non-address ChannelOwnership" + ); + return address(uint160(_ownership.ownerId)); + } + + function asMember(ChannelOwnership memory _ownership) internal pure returns (uint64) { + require( + isMember(_ownership), + "asMember called on non-member ChannelOwnership" + ); + return uint64(_ownership.ownerId); + } + + function asCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (uint16) { + require( + isCuratorGroup(_ownership), + "asCuratorGroup called on non-group ChannelOwnership" + ); + return uint16(_ownership.ownerId); + } + + function isValid(ChannelOwnership memory _ownership) internal pure returns (bool) { + if (isAddress(_ownership)) { + return uint256(uint160(asAddress(_ownership))) == _ownership.ownerId; + } + if (isMember(_ownership)) { + return uint256(asMember(_ownership)) == _ownership.ownerId; + } + if (isCuratorGroup(_ownership)) { + return uint256(asCuratorGroup(_ownership)) == _ownership.ownerId; + } + return false; + } +} + +contract ChannelStorage is Ownable { + mapping (uint64 => Channel) private channelById; + // ownershipType => ownerId => channelCount double-map + mapping (uint8 => mapping(uint256 => uint32)) public channelCountByOwnership; + uint64 public nextChannelId = 1; + + using SafeMath32 for uint32; + using SafeMath64 for uint64; + + function _incCountByOwnership (ChannelOwnership memory _ownership) internal { + uint32 currentCount = channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId]; + channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId] = currentCount.add(1); + } + + function _decCountByOwnership (ChannelOwnership memory _ownership) internal { + uint32 currentCount = channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId]; + channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId] = currentCount.sub(1); + } + + function addChannel (ChannelOwnership memory _ownership) public onlyOwner returns (uint64) { + uint64 channelId = nextChannelId; + // Get storage ref + Channel storage newChannel = channelById[channelId]; + // Populate the struct + newChannel.isExisting = true; + newChannel.ownership = _ownership; + _incCountByOwnership(_ownership); + nextChannelId = nextChannelId.add(1); + return channelId; + } + + // Get channel + perform existance check + function getExistingChannel(uint64 _channelId) public view returns (Channel memory) { + Channel memory channel = channelById[_channelId]; + require(channel.isExisting, "Trying to access unexisting channel"); + return channel; + } + + function updateOwnership (uint64 _channelId, ChannelOwnership memory _ownership) public onlyOwner { + Channel storage channel = channelById[_channelId]; + _decCountByOwnership(channel.ownership); + channel.ownership = _ownership; + _incCountByOwnership(_ownership); + } + + function updateStatus (uint64 _channelId, bool _isActive) public onlyOwner { + Channel storage channel = channelById[_channelId]; + channel.isActive = _isActive; + } + + function setChannelVideoLimit (uint64 _channelId, uint32 _videoLimit) public onlyOwner { + Channel storage channel = channelById[_channelId]; + channel.videoLimit = _videoLimit; + } + + function removeChannel (uint64 _channelId) public onlyOwner { + _decCountByOwnership(channelById[_channelId].ownership); + delete channelById[_channelId]; + } +} diff --git a/smart-contracts/contracts/storage/CuratorGroupStorage.sol b/smart-contracts/contracts/storage/CuratorGroupStorage.sol new file mode 100644 index 0000000000..e001f12131 --- /dev/null +++ b/smart-contracts/contracts/storage/CuratorGroupStorage.sol @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; +pragma experimental ABIEncoderV2; + +import "../../node_modules/@openzeppelin/contracts/access/Ownable.sol"; + +import "../lib/SafeMath8.sol"; +import "../lib/SafeMath16.sol"; +import "../lib/SafeMath32.sol"; + +// Any change to this struct requires CuratorGroupStorage migration +struct Group { + bool isExisting; + uint32 curatorsCount; + // A generic, storage representation of group permissions' flags + // Those flags can have different meanings depending on current logic implementation + bool[] permissions; +} + +contract CuratorGroupStorage is Ownable { + using SafeMath8 for uint8; + using SafeMath16 for uint16; + using SafeMath32 for uint32; + + // curatorId => groupId => boolean double-map representing curator membership in group + mapping (uint64 => mapping (uint16 => bool)) private isCuratorInGroup; + + mapping (uint16 => Group) private groupById; + + uint16 public nextGroupId = 1; + + function addGroup (bool[] memory _permissions) public onlyOwner returns (uint16) { + uint16 groupId = nextGroupId; + // Get storage ref + Group storage newGroup = groupById[groupId]; + // Populate the struct + newGroup.isExisting = true; + newGroup.permissions = _permissions; + nextGroupId = nextGroupId.add(1); + return groupId; + } + + function setGroupPermissions (uint16 _groupId, bool[] memory _permissions) public onlyOwner returns (uint16) { + Group storage group = groupById[_groupId]; + group.permissions = _permissions; + } + + function groupExists (uint16 _groupId) public view returns (bool) { + return groupById[_groupId].isExisting; + } + + function getExistingGroup (uint16 _groupId) public view returns (Group memory) { + require( + this.groupExists(_groupId), + "Trying to access unexisting group" + ); + return groupById[_groupId]; + } + + function isCuratorInExistingGroup (uint64 _curatorId, uint16 _groupId) public view returns (bool) { + return ( + groupExists(_groupId) && + isCuratorInGroup[_curatorId][_groupId] + ); + } + + function addCuratorToGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner { + Group storage group = groupById[_groupId]; + isCuratorInGroup[_curatorId][_groupId] = true; + group.curatorsCount = group.curatorsCount.add(1); + } + + function removeCuratorFromGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner { + Group storage group = groupById[_groupId]; + isCuratorInGroup[_curatorId][_groupId] = false; + group.curatorsCount = group.curatorsCount.sub(1); + } + + function removeCuratorFromAllGroups(uint64 _curatorId) public onlyOwner { + for (uint16 i = 1; i < nextGroupId; i = i.add(1)) { + if (isCuratorInGroup[_curatorId][i]) { + removeCuratorFromGroup(_curatorId, i); + } + } + } + + // TODO: Is there a value in removing a group that has no curators and no channels anymore? + function removeGroup (uint16 _groupId) public onlyOwner { + delete groupById[_groupId]; // Will set isExisting to false + } +} diff --git a/smart-contracts/contracts/storage/VideoStorage.sol b/smart-contracts/contracts/storage/VideoStorage.sol new file mode 100644 index 0000000000..bc203b291d --- /dev/null +++ b/smart-contracts/contracts/storage/VideoStorage.sol @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.6.0; +pragma experimental ABIEncoderV2; + +import "../../node_modules/@openzeppelin/contracts/access/Ownable.sol"; +import "../lib/SafeMath64.sol"; + +// Any change to this struct requires VideoStorage migration +struct Video { + uint64 channelId; + bool isActive; + bool isExisting; +} + +contract VideoStorage is Ownable { + using SafeMath64 for uint64; + + mapping (uint64 => Video) private videoById; + mapping (uint64 => uint64) public videoCountByChannelId; + uint64 nextVideoId = 1; + + function addVideo (uint64 _channelId) public onlyOwner returns (uint64) { + uint64 videoId = nextVideoId; + // Get storage ref + Video storage newVideo = videoById[videoId]; + // Populate the struct + newVideo.isExisting = true; + newVideo.isActive = true; + newVideo.channelId = _channelId; + // Update counters + videoCountByChannelId[_channelId] = videoCountByChannelId[_channelId].add(1); + nextVideoId = nextVideoId.add(1); + return videoId; + } + + // Get video + perform existance check + function getExistingVideo(uint64 _videoId) public view returns (Video memory) { + Video memory video = videoById[_videoId]; + require(video.isExisting, "Trying to access unexisting video"); + return video; + } + + function updateStatus (uint64 _videoId, bool _isActive) public onlyOwner { + // Get storage ref + Video storage video = videoById[_videoId]; + // Update the value in struct + video.isActive = _isActive; + } + + function removeVideo (uint64 _videoId) public onlyOwner { + // Dec videoCountByChannel + uint64 _channelId = videoById[_videoId].channelId; + videoCountByChannelId[_channelId] = videoCountByChannelId[_channelId].sub(1); + // Clear entry in map (setting isExisting to false) + delete videoById[_videoId]; + } +} diff --git a/smart-contracts/migrations/1_initial_migration.js b/smart-contracts/migrations/1_initial_migration.js new file mode 100644 index 0000000000..ee2135d295 --- /dev/null +++ b/smart-contracts/migrations/1_initial_migration.js @@ -0,0 +1,5 @@ +const Migrations = artifacts.require("Migrations"); + +module.exports = function(deployer) { + deployer.deploy(Migrations); +}; diff --git a/smart-contracts/migrations/2_deploy_contracts.js b/smart-contracts/migrations/2_deploy_contracts.js new file mode 100644 index 0000000000..1ff06f158e --- /dev/null +++ b/smart-contracts/migrations/2_deploy_contracts.js @@ -0,0 +1,20 @@ +const RuntimeAddressProvider = artifacts.require("RuntimeAddressProvider"); +const ContentDirectory = artifacts.require("ContentDirectory"); +const MembershipBridge = artifacts.require("MembershipBridge"); +const ContentWorkingGroupBridge = artifacts.require("ContentWorkingGroupBridge"); + +const RUNTIME_ADDRESS = '0x2222222222222222222222222222222222222222'; +const COUNCIL_ADDRESS = '0xcccccccccccccccccccccccccccccccccccccccc'; + +module.exports = function (deployer) { + deployer + .then(() => deployer.deploy(RuntimeAddressProvider, RUNTIME_ADDRESS, COUNCIL_ADDRESS)) + .then(() => deployer.deploy(MembershipBridge, RuntimeAddressProvider.address)) + .then(() => deployer.deploy(ContentWorkingGroupBridge, RuntimeAddressProvider.address)) + .then(() => deployer.deploy(ContentDirectory, + RuntimeAddressProvider.address, + MembershipBridge.address, + ContentWorkingGroupBridge.address + )) +}; + diff --git a/smart-contracts/package.json b/smart-contracts/package.json new file mode 100644 index 0000000000..ce0510b9d1 --- /dev/null +++ b/smart-contracts/package.json @@ -0,0 +1,21 @@ +{ + "name": "@joystream/cd-smart-contract", + "version": "0.1.0", + "scripts": { + "test": "truffle test", + "start": "ganache-cli --hardfork istanbul --network-id 5777 --gasLimit 10000000", + "lint:contracts": "solhint 'contracts/**/*.sol'" + }, + "dependencies": { + "@openzeppelin/contracts": "^3.0.0", + "@truffle/contract": "^4.2.28", + "openzeppelin-solidity": "^3.1.0", + "truffle": "^5.1.33" + }, + "devDependencies": { + "typescript": "^4.0.5", + "ts-node": "^9.0.0", + "ganache-cli": "^6.12.1", + "solhint": "^3.3.2" + } +} diff --git a/smart-contracts/test/.eslintrc b/smart-contracts/test/.eslintrc new file mode 100644 index 0000000000..d0a9f1c1f8 --- /dev/null +++ b/smart-contracts/test/.eslintrc @@ -0,0 +1,13 @@ +{ + "env": { + "node": true, + "mocha": true, + "commonjs": true + }, + // Globals provided by Truffle: + "globals": { + "artifacts": true, + "web3": true, + "assert": true + } +} diff --git a/smart-contracts/test/bridges.js b/smart-contracts/test/bridges.js new file mode 100644 index 0000000000..d419f193b0 --- /dev/null +++ b/smart-contracts/test/bridges.js @@ -0,0 +1,43 @@ +const RuntimeAddressProvider = artifacts.require('RuntimeAddressProvider') +const MembershipBridge = artifacts.require('MembershipBridge') +const ContentWorkingGroupBridge = artifacts.require('ContentWorkingGroupBridge') + +const RUNTIME_ADDRESS_INDEX = 0 +const COUNCIL_ADDRESS_INDEX = 1 +const MEMBER_1_ADDRESS_INDEX = 2 + +describe('Bridges', () => { + let runtimeAddressProvider + let membershipBridge + let contentDirectoryBridge + let accounts + + before(async () => { + accounts = await web3.eth.getAccounts() + // Create new provider with available accounts set as runtime and council addresses + runtimeAddressProvider = await RuntimeAddressProvider.new( + accounts[RUNTIME_ADDRESS_INDEX], + accounts[COUNCIL_ADDRESS_INDEX] + ) + // Instantialize bridges with the test RuntimeAddressProvider + membershipBridge = await MembershipBridge.new(runtimeAddressProvider.address) + contentDirectoryBridge = await ContentWorkingGroupBridge.new(runtimeAddressProvider.address) + }) + + it('should be initialized with test provider', async () => { + assert.equal(await runtimeAddressProvider.runtimeAddress(), accounts[RUNTIME_ADDRESS_INDEX]) + assert.equal(await runtimeAddressProvider.councilAddress(), accounts[COUNCIL_ADDRESS_INDEX]) + assert.equal(await membershipBridge.runtimeAddressProvider(), runtimeAddressProvider.address) + assert.equal(await contentDirectoryBridge.runtimeAddressProvider(), runtimeAddressProvider.address) + }) + + it('should allow the runtime to set member controller address', async () => { + await membershipBridge.setMemberAddress(1, accounts[MEMBER_1_ADDRESS_INDEX], { + from: accounts[RUNTIME_ADDRESS_INDEX] + }) + assert.isTrue(await membershipBridge.memberExists(1)) + assert.isTrue(await membershipBridge.isMemberController(accounts[MEMBER_1_ADDRESS_INDEX], 1)) + assert.isFalse(await membershipBridge.isMemberController(accounts[MEMBER_1_ADDRESS_INDEX], 2)) + assert.isFalse(await membershipBridge.isMemberController(accounts[RUNTIME_ADDRESS_INDEX], 1)) + }) +}) diff --git a/smart-contracts/test/channels.js b/smart-contracts/test/channels.js new file mode 100644 index 0000000000..7d8eb7f2f3 --- /dev/null +++ b/smart-contracts/test/channels.js @@ -0,0 +1,83 @@ +const RuntimeAddressProvider = artifacts.require('RuntimeAddressProvider') +const MembershipBridge = artifacts.require('MembershipBridge') +const ContentWorkingGroupBridge = artifacts.require('ContentWorkingGroupBridge') +const ChannelStorage = artifacts.require('ChannelStorage') +const VideoStorage = artifacts.require('VideoStorage') +const CuratorGroupStorage = artifacts.require('CuratorGroupStorage') +const ContentDirectory = artifacts.require('ContentDirectory') + +const RUNTIME_ADDRESS_INDEX = 0 +const COUNCIL_ADDRESS_INDEX = 1 +const MEMBER_1_ADDRESS_INDEX = 2 +const MEMBER_2_ADDRESS_INDEX = 3 + +// Mimic the Solidity enum: +const ChannelOwnerType = { + Address: 0, + Member: 1, + CuratorGroup: 2 +} + +describe('ContentDirectory', () => { + let runtimeAddressProvider + let membershipBridge + let contentDirectoryBridge + let contentDirectory + let accounts + + before(async () => { + accounts = await web3.eth.getAccounts() + // Create new provider with available accounts set as runtime and council addresses + runtimeAddressProvider = await RuntimeAddressProvider.new( + accounts[RUNTIME_ADDRESS_INDEX], + accounts[COUNCIL_ADDRESS_INDEX] + ) + // Instantialize bridges with the test RuntimeAddressProvider + membershipBridge = await MembershipBridge.new(runtimeAddressProvider.address) + contentDirectoryBridge = await ContentWorkingGroupBridge.new(runtimeAddressProvider.address) + // Add members + await membershipBridge.setMemberAddress(1, accounts[MEMBER_1_ADDRESS_INDEX], { + from: accounts[RUNTIME_ADDRESS_INDEX] + }) + await membershipBridge.setMemberAddress(2, accounts[MEMBER_2_ADDRESS_INDEX], { + from: accounts[RUNTIME_ADDRESS_INDEX] + }) + // Instantialize the main content directory contract + contentDirectory = await ContentDirectory.new( + runtimeAddressProvider.address, + membershipBridge.address, + contentDirectoryBridge.address + ) + }) + + it('should allow the member to create a channel', async () => { + await contentDirectory.createChannel( + [ChannelOwnerType.Member, 1], + [ + ['title', 'Awesome channel'], + ['description', 'This is an awesome channel'] + ], + { from: accounts[MEMBER_1_ADDRESS_INDEX] } + ) + + const channelStorage = await ChannelStorage.at(await contentDirectory.channelStorage()) + + assert.equal(await channelStorage.nextChannelId(), 2) + assert.equal(await channelStorage.channelCountByOwnership(ChannelOwnerType.Member, 1), 1) + + await channelStorage.getExistingChannel(1) + }) + + it('should allow the member to update a channel', async () => { + const updateProps = [['title', 'Awesome updated channel']]; + const res = await contentDirectory.updateChannelMetadata( + 1, + updateProps, + { from: accounts[MEMBER_1_ADDRESS_INDEX] } + ) + + assert.equal(res.logs[0].event, 'ChannelMetadataUpdated') + assert.equal(res.logs[0].args[0], 1) + assert.sameDeepMembers(res.logs[0].args[1], updateProps) + }) +}) diff --git a/smart-contracts/truffle-config.js b/smart-contracts/truffle-config.js new file mode 100644 index 0000000000..5fcd08205c --- /dev/null +++ b/smart-contracts/truffle-config.js @@ -0,0 +1,27 @@ +module.exports = { + networks: { + // We currently use Ganache as development network + development: { + host: '127.0.0.1', + port: 8545, + network_id: 5777, + gas: 10000000, + }, + }, + compilers: { + solc: { + version: '^0.6.0', + settings: { + // Optimalized for deployment (temporarly) + optimizer: { + enabled: true, + runs: 1, + }, + }, + evmVersion: 'istanbul' + }, + }, + mocha: { + timeout: 60000, + }, +} diff --git a/smart-contracts/yarn.lock b/smart-contracts/yarn.lock new file mode 100644 index 0000000000..cc50a53e4e --- /dev/null +++ b/smart-contracts/yarn.lock @@ -0,0 +1,4835 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@^7.0.0": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@ethersproject/abi@5.0.0-beta.153": + version "5.0.0-beta.153" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.0-beta.153.tgz#43a37172b33794e4562999f6e2d555b7599a8eee" + integrity sha512-aXweZ1Z7vMNzJdLpR1CZUAIgnwjrZeUSvN9syCwlBaEBUFJmFY+HHnfuTI5vIhVs/mRkfJVrbEyl51JZQqyjAg== + dependencies: + "@ethersproject/address" ">=5.0.0-beta.128" + "@ethersproject/bignumber" ">=5.0.0-beta.130" + "@ethersproject/bytes" ">=5.0.0-beta.129" + "@ethersproject/constants" ">=5.0.0-beta.128" + "@ethersproject/hash" ">=5.0.0-beta.128" + "@ethersproject/keccak256" ">=5.0.0-beta.127" + "@ethersproject/logger" ">=5.0.0-beta.129" + "@ethersproject/properties" ">=5.0.0-beta.131" + "@ethersproject/strings" ">=5.0.0-beta.130" + +"@ethersproject/abstract-provider@^5.0.4": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.0.5.tgz#797a32a8707830af1ad8f833e9c228994d5572b9" + integrity sha512-i/CjElAkzV7vQBAeoz+IpjGfcFYEP9eD7j3fzZ0fzTq03DO7PPnR+xkEZ1IoDXGwDS+55aLM1xvLDwB/Lx6IOQ== + dependencies: + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/networks" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/transactions" "^5.0.5" + "@ethersproject/web" "^5.0.6" + +"@ethersproject/abstract-signer@^5.0.6": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.0.7.tgz#cdbd3bd479edf77c71b7f6a6156b0275b1176ded" + integrity sha512-8W8gy/QutEL60EoMEpvxZ8MFAEWs/JvH5nmZ6xeLXoZvmBCasGmxqHdYjo2cxg0nevkPkq9SeenSsBBZSCx+SQ== + dependencies: + "@ethersproject/abstract-provider" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + +"@ethersproject/address@>=5.0.0-beta.128", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.0.5": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.0.5.tgz#2caa65f6b7125015395b1b54c985ee0b27059cc7" + integrity sha512-DpkQ6rwk9jTefrRsJzEm6nhRiJd9pvhn1xN0rw5N/jswXG5r7BLk/GVA0mMAVWAsYfvi2xSc5L41FMox43RYEA== + dependencies: + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/rlp" "^5.0.3" + bn.js "^4.4.0" + +"@ethersproject/base64@^5.0.3": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.0.4.tgz#b0d8fdbf3dda977cf546dcd35725a7b1d5256caa" + integrity sha512-4KRykQ7BQMeOXfvio1YITwHjxwBzh92UoXIdzxDE1p53CK28bbHPdsPNYo0wl0El7lJAMpT2SOdL0hhbWRnyIA== + dependencies: + "@ethersproject/bytes" "^5.0.4" + +"@ethersproject/bignumber@>=5.0.0-beta.130", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.0.8": + version "5.0.8" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.0.8.tgz#cee33bd8eb0266176def0d371b45274b1d2c4ec0" + integrity sha512-KXFVAFKS1jdTXYN8BE5Oj+ZfPMh28iRdFeNGBVT6cUFdtiPVqeXqc0ggvBqA3A1VoFFGgM7oAeaagA393aORHA== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + bn.js "^4.4.0" + +"@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.4": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.0.5.tgz#688b70000e550de0c97a151a21f15b87d7f97d7c" + integrity sha512-IEj9HpZB+ACS6cZ+QQMTqmu/cnUK2fYNE6ms/PVxjoBjoxc6HCraLpam1KuRvreMy0i523PLmjN8OYeikRdcUQ== + dependencies: + "@ethersproject/logger" "^5.0.5" + +"@ethersproject/constants@>=5.0.0-beta.128", "@ethersproject/constants@^5.0.4": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.0.5.tgz#0ed19b002e8404bdf6d135234dc86a7d9bcf9b71" + integrity sha512-foaQVmxp2+ik9FrLUCtVrLZCj4M3Ibgkqvh+Xw/vFRSerkjVSYePApaVE5essxhoSlF1U9oXfWY09QI2AXtgKA== + dependencies: + "@ethersproject/bignumber" "^5.0.7" + +"@ethersproject/hash@>=5.0.0-beta.128": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.0.6.tgz#2a2e8a1470685421217e9e86e9971ca636e609ce" + integrity sha512-Gvh57v6BWhwnud6l7tMfQm32PRQ2DYx2WaAAQmAxAfYvmzUkpQCBstnGeNMXIL8/2wdkvcB2u+WZRWaZtsFuUQ== + dependencies: + "@ethersproject/abstract-signer" "^5.0.6" + "@ethersproject/address" "^5.0.5" + "@ethersproject/bignumber" "^5.0.8" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.4" + "@ethersproject/strings" "^5.0.4" + +"@ethersproject/keccak256@>=5.0.0-beta.127", "@ethersproject/keccak256@^5.0.3": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.0.4.tgz#36ca0a7d1ae2a272da5654cb886776d0c680ef3a" + integrity sha512-GNpiOUm9PGUxFNqOxYKDQBM0u68bG9XC9iOulEQ8I0tOx/4qUpgVzvgXL6ugxr0RY554Gz/NQsVqknqPzUcxpQ== + dependencies: + "@ethersproject/bytes" "^5.0.4" + js-sha3 "0.5.7" + +"@ethersproject/logger@>=5.0.0-beta.129", "@ethersproject/logger@^5.0.5": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.0.6.tgz#faa484203e86e08be9e07fef826afeef7183fe88" + integrity sha512-FrX0Vnb3JZ1md/7GIZfmJ06XOAA8r3q9Uqt9O5orr4ZiksnbpXKlyDzQtlZ5Yv18RS8CAUbiKH9vwidJg1BPmQ== + +"@ethersproject/networks@^5.0.3": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.0.4.tgz#6d320a5e15a0cda804f5da88be0ba846156f6eec" + integrity sha512-/wHDTRms5mpJ09BoDrbNdFWINzONe05wZRgohCXvEv39rrH/Gd/yAnct8wC0RsW3tmFOgjgQxuBvypIxuUynTw== + dependencies: + "@ethersproject/logger" "^5.0.5" + +"@ethersproject/properties@>=5.0.0-beta.131", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.0.4.tgz#a67a1f5a52c30850b5062c861631e73d131f666e" + integrity sha512-UdyX3GqBxFt15B0uSESdDNmhvEbK3ACdDXl2soshoPcneXuTswHDeA0LoPlnaZzhbgk4p6jqb4GMms5C26Qu6A== + dependencies: + "@ethersproject/logger" "^5.0.5" + +"@ethersproject/rlp@^5.0.3": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.0.4.tgz#0090a0271e84ea803016a112a79f5cfd80271a77" + integrity sha512-5qrrZad7VTjofxSsm7Zg/7Dr4ZOln4S2CqiDdOuTv6MBKnXj0CiBojXyuDy52M8O3wxH0CyE924hXWTDV1PQWQ== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + +"@ethersproject/signing-key@^5.0.4": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.0.5.tgz#acfd06fc05a14180df7e027688bbd23fc4baf782" + integrity sha512-Z1wY7JC1HVO4CvQWY2TyTTuAr8xK3bJijZw1a9G92JEmKdv1j255R/0YLBBcFTl2J65LUjtXynNJ2GbArPGi5g== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + elliptic "6.5.3" + +"@ethersproject/strings@>=5.0.0-beta.130", "@ethersproject/strings@^5.0.4": + version "5.0.5" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.0.5.tgz#ed7e99a282a02f40757691b04a24cd83f3752195" + integrity sha512-JED6WaIV00xM/gvj8vSnd+0VWtDYdidTmavFRCTQakqfz+4tDo6Jz5LHgG+dd45h7ah7ykCHW0C7ZXWEDROCXQ== + dependencies: + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + +"@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.0.5": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.0.6.tgz#b8b27938be6e9ed671dbdd35fe98af8b14d0df7c" + integrity sha512-htsFhOD+NMBxx676A8ehSuwVV49iqpSB+CkjPZ02tpNew0K6p8g0CZ46Z1ZP946gIHAU80xQ0NACHYrjIUaCFA== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/rlp" "^5.0.3" + "@ethersproject/signing-key" "^5.0.4" + +"@ethersproject/web@^5.0.6": + version "5.0.9" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.0.9.tgz#b08f8295f4bfd4777c8723fe9572f5453b9f03cb" + integrity sha512-//QNlv1MSkOII1hv3+HQwWoiVFS+BMVGI0KYeUww4cyrEktnx1QIez5bTSab9s9fWTFaWKNmQNBwMbxAqPuYDw== + dependencies: + "@ethersproject/base64" "^5.0.3" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + +"@openzeppelin/contracts@^3.0.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-3.2.0.tgz#3e6b3a7662d8ed64271ade96ef42655db983fd9d" + integrity sha512-bUOmkSoPkjnUyMiKo6RYnb0VHBk5D9KKDAgNLzF41aqAM3TeE0yGdFF5dVRcV60pZdJLlyFT/jjXIZCWyyEzAQ== + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@solidity-parser/parser@^0.8.2": + version "0.8.2" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.8.2.tgz#a6a5e93ac8dca6884a99a532f133beba59b87b69" + integrity sha512-8LySx3qrNXPgB5JiULfG10O3V7QTxI/TLzSw5hFQhXWSkVxZBAv4rZQ0sYgLEbc8g3L2lmnujj1hKul38Eu5NQ== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@truffle/blockchain-utils@^0.0.25": + version "0.0.25" + resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.0.25.tgz#f4b320890113d282f25f1a1ecd65b94a8b763ac1" + integrity sha512-XA5m0BfAWtysy5ChHyiAf1fXbJxJXphKk+eZ9Rb9Twi6fn3Jg4gnHNwYXJacYFEydqT5vr2s4Ou812JHlautpw== + dependencies: + source-map-support "^0.5.19" + +"@truffle/codec@^0.8.1": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.8.1.tgz#1f7b62a9d4063ed1b91ecb81d2d83be4ff97389d" + integrity sha512-X6BcpS97zpmLWRoAg9zJJIPoEiAJ3MRRJd5zf+qTmLbYXVhek9frreDMhs4WoaQSe3/DOYjVxtPmwmY4+alVvw== + dependencies: + big.js "^5.2.2" + bn.js "^4.11.8" + borc "^2.1.2" + debug "^4.1.0" + lodash.clonedeep "^4.5.0" + lodash.escaperegexp "^4.1.2" + lodash.partition "^4.6.0" + lodash.sum "^4.0.2" + semver "^6.3.0" + source-map-support "^0.5.19" + utf8 "^3.0.0" + web3-utils "1.2.9" + +"@truffle/contract-schema@^3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.3.2.tgz#6450738c35859ed087760d826031a8247f7bc907" + integrity sha512-PFNUHlcMFh6CDLDXTYCpm1G5rM5EJlneA9ml5y1TbkLgjLMICI2XLilimFZ/DC0THQekHpoQC+W/QMD/OTiTiw== + dependencies: + ajv "^6.10.0" + crypto-js "^3.1.9-1" + debug "^4.1.0" + +"@truffle/contract@^4.2.28": + version "4.2.30" + resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.2.30.tgz#44a2a20e4baa6b40cbb0748a6bce997c22865bcd" + integrity sha512-BXQC+ddH18W9cVoRTlKH7hqnyrOo0HN7/Hyv7UiAgPh4JNpkZVUxFSd+/MLaE5r8NEG2hykDusOVJ3OaR9wvmw== + dependencies: + "@truffle/blockchain-utils" "^0.0.25" + "@truffle/contract-schema" "^3.3.2" + "@truffle/debug-utils" "^5.0.1" + "@truffle/error" "^0.0.11" + "@truffle/interface-adapter" "^0.4.18" + bignumber.js "^7.2.1" + ethereum-ens "^0.8.0" + ethers "^4.0.0-beta.1" + source-map-support "^0.5.19" + web3 "1.2.9" + web3-core-helpers "1.2.9" + web3-core-promievent "1.2.9" + web3-eth-abi "1.2.9" + web3-utils "1.2.9" + +"@truffle/debug-utils@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-5.0.1.tgz#7650f273ddba704377f3a25bd4a10ffb338da8e0" + integrity sha512-CDt92c6YmCE72TMxmXMcbK3MPXHPRzhrYshFKY0jlo0T3IhLn3xBMqdqXi7SL9y0gV5U386R2l2lK5a+TGE6vw== + dependencies: + "@truffle/codec" "^0.8.1" + "@trufflesuite/chromafi" "^2.2.1" + chalk "^2.4.2" + debug "^4.1.0" + highlight.js "^9.15.8" + highlightjs-solidity "^1.0.18" + +"@truffle/error@^0.0.11": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.0.11.tgz#2789c0042d7e796dcbb840c7a9b5d2bcd8e0e2d8" + integrity sha512-ju6TucjlJkfYMmdraYY/IBJaFb+Sa+huhYtOoyOJ+G29KcgytUVnDzKGwC7Kgk6IsxQMm62Mc1E0GZzFbGGipw== + +"@truffle/interface-adapter@^0.4.18": + version "0.4.18" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.4.18.tgz#1aac45596997d208085d5168f82b990624610646" + integrity sha512-P9JVSYD/CX3V+NgTWu+Bf71sLh8pMwrCpbiYRB93pRw/1H3ZTvt5iDC2MVvVxCs8FkSiy4OZzQK/DJ8+hXAmYw== + dependencies: + bn.js "^4.11.8" + ethers "^4.0.32" + source-map-support "^0.5.19" + web3 "1.2.9" + +"@trufflesuite/chromafi@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@trufflesuite/chromafi/-/chromafi-2.2.1.tgz#6bad90d7cb52b3a414c9640346085482dbd41fd9" + integrity sha512-kODhM/LsjPrSRGQdaHe113v4xob/aheRmdwN0i6seVNavmHGBvC4ob3COlD1GjaklXsl9QWw4fengowIx1+07Q== + dependencies: + ansi-mark "^1.0.0" + ansi-regex "^3.0.0" + array-uniq "^1.0.3" + camelcase "^4.1.0" + chalk "^2.3.2" + cheerio "^1.0.0-rc.2" + detect-indent "^5.0.0" + he "^1.1.1" + highlight.js "^9.12.0" + lodash.merge "^4.6.2" + min-indent "^1.0.0" + strip-ansi "^4.0.0" + strip-indent "^2.0.0" + super-split "^1.1.0" + +"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4", "@types/bn.js@^4.11.5": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "14.14.7" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.7.tgz#8ea1e8f8eae2430cf440564b98c6dfce1ec5945d" + integrity sha512-Zw1vhUSQZYw+7u5dAwNbIA9TuTotpzY/OF7sJM9FqPOF3SPjKnxrjoTktXDZgUjybf4cWVBP7O8wvKdSaGHweg== + +"@types/node@^10.12.18": + version "10.17.44" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.44.tgz#3945e6b702cb6403f22b779c8ea9e5c3f44ead40" + integrity sha512-vHPAyBX1ffLcy4fQHmDyIUMUb42gHZjPHU66nhvbMzAWJqHnySGZ6STwN3rwrnSd1FHB0DI/RWgGELgKSYRDmw== + +"@types/node@^12.12.6", "@types/node@^12.6.1": + version "12.19.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.4.tgz#cdfbb62e26c7435ed9aab9c941393cc3598e9b46" + integrity sha512-o3oj1bETk8kBwzz1WlO6JWL/AfAA3Vm6J1B3C9CsdxHYp7XgPiH7OEXPUbZTndHlRaIElrANkQfe6ZmfJb3H2w== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + +"@types/secp256k1@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.1.tgz#fb3aa61a1848ad97d7425ff9dcba784549fca5a4" + integrity sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog== + dependencies: + "@types/node" "*" + +accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-jsx@^5.0.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" + integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== + +acorn@^6.0.7: + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0= + +ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.6.1, ajv@^6.9.1: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-mark@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/ansi-mark/-/ansi-mark-1.0.4.tgz#1cd4ba8d57f15f109d6aaf6ec9ca9786c8a4ee6c" + integrity sha1-HNS6jVfxXxCdaq9uycqXhsik7mw= + dependencies: + ansi-regex "^3.0.0" + array-uniq "^1.0.3" + chalk "^2.3.2" + strip-ansi "^4.0.0" + super-split "^1.1.0" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +antlr4@4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.7.1.tgz#69984014f096e9e775f53dd9744bf994d8959773" + integrity sha512-haHyTW7Y9joE5MVs37P2lNYfU2RWBLfcRDD8OWldcdZm5TiCE91B5Xl1oWSwiDUSd4rlExpt2pu1fksYQjRBYQ== + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-module-path@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/app-module-path/-/app-module-path-2.2.0.tgz#641aa55dfb7d6a6f0a8141c4b9c0aa50b6c24dd5" + integrity sha1-ZBqlXft9am8KgUHEucCqULbCTdU= + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-uniq@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array.prototype.map@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array.prototype.map/-/array.prototype.map-1.0.2.tgz#9a4159f416458a23e9483078de1106b2ef68f8ec" + integrity sha512-Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.4" + +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + safer-buffer "^2.1.0" + +asn1@~0.2.3: + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + +ast-parents@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/ast-parents/-/ast-parents-0.0.1.tgz#508fd0f05d0c48775d9eccda2e174423261e8dd3" + integrity sha1-UI/Q8F0MSHddnszaLhdEIyYejdM= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base-x@^3.0.2, base-x@^3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.8.tgz#1e1106c2537f0162e8b52474a557ebb09000018d" + integrity sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA== + dependencies: + safe-buffer "^5.0.1" + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + dependencies: + tweetnacl "^0.14.3" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +bignumber.js@^7.2.1: + version "7.2.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" + integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== + +bignumber.js@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.0.1.tgz#8d7ba124c882bfd8e43260c67475518d0689e4e5" + integrity sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA== + +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ== + +blakejs@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" + integrity sha1-ad+S75U6qIylGjLfarHFShVfx6U= + +bluebird@^3.4.7, bluebird@^3.5.0: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@4.11.6: + version "4.11.6" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + integrity sha1-UzRK2xRhehP26N0s4okF0cC6MhU= + +bn.js@4.11.8: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.0, bn.js@^4.11.1, bn.js@^4.11.6, bn.js@^4.11.8, bn.js@^4.11.9, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== + +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" + integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== + +body-parser@1.19.0, body-parser@^1.16.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +borc@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/borc/-/borc-2.1.2.tgz#6ce75e7da5ce711b963755117dd1b187f6f8cf19" + integrity sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w== + dependencies: + bignumber.js "^9.0.0" + buffer "^5.5.0" + commander "^2.15.0" + ieee754 "^1.1.13" + iso-url "~0.4.7" + json-text-sequence "~0.1.0" + readable-stream "^3.6.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== + dependencies: + bn.js "^5.0.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.3" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +bs58@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo= + dependencies: + base-x "^3.0.2" + +bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-to-arraybuffer@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz#6064a40fa76eb43c723aba9ef8f6e1216d10511a" + integrity sha1-YGSkD6dutDxyOrqe+PbhIW0QURo= + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^5.0.5, buffer@^5.5.0, buffer@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +bufferutil@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.2.tgz#79f68631910f6b993d870fc77dc0a2894eb96cd5" + integrity sha512-AtnG3W6M8B2n4xDQ5R+70EXvOpnXsFYg/AK2yTZd+HQ/oxAdz+GI+DvjmhBw3L0ole+LJ0ngqY4JMbDzkfNzhA== + dependencies: + node-gyp-build "^4.2.0" + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-bind@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.0.tgz#24127054bb3f9bdcb4b1fb82418186072f77b8ce" + integrity sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.0" + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.2, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +cheerio@^1.0.0-rc.2: + version "1.0.0-rc.3" + resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.3.tgz#094636d425b2e9c0f4eb91a46c05630c9a1a8bf6" + integrity sha512-0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA== + dependencies: + css-select "~1.2.0" + dom-serializer "~0.1.1" + entities "~1.1.1" + htmlparser2 "^3.9.1" + lodash "^4.15.0" + parse5 "^3.0.1" + +chokidar@3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@2.18.0: + version "2.18.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.18.0.tgz#2bf063ddee7c7891176981a2cc798e5754bc6970" + integrity sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ== + +commander@^2.15.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +cookiejar@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.2.tgz#dd8a235530752f988f9a0844f3fc589e3111125c" + integrity sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@^2.8.1: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^5.0.7: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +create-ecdh@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== + dependencies: + bn.js "^4.1.0" + elliptic "^6.5.3" + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +crypto-browserify@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-js@^3.1.9-1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" + integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== + +css-select@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +d@1, d@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9, debug@^2.2.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1" + integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg== + dependencies: + ms "2.1.2" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.2.0, decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= + +delimit-stream@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" + integrity sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha1-OHHMCmoALow+Wzz38zYmRnXwa50= + +diff@4.0.2, diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-serializer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" + integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== + dependencies: + domelementtype "^1.3.0" + entities "^1.1.1" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz#f3b6e549201e46f588b59463dd77187131fe6971" + integrity sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +elliptic@6.5.3, elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.3: + version "6.5.3" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +entities@^1.1.1, entities@~1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.17.0-next.1: + version "1.17.7" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" + integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-abstract@^1.18.0-next.1: + version "1.18.0-next.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68" + integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.2.2" + is-negative-zero "^2.0.0" + is-regex "^1.1.1" + object-inspect "^1.8.0" + object-keys "^1.1.1" + object.assign "^4.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" + +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-get-iterator@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.1.tgz#b93ddd867af16d5118e00881396533c1c6647ad9" + integrity sha512-qorBw8Y7B15DVLaJWy6WdEV/ZkieBcu6QCq/xzWzGOKJqgG1j754vXRfZ3NY7HSShneqU43mPB4OkQBTkvHhFw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.1" + has-symbols "^1.0.1" + is-arguments "^1.0.4" + is-map "^2.0.1" + is-set "^2.0.1" + is-string "^1.0.5" + isarray "^2.0.5" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es5-ext@^0.10.35, es5-ext@^0.10.50: + version "0.10.53" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.3" + next-tick "~1.0.0" + +es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + dependencies: + d "^1.0.1" + ext "^1.1.2" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.3.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint@^5.6.0: + version "5.16.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" + integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.9.1" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^4.0.3" + eslint-utils "^1.3.1" + eslint-visitor-keys "^1.0.0" + espree "^5.0.1" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob "^7.1.2" + globals "^11.7.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^6.2.2" + js-yaml "^3.13.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.11" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.2" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^5.5.1" + strip-ansi "^4.0.0" + strip-json-comments "^2.0.1" + table "^5.2.3" + text-table "^0.2.0" + +espree@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" + integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== + dependencies: + acorn "^6.0.7" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eth-ens-namehash@2.0.8, eth-ens-namehash@^2.0.0: + version "2.0.8" + resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" + integrity sha1-IprEbsqG1S4MmR58sq74P/D2i88= + dependencies: + idna-uts46-hx "^2.3.1" + js-sha3 "^0.5.7" + +eth-lib@0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" + integrity sha1-L5Pxex4jrsN1nNSj/iDBKGo/wco= + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@0.2.8, eth-lib@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + +eth-lib@^0.1.26: + version "0.1.29" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" + integrity sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + nano-json-stream-parser "^0.1.2" + servify "^0.1.12" + ws "^3.0.0" + xhr-request-promise "^0.1.2" + +ethereum-bloom-filters@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.7.tgz#b7b80735e385dbb7f944ce6b4533e24511306060" + integrity sha512-cDcJJSJ9GMAcURiAWO3DxIEhTL/uWqlQnvgKpuYQzYPrt/izuGU+1ntQmHt0IRq6ADoSYHFnB+aCEFIldjhkMQ== + dependencies: + js-sha3 "^0.8.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereum-ens@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/ethereum-ens/-/ethereum-ens-0.8.0.tgz#6d0f79acaa61fdbc87d2821779c4e550243d4c57" + integrity sha512-a8cBTF4AWw1Q1Y37V1LSCS9pRY4Mh3f8vCg5cbXCCEJ3eno1hbI/+Ccv9SZLISYpqQhaglP3Bxb/34lS4Qf7Bg== + dependencies: + bluebird "^3.4.7" + eth-ens-namehash "^2.0.0" + js-sha3 "^0.5.7" + pako "^1.0.4" + underscore "^1.8.3" + web3 "^1.0.0-beta.34" + +ethereumjs-common@^1.3.2, ethereumjs-common@^1.5.0: + version "1.5.2" + resolved "https://registry.yarnpkg.com/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz#2065dbe9214e850f2e955a80e650cb6999066979" + integrity sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA== + +ethereumjs-tx@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz#5dfe7688bf177b45c9a23f86cf9104d47ea35fed" + integrity sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw== + dependencies: + ethereumjs-common "^1.5.0" + ethereumjs-util "^6.0.0" + +ethereumjs-util@6.2.1, ethereumjs-util@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethers@^4.0.0-beta.1, ethers@^4.0.32: + version "4.0.48" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.48.tgz#330c65b8133e112b0613156e57e92d9009d8fbbe" + integrity sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g== + dependencies: + aes-js "3.0.0" + bn.js "^4.4.0" + elliptic "6.5.3" + hash.js "1.1.3" + js-sha3 "0.5.7" + scrypt-js "2.0.4" + setimmediate "1.0.4" + uuid "2.0.1" + xmlhttprequest "1.8.0" + +ethjs-unit@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" + integrity sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk= + dependencies: + bn.js "4.11.6" + number-to-bn "1.7.0" + +ethjs-util@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + +eventemitter3@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + +eventemitter3@^4.0.0: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +express@^4.14.0: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +ext@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== + dependencies: + type "^2.0.0" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= + +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flat@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.1.tgz#a392059cc382881ff98642f5da4dde0a959f309b" + integrity sha512-FmTtBsHskrU6FJ2VxCnsDb84wu9zhmO3cUX2kGFb5tuwhfXxGciiT0oRY+cck35QmG+NmGh5eLz6lLCpWTqwpA== + dependencies: + is-buffer "~2.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + integrity sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +ganache-cli@^6.12.1: + version "6.12.1" + resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.12.1.tgz#148cf6541494ef1691bd68a77e4414981910cb3e" + integrity sha512-zoefZLQpQyEJH9jgtVYgM+ENFLAC9iwys07IDCsju2Ieq9KSTLH89RxSP4bhizXKV/h/+qaWpfyCBGWnBfqgIQ== + dependencies: + ethereumjs-util "6.2.1" + source-map-support "0.5.12" + yargs "13.2.4" + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.0, get-intrinsic@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.0.1.tgz#94a9768fcbdd0595a1c9273aacf4c89d075631be" + integrity sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.1.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= + dependencies: + assert-plus "^1.0.0" + +glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob@7.1.6, glob@^7.1.2, glob@^7.1.3: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global@~4.3.0: + version "4.3.2" + resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" + integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8= + dependencies: + min-document "^2.19.0" + process "~0.5.1" + +globals@^11.7.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +got@9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +got@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" + integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== + dependencies: + decompress-response "^3.2.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-plain-obj "^1.1.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + p-cancelable "^0.3.0" + p-timeout "^1.1.1" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + url-parse-lax "^1.0.0" + url-to-options "^1.0.1" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6: + version "4.2.4" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + integrity sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0, he@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +highlight.js@^9.12.0, highlight.js@^9.15.8: + version "9.18.3" + resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz#a1a0a2028d5e3149e2380f8a865ee8516703d634" + integrity sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ== + +highlightjs-solidity@^1.0.18: + version "1.0.18" + resolved "https://registry.yarnpkg.com/highlightjs-solidity/-/highlightjs-solidity-1.0.18.tgz#3deb0593689a26fbadf98e631bf2cd305a6417c9" + integrity sha512-k15h0br4oCRT0F0jTRuZbimerVt5V4n0k25h7oWi0kVqlBNeXPbSr5ddw02/2ukJmYfB8jauFDmxSauJjwM7Eg== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +htmlparser2@^3.9.1: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-https@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/http-https/-/http-https-1.0.0.tgz#2f908dd5f1db4068c058cd6e6d4ce392c913389b" + integrity sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs= + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +iconv-lite@0.4.24, iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +idna-uts46-hx@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" + integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== + dependencies: + punycode "2.1.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.2.tgz#fc129c160c5d68235507f4331a6baad186bdbc3e" + integrity sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +inquirer@^6.2.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" + integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@~2.0.3: + version "2.0.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== + +is-callable@^1.1.4, is-callable@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9" + integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA== + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-function@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" + integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha1-fY035q135dEnFIkTxXPggtd39VQ= + +is-map@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.1.tgz#520dafc4307bb8ebc33b813de5ce7c9400d644a1" + integrity sha512-T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw== + +is-negative-zero@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461" + integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE= + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-regex@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9" + integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg== + dependencies: + has-symbols "^1.0.1" + +is-retry-allowed@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-set@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.1.tgz#d1604afdab1724986d30091575f54945da7e5f43" + integrity sha512-eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA== + +is-stream@^1.0.0, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-string@^1.0.4, is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0, is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +iso-url@~0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" + integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +iterate-iterator@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/iterate-iterator/-/iterate-iterator-1.0.1.tgz#1693a768c1ddd79c969051459453f082fe82e9f6" + integrity sha512-3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw== + +iterate-value@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/iterate-value/-/iterate-value-1.0.2.tgz#935115bd37d006a52046535ebc8d07e9c9337f57" + integrity sha512-A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ== + dependencies: + es-get-iterator "^1.0.2" + iterate-iterator "^1.0.1" + +js-sha3@0.5.7, js-sha3@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" + integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= + +js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.14.0, js-yaml@^3.12.0, js-yaml@^3.13.0, js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json-text-sequence@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" + integrity sha1-py8hfcSvxGKf/1/rME3BvVGi89I= + dependencies: + delimit-stream "0.1.0" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +keccak@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.1.tgz#ae30a0e94dbe43414f741375cff6d64c8bea0bff" + integrity sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.escaperegexp@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347" + integrity sha1-ZHYsSGGAglGKw99Mz11YhtriA0c= + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.partition@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.partition/-/lodash.partition-4.6.0.tgz#a38e46b73469e0420b0da1212e66d414be364ba4" + integrity sha1-o45GtzRp4EILDaEhLmbUFL42S6Q= + +lodash.sum@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/lodash.sum/-/lodash.sum-4.0.2.tgz#ad90e397965d803d4f1ff7aa5b2d0197f3b4637b" + integrity sha1-rZDjl5ZdgD1PH/eqWy0Bl/O0Y3s= + +lodash@^4.15.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14: + version "4.17.20" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52" + integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== + +log-symbols@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.44.0: + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-types@^2.1.12, mime-types@^2.1.16, mime-types@~2.1.19, mime-types@~2.1.24: + version "2.1.27" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== + dependencies: + mime-db "1.44.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.4, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mkdirp-promise@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz#e9b8f68e552c68a9c1713b84883f7a1dd039b8a1" + integrity sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE= + dependencies: + mkdirp "*" + +mkdirp@*: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mkdirp@^0.5.0, mkdirp@^0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +mocha@8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.1.2.tgz#d67fad13300e4f5cd48135a935ea566f96caf827" + integrity sha512-I8FRAcuACNMLQn3lS4qeWLxXqLvGf6r2CaLstDpZmMUUSmvW6Cnm1AuHxgbc7ctZVRcfwspCRbDHymPsi3dkJw== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.4.2" + debug "4.1.1" + diff "4.0.2" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "3.14.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.2" + object.assign "4.1.0" + promise.allsettled "1.0.2" + serialize-javascript "4.0.0" + strip-json-comments "3.0.1" + supports-color "7.1.0" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.0.0" + yargs "13.3.2" + yargs-parser "13.1.2" + yargs-unparser "1.6.1" + +mock-fs@^4.1.0: + version "4.13.0" + resolved "https://registry.yarnpkg.com/mock-fs/-/mock-fs-4.13.0.tgz#31c02263673ec3789f90eb7b6963676aa407a598" + integrity sha512-DD0vOdofJdoaRNtnWcrXe6RQbpHkPPmtqGq14uRX0F8ZKJ5nv89CVTYl/BZdppDxBDaV0hl75htg3abpEWlPZA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +nano-json-stream-parser@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz#0cc8f6d0e2b622b479c40d499c46d64b755c6f5f" + integrity sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18= + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +next-tick@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-gyp-build@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" + integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +number-to-bn@1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" + integrity sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA= + dependencies: + bn.js "4.11.6" + strip-hex-prefix "1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-inspect@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA== + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.assign@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +oboe@2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" + integrity sha1-IMiM2wwVNxuwQRklfU/dNLCqSfY= + dependencies: + http-https "^1.0.0" + +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha1-VVQoTFQ6ImbXo48X4HOCH73jk80= + dependencies: + http-https "^1.0.0" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +openzeppelin-solidity@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/openzeppelin-solidity/-/openzeppelin-solidity-3.2.0.tgz#8cb9de0cf2e3ce214be75cd11161930bc6013200" + integrity sha512-ku9dZbpo63P1OOGvU1FflRlAxcxWauKhex+a7W0vbfjLzItaCQkZEiDedsH2TWJrg4xdo0B/BFS9taeVwKvAxw== + +optionator@^0.8.2: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +original-require@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/original-require/-/original-require-1.0.1.tgz#0f130471584cd33511c5ec38c8d59213f9ac5e20" + integrity sha1-DxMEcVhM0zURxew4yNWSE/msXiA= + +os-locale@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +p-cancelable@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" + integrity sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + dependencies: + p-try "^2.0.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-timeout@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" + integrity sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y= + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pako@^1.0.4: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0, parse-asn1@^5.1.5: + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== + dependencies: + asn1.js "^5.2.0" + browserify-aes "^1.0.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-headers@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" + integrity sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA== + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse5@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-3.0.3.tgz#042f792ffdd36851551cf4e9e066b3874ab45b5c" + integrity sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA== + dependencies: + "@types/node" "*" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +pbkdf2@^3.0.17, pbkdf2@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prettier@^1.14.3: + version "1.19.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" + integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== + +process@~0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" + integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8= + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise.allsettled@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/promise.allsettled/-/promise.allsettled-1.0.2.tgz#d66f78fbb600e83e863d893e98b3d4376a9c47c9" + integrity sha512-UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg== + dependencies: + array.prototype.map "^1.0.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + iterate-value "^1.0.0" + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + integrity sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0= + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +readable-stream@^3.1.1, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ== + dependencies: + picomatch "^2.2.1" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +request@^2.79.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.2.3: + version "2.2.6" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.6.tgz#c80ba6266ac7a483ef1e69e8e2f056656de2fb2c" + integrity sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg== + dependencies: + bn.js "^4.11.1" + +run-async@^2.2.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +rxjs@^6.4.0: + version "6.6.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" + integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scrypt-js@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" + integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== + +scrypt-js@^3.0.0, scrypt-js@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== + dependencies: + elliptic "^6.5.2" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +semver@^5.5.0, semver@^5.5.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +servify@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/servify/-/servify-0.1.12.tgz#142ab7bee1f1d033b66d0707086085b17c06db95" + integrity sha512-/xE6GvsKKqyo1BAY+KxOWXcLpPsUUyji7Qg3bVD7hh1eRze5bR1uYiuDA/k3Gof1s9BTzQZEJK8sNcNGFIzeWw== + dependencies: + body-parser "^1.16.0" + cors "^2.8.1" + express "^4.14.0" + request "^2.79.0" + xhr "^2.3.3" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +setimmediate@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" + integrity sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48= + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^2.7.0: + version "2.8.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-2.8.1.tgz#0e22e91d4575d87620620bc91308d57a77f44b5d" + integrity sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw== + dependencies: + decompress-response "^3.3.0" + once "^1.3.1" + simple-concat "^1.0.0" + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +solhint@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.3.2.tgz#ebd7270bb50fd378b427d7a6fc9f2a7fd00216c0" + integrity sha512-8tHCkIAk1axLLG6Qu2WIH3GgNABonj9eAWejJbov3o3ujkZQRNHeHU1cC4/Dmjsh3Om7UzFFeADUHu2i7ZJeiw== + dependencies: + "@solidity-parser/parser" "^0.8.2" + ajv "^6.6.1" + antlr4 "4.7.1" + ast-parents "0.0.1" + chalk "^2.4.2" + commander "2.18.0" + cosmiconfig "^5.0.7" + eslint "^5.6.0" + fast-diff "^1.1.2" + glob "^7.1.3" + ignore "^4.0.6" + js-yaml "^3.12.0" + lodash "^4.17.11" + semver "^6.3.0" + optionalDependencies: + prettier "^1.14.3" + +source-map-support@0.5.12: + version "0.5.12" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.12.tgz#b4f3b10d51857a5af0138d3ce8003b201613d599" + integrity sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.5.17, source-map-support@^0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +sshpk@^1.7.0: + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +"statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +"string-width@^1.0.2 || 2", string-width@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string.prototype.trimend@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" + integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +string.prototype.trimstart@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7" + integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.18.0-next.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha1-DF8VX+8RUTczd96du1iNoFUA428= + dependencies: + is-hex-prefixed "1.0.0" + +strip-indent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" + integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= + +strip-json-comments@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.0.1.tgz#85713975a91fb87bf1b305cca77395e40d2a64a7" + integrity sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw== + +strip-json-comments@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +super-split@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/super-split/-/super-split-1.1.0.tgz#43b3ba719155f4d43891a32729d59b213d9155fc" + integrity sha512-I4bA5mgcb6Fw5UJ+EkpzqXfiuvVGS/7MuND+oBxNFmxu3ugLNrdIatzBLfhFRMVMLxgSsRy+TjIktgkF9RFSNQ== + +supports-color@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +swarm-js@^0.1.40: + version "0.1.40" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.40.tgz#b1bc7b6dcc76061f6c772203e004c11997e06b99" + integrity sha512-yqiOCEoA4/IShXkY3WKwP5PvZhmoOOD8clsKA7EEcRILMkTEYHCQ21HDCAcVpmIxZq4LyZvWeRJ6quIyHk1caA== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^7.1.0" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tar@^4.0.2: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +timed-out@^4.0.0, timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +truffle@^5.1.33: + version "5.1.53" + resolved "https://registry.yarnpkg.com/truffle/-/truffle-5.1.53.tgz#3c984317d092f230d84b7d138d69dace106b5c2b" + integrity sha512-JXuuhPOsh/K9K9PJTcZDRy6ByxreOrchMIM1SgEVRi85MF6XWQSZwwV1kXF+JRtP938lfRmmpgWQb1MzFBY7qw== + dependencies: + app-module-path "^2.2.0" + mocha "8.1.2" + original-require "1.0.1" + +ts-node@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.0.0.tgz#e7699d2a110cc8c0d3b831715e417688683460b3" + integrity sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg== + dependencies: + arg "^4.1.0" + diff "^4.0.1" + make-error "^1.1.1" + source-map-support "^0.5.17" + yn "3.1.1" + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + +type@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz#9bdc22c648cf8cf86dd23d32336a41cfb6475e3f" + integrity sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA== + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typescript@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.0.5.tgz#ae9dddfd1069f1cb5beb3ef3b2170dd7c1332389" + integrity sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ== + +ultron@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" + integrity sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og== + +underscore@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" + integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg== + +underscore@^1.8.3: + version "1.11.0" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.11.0.tgz#dd7c23a195db34267186044649870ff1bab5929e" + integrity sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw== + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +uri-js@^4.2.2: + version "4.4.0" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602" + integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g== + dependencies: + punycode "^2.1.0" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= + dependencies: + prepend-http "^1.0.1" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-set-query@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-set-query/-/url-set-query-1.0.0.tgz#016e8cfd7c20ee05cafe7795e892bd0702faa339" + integrity sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk= + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +utf-8-validate@^5.0.2: + version "5.0.3" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.3.tgz#3b64e418ad2ff829809025fdfef595eab2f03a27" + integrity sha512-jtJM6fpGv8C1SoH4PtG22pGto6x+Y8uPprW0tw3//gGFhDDTiuksgradgFN6yRayDP4SyZZa6ZMGHLIa17+M8A== + dependencies: + node-gyp-build "^4.2.0" + +utf8@3.0.0, utf8@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" + integrity sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ== + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.1.tgz#c2a30dedb3e535d72ccf82e343941a50ba8533ac" + integrity sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w= + +uuid@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +web3-bzz@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.9.tgz#25f8a373bc2dd019f47bf80523546f98b93c8790" + integrity sha512-ogVQr9jHodu9HobARtvUSmWG22cv2EUQzlPeejGWZ7j5h20HX40EDuWyomGY5VclIj5DdLY76Tmq88RTf/6nxA== + dependencies: + "@types/node" "^10.12.18" + got "9.6.0" + swarm-js "^0.1.40" + underscore "1.9.1" + +web3-bzz@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.0.tgz#83dfd77fa8a64bbb660462dffd0fee2a02ef1051" + integrity sha512-ibYAnKab+sgTo/UdfbrvYfWblXjjgSMgyy9/FHa6WXS14n/HVB+HfWqGz2EM3fok8Wy5XoKGMvdqvERQ/mzq1w== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + underscore "1.9.1" + +web3-core-helpers@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.9.tgz#6381077c3e01c127018cb9e9e3d1422697123315" + integrity sha512-t0WAG3orLCE3lqi77ZoSRNFok3VQWZXTniZigDQjyOJYMAX7BU3F3js8HKbjVnAxlX3tiKoDxI0KBk9F3AxYuw== + dependencies: + underscore "1.9.1" + web3-eth-iban "1.2.9" + web3-utils "1.2.9" + +web3-core-helpers@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.0.tgz#697cc3246a7eaaaac64ea506828d861c981c3f31" + integrity sha512-+MFb1kZCrRctf7UYE7NCG4rGhSXaQJ/KF07di9GVK1pxy1K0+rFi61ZobuV1ky9uQp+uhhSPts4Zp55kRDB5sw== + dependencies: + underscore "1.9.1" + web3-eth-iban "1.3.0" + web3-utils "1.3.0" + +web3-core-method@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.9.tgz#3fb538751029bea570e4f86731e2fa5e4945e462" + integrity sha512-bjsIoqP3gs7A/gP8+QeLUCyOKJ8bopteCSNbCX36Pxk6TYfYWNuC6hP+2GzUuqdP3xaZNe+XEElQFUNpR3oyAg== + dependencies: + "@ethersproject/transactions" "^5.0.0-beta.135" + underscore "1.9.1" + web3-core-helpers "1.2.9" + web3-core-promievent "1.2.9" + web3-core-subscriptions "1.2.9" + web3-utils "1.2.9" + +web3-core-method@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.0.tgz#a71387af842aec7dbad5dbbd1130c14cc6c8beb3" + integrity sha512-h0yFDrYVzy5WkLxC/C3q+hiMnzxdWm9p1T1rslnuHgOp6nYfqzu/6mUIXrsS4h/OWiGJt+BZ0xVZmtC31HDWtg== + dependencies: + "@ethersproject/transactions" "^5.0.0-beta.135" + underscore "1.9.1" + web3-core-helpers "1.3.0" + web3-core-promievent "1.3.0" + web3-core-subscriptions "1.3.0" + web3-utils "1.3.0" + +web3-core-promievent@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.9.tgz#bb1c56aa6fac2f4b3c598510f06554d25c11c553" + integrity sha512-0eAUA2zjgXTleSrnc1wdoKQPPIHU6KHf4fAscu4W9kKrR+mqP1KsjYrxY9wUyjNnXxfQ+5M29ipvbiaK8OqdOw== + dependencies: + eventemitter3 "3.1.2" + +web3-core-promievent@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.0.tgz#e0442dd0a8989b6bdce09293976cee6d9237a484" + integrity sha512-blv69wrXw447TP3iPvYJpllkhW6B18nfuEbrfcr3n2Y0v1Jx8VJacNZFDFsFIcgXcgUIVCtOpimU7w9v4+rtaw== + dependencies: + eventemitter3 "4.0.4" + +web3-core-requestmanager@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.9.tgz#dd6d855256c4dd681434fe0867f8cd742fe10503" + integrity sha512-1PwKV2m46ALUnIN5VPPgjOj8yMLJhhqZYvYJE34hTN5SErOkwhzx5zScvo5MN7v7KyQGFnpVCZKKGCiEnDmtFA== + dependencies: + underscore "1.9.1" + web3-core-helpers "1.2.9" + web3-providers-http "1.2.9" + web3-providers-ipc "1.2.9" + web3-providers-ws "1.2.9" + +web3-core-requestmanager@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.0.tgz#c5b9a0304504c0e6cce6c90bc1a3bff82732aa1f" + integrity sha512-3yMbuGcomtzlmvTVqNRydxsx7oPlw3ioRL6ReF9PeNYDkUsZaUib+6Dp5eBt7UXh5X+SIn/xa1smhDHz5/HpAw== + dependencies: + underscore "1.9.1" + web3-core-helpers "1.3.0" + web3-providers-http "1.3.0" + web3-providers-ipc "1.3.0" + web3-providers-ws "1.3.0" + +web3-core-subscriptions@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.9.tgz#335fd7d15dfce5d78b4b7bef05ce4b3d7237b0e4" + integrity sha512-Y48TvXPSPxEM33OmXjGVDMzTd0j8X0t2+sDw66haeBS8eYnrEzasWuBZZXDq0zNUsqyxItgBGDn+cszkgEnFqg== + dependencies: + eventemitter3 "3.1.2" + underscore "1.9.1" + web3-core-helpers "1.2.9" + +web3-core-subscriptions@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.0.tgz#c2622ccd2b84f4687475398ff966b579dba0847e" + integrity sha512-MUUQUAhJDb+Nz3S97ExVWveH4utoUnsbPWP+q1HJH437hEGb4vunIb9KvN3hFHLB+aHJfPeStM/4yYTz5PeuyQ== + dependencies: + eventemitter3 "4.0.4" + underscore "1.9.1" + web3-core-helpers "1.3.0" + +web3-core@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.9.tgz#2cba57aa259b6409db532d21bdf57db8d504fd3e" + integrity sha512-fSYv21IP658Ty2wAuU9iqmW7V+75DOYMVZsDH/c14jcF/1VXnedOcxzxSj3vArsCvXZNe6XC5/wAuGZyQwR9RA== + dependencies: + "@types/bn.js" "^4.11.4" + "@types/node" "^12.6.1" + bignumber.js "^9.0.0" + web3-core-helpers "1.2.9" + web3-core-method "1.2.9" + web3-core-requestmanager "1.2.9" + web3-utils "1.2.9" + +web3-core@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.0.tgz#b818903738461c1cca0163339e1d6d3fa51242cf" + integrity sha512-BwWvAaKJf4KFG9QsKRi3MNoNgzjI6szyUlgme1qNPxUdCkaS3Rdpa0VKYNHP7M/YTk82/59kNE66mH5vmoaXjA== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.3.0" + web3-core-method "1.3.0" + web3-core-requestmanager "1.3.0" + web3-utils "1.3.0" + +web3-eth-abi@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.9.tgz#14bedd7e4be04fcca35b2ac84af1400574cd8280" + integrity sha512-3YwUYbh/DMfDbhMWEebAdjSd5bj3ZQieOjLzWFHU23CaLEqT34sUix1lba+hgUH/EN6A7bKAuKOhR3p0OvTn7Q== + dependencies: + "@ethersproject/abi" "5.0.0-beta.153" + underscore "1.9.1" + web3-utils "1.2.9" + +web3-eth-abi@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.0.tgz#387b7ea9b38be69ad8856bc7b4e9a6a69bb4d22b" + integrity sha512-1OrZ9+KGrBeBRd3lO8upkpNua9+7cBsQAgor9wbA25UrcUYSyL8teV66JNRu9gFxaTbkpdrGqM7J/LXpraXWrg== + dependencies: + "@ethersproject/abi" "5.0.0-beta.153" + underscore "1.9.1" + web3-utils "1.3.0" + +web3-eth-accounts@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.9.tgz#7ec422df90fecb5243603ea49dc28726db7bdab6" + integrity sha512-jkbDCZoA1qv53mFcRHCinoCsgg8WH+M0YUO1awxmqWXRmCRws1wW0TsuSQ14UThih5Dxolgl+e+aGWxG58LMwg== + dependencies: + crypto-browserify "3.12.0" + eth-lib "^0.2.8" + ethereumjs-common "^1.3.2" + ethereumjs-tx "^2.1.1" + scrypt-js "^3.0.1" + underscore "1.9.1" + uuid "3.3.2" + web3-core "1.2.9" + web3-core-helpers "1.2.9" + web3-core-method "1.2.9" + web3-utils "1.2.9" + +web3-eth-accounts@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.0.tgz#010acf389b2bee6d5e1aecb2fe78bfa5c8f26c7a" + integrity sha512-/Q7EVW4L2wWUbNRtOTwAIrYvJid/5UnKMw67x/JpvRMwYC+e+744P536Ja6SG4X3MnzFvd3E/jruV4qa6k+zIw== + dependencies: + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-common "^1.3.2" + ethereumjs-tx "^2.1.1" + scrypt-js "^3.0.1" + underscore "1.9.1" + uuid "3.3.2" + web3-core "1.3.0" + web3-core-helpers "1.3.0" + web3-core-method "1.3.0" + web3-utils "1.3.0" + +web3-eth-contract@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.9.tgz#713d9c6d502d8c8f22b696b7ffd8e254444e6bfd" + integrity sha512-PYMvJf7EG/HyssUZa+pXrc8IB06K/YFfWYyW4R7ed3sab+9wWUys1TlWxBCBuiBXOokSAyM6H6P6/cKEx8FT8Q== + dependencies: + "@types/bn.js" "^4.11.4" + underscore "1.9.1" + web3-core "1.2.9" + web3-core-helpers "1.2.9" + web3-core-method "1.2.9" + web3-core-promievent "1.2.9" + web3-core-subscriptions "1.2.9" + web3-eth-abi "1.2.9" + web3-utils "1.2.9" + +web3-eth-contract@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.0.tgz#c758340ac800788e29fa29edc8b0c0ac957b741c" + integrity sha512-3SCge4SRNCnzLxf0R+sXk6vyTOl05g80Z5+9/B5pERwtPpPWaQGw8w01vqYqsYBKC7zH+dxhMaUgVzU2Dgf7bQ== + dependencies: + "@types/bn.js" "^4.11.5" + underscore "1.9.1" + web3-core "1.3.0" + web3-core-helpers "1.3.0" + web3-core-method "1.3.0" + web3-core-promievent "1.3.0" + web3-core-subscriptions "1.3.0" + web3-eth-abi "1.3.0" + web3-utils "1.3.0" + +web3-eth-ens@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.9.tgz#577b9358c036337833fb2bdc59c11be7f6f731b6" + integrity sha512-kG4+ZRgZ8I1WYyOBGI8QVRHfUSbbJjvJAGA1AF/NOW7JXQ+x7gBGeJw6taDWJhSshMoEKWcsgvsiuoG4870YxQ== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + underscore "1.9.1" + web3-core "1.2.9" + web3-core-helpers "1.2.9" + web3-core-promievent "1.2.9" + web3-eth-abi "1.2.9" + web3-eth-contract "1.2.9" + web3-utils "1.2.9" + +web3-eth-ens@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.0.tgz#0887ba38473c104cf5fb8a715828b3b354fa02a2" + integrity sha512-WnOru+EcuM5dteiVYJcHXo/I7Wq+ei8RrlS2nir49M0QpYvUPGbCGgTbifcjJQTWamgORtWdljSA1s2Asdb74w== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + underscore "1.9.1" + web3-core "1.3.0" + web3-core-helpers "1.3.0" + web3-core-promievent "1.3.0" + web3-eth-abi "1.3.0" + web3-eth-contract "1.3.0" + web3-utils "1.3.0" + +web3-eth-iban@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.9.tgz#4ebf3d8783f34d04c4740dc18938556466399f7a" + integrity sha512-RtdVvJE0pyg9dHLy0GzDiqgnLnssSzfz/JYguhC1wsj9+Gnq1M6Diy3NixACWUAp6ty/zafyOaZnNQ+JuH9TjQ== + dependencies: + bn.js "4.11.8" + web3-utils "1.2.9" + +web3-eth-iban@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.0.tgz#15b782dfaf273ebc4e3f389f1367f4e88ddce4a5" + integrity sha512-v9mZWhR4fPF17/KhHLiWir4YHWLe09O3B/NTdhWqw3fdAMJNztzMHGzgHxA/4fU+rhrs/FhDzc4yt32zMEXBZw== + dependencies: + bn.js "^4.11.9" + web3-utils "1.3.0" + +web3-eth-personal@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.9.tgz#9b95eb159b950b83cd8ae15873e1d57711b7a368" + integrity sha512-cFiNrktxZ1C/rIdJFzQTvFn3/0zcsR3a+Jf8Y3KxeQDHszQtosjLWptP7bsUmDwEh4hzh0Cy3KpOxlYBWB8bJQ== + dependencies: + "@types/node" "^12.6.1" + web3-core "1.2.9" + web3-core-helpers "1.2.9" + web3-core-method "1.2.9" + web3-net "1.2.9" + web3-utils "1.2.9" + +web3-eth-personal@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.0.tgz#d376e03dc737d961ff1f8d1aca866efad8477135" + integrity sha512-2czUhElsJdLpuNfun9GeLiClo5O6Xw+bLSjl3f4bNG5X2V4wcIjX2ygep/nfstLLtkz8jSkgl/bV7esANJyeRA== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.3.0" + web3-core-helpers "1.3.0" + web3-core-method "1.3.0" + web3-net "1.3.0" + web3-utils "1.3.0" + +web3-eth@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.9.tgz#e40e7b88baffc9b487193211c8b424dc944977b3" + integrity sha512-sIKO4iE9FEBa/CYUd6GdPd7GXt/wISqxUd8PlIld6+hvMJj02lgO7Z7p5T9mZIJcIZJGvZX81ogx8oJ9yif+Ag== + dependencies: + underscore "1.9.1" + web3-core "1.2.9" + web3-core-helpers "1.2.9" + web3-core-method "1.2.9" + web3-core-subscriptions "1.2.9" + web3-eth-abi "1.2.9" + web3-eth-accounts "1.2.9" + web3-eth-contract "1.2.9" + web3-eth-ens "1.2.9" + web3-eth-iban "1.2.9" + web3-eth-personal "1.2.9" + web3-net "1.2.9" + web3-utils "1.2.9" + +web3-eth@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.0.tgz#898e5f5a8827f9bc6844e267a52eb388916a6771" + integrity sha512-/bzJcxXPM9EM18JM5kO2JjZ3nEqVo3HxqU93aWAEgJNqaP/Lltmufl2GpvIB2Hvj+FXAjAXquxUdQ2/xP7BzHQ== + dependencies: + underscore "1.9.1" + web3-core "1.3.0" + web3-core-helpers "1.3.0" + web3-core-method "1.3.0" + web3-core-subscriptions "1.3.0" + web3-eth-abi "1.3.0" + web3-eth-accounts "1.3.0" + web3-eth-contract "1.3.0" + web3-eth-ens "1.3.0" + web3-eth-iban "1.3.0" + web3-eth-personal "1.3.0" + web3-net "1.3.0" + web3-utils "1.3.0" + +web3-net@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.9.tgz#51d248ed1bc5c37713c4ac40c0073d9beacd87d3" + integrity sha512-d2mTn8jPlg+SI2hTj2b32Qan6DmtU9ap/IUlJTeQbZQSkTLf0u9suW8Vjwyr4poJYXTurdSshE7OZsPNn30/ZA== + dependencies: + web3-core "1.2.9" + web3-core-method "1.2.9" + web3-utils "1.2.9" + +web3-net@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.0.tgz#b69068cccffab58911c2f08ca4abfbefb0f948c6" + integrity sha512-Xz02KylOyrB2YZzCkysEDrY7RbKxb7LADzx3Zlovfvuby7HBwtXVexXKtoGqksa+ns1lvjQLLQGb+OeLi7Sr7w== + dependencies: + web3-core "1.3.0" + web3-core-method "1.3.0" + web3-utils "1.3.0" + +web3-providers-http@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.9.tgz#e698aa5377e2019c24c5a1e6efa0f51018728934" + integrity sha512-F956tCIj60Ttr0UvEHWFIhx+be3He8msoPzyA44/kfzzYoMAsCFRn5cf0zQG6al0znE75g6HlWVSN6s3yAh51A== + dependencies: + web3-core-helpers "1.2.9" + xhr2-cookies "1.1.0" + +web3-providers-http@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.0.tgz#88227f64c88b32abed4359383c2663616e0dc531" + integrity sha512-cMKhUI6PqlY/EC+ZDacAxajySBu8AzW8jOjt1Pe/mbRQgS0rcZyvLePGTTuoyaA8C21F8UW+EE5jj7YsNgOuqA== + dependencies: + web3-core-helpers "1.3.0" + xhr2-cookies "1.1.0" + +web3-providers-ipc@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.9.tgz#6159eacfcd7ac31edc470d93ef10814fe874763b" + integrity sha512-NQ8QnBleoHA2qTJlqoWu7EJAD/FR5uimf7Ielzk4Z2z+m+6UAuJdJMSuQNj+Umhz9L/Ys6vpS1vHx9NizFl+aQ== + dependencies: + oboe "2.1.4" + underscore "1.9.1" + web3-core-helpers "1.2.9" + +web3-providers-ipc@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.0.tgz#d7c2b203733b46f7b4e7b15633d891648cf9a293" + integrity sha512-0CrLuRofR+1J38nEj4WsId/oolwQEM6Yl1sOt41S/6bNI7htdkwgVhSloFIMJMDFHtRw229QIJ6wIaKQz0X1Og== + dependencies: + oboe "2.1.5" + underscore "1.9.1" + web3-core-helpers "1.3.0" + +web3-providers-ws@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.9.tgz#22c2006655ec44b4ad2b41acae62741a6ae7a88c" + integrity sha512-6+UpvINeI//dglZoAKStUXqxDOXJy6Iitv2z3dbgInG4zb8tkYl/VBDL80UjUg3ZvzWG0g7EKY2nRPEpON2TFA== + dependencies: + eventemitter3 "^4.0.0" + underscore "1.9.1" + web3-core-helpers "1.2.9" + websocket "^1.0.31" + +web3-providers-ws@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.0.tgz#84adeff65acd4624d7f5bb43c5b2b22d8f0f63a4" + integrity sha512-Im5MthhJnJst8nSoq0TgbyOdaiFQFa5r6sHPOVllhgIgViDqzbnlAFW9sNzQ0Q8VXPNfPIQKi9cOrHlSRNPjRw== + dependencies: + eventemitter3 "4.0.4" + underscore "1.9.1" + web3-core-helpers "1.3.0" + websocket "^1.0.32" + +web3-shh@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.9.tgz#c4ba70d6142cfd61341a50752d8cace9a0370911" + integrity sha512-PWa8b/EaxaMinFaxy6cV0i0EOi2M7a/ST+9k9nhyhCjVa2vzXuNoBNo2IUOmeZ0WP2UQB8ByJ2+p4htlJaDOjA== + dependencies: + web3-core "1.2.9" + web3-core-method "1.2.9" + web3-core-subscriptions "1.2.9" + web3-net "1.2.9" + +web3-shh@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.0.tgz#62d15297da8fb5f733dd1b98f9ade300590f4d49" + integrity sha512-IZTojA4VCwVq+7eEIHuL1tJXtU+LJDhO8Y2QmuwetEWW1iBgWCGPHZasipWP+7kDpSm/5lo5GRxL72FF/Os/tA== + dependencies: + web3-core "1.3.0" + web3-core-method "1.3.0" + web3-core-subscriptions "1.3.0" + web3-net "1.3.0" + +web3-utils@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.9.tgz#abe11735221627da943971ef1a630868fb9c61f3" + integrity sha512-9hcpuis3n/LxFzEVjwnVgvJzTirS2S9/MiNAa7l4WOEoywY+BSNwnRX4MuHnjkh9NY25B6QOjuNG6FNnSjTw1w== + dependencies: + bn.js "4.11.8" + eth-lib "0.2.7" + ethereum-bloom-filters "^1.0.6" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + underscore "1.9.1" + utf8 "3.0.0" + +web3-utils@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.0.tgz#5bac16e5e0ec9fe7bdcfadb621655e8aa3cf14e1" + integrity sha512-2mS5axFCbkhicmoDRuJeuo0TVGQDgC2sPi/5dblfVC+PMtX0efrb8Xlttv/eGkq7X4E83Pds34FH98TP2WOUZA== + dependencies: + bn.js "^4.11.9" + eth-lib "0.2.8" + ethereum-bloom-filters "^1.0.6" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + underscore "1.9.1" + utf8 "3.0.0" + +web3@1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.9.tgz#cbcf1c0fba5e213a6dfb1f2c1f4b37062e4ce337" + integrity sha512-Mo5aBRm0JrcNpN/g4VOrDzudymfOnHRC3s2VarhYxRA8aWgF5rnhQ0ziySaugpic1gksbXPe105pUWyRqw8HUA== + dependencies: + web3-bzz "1.2.9" + web3-core "1.2.9" + web3-eth "1.2.9" + web3-eth-personal "1.2.9" + web3-net "1.2.9" + web3-shh "1.2.9" + web3-utils "1.2.9" + +web3@^1.0.0-beta.34: + version "1.3.0" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.0.tgz#8fe4cd6e2a21c91904f343ba75717ee4c76bb349" + integrity sha512-4q9dna0RecnrlgD/bD1C5S+81Untbd6Z/TBD7rb+D5Bvvc0Wxjr4OP70x+LlnwuRDjDtzBwJbNUblh2grlVArw== + dependencies: + web3-bzz "1.3.0" + web3-core "1.3.0" + web3-eth "1.3.0" + web3-eth-personal "1.3.0" + web3-net "1.3.0" + web3-shh "1.3.0" + web3-utils "1.3.0" + +websocket@^1.0.31, websocket@^1.0.32: + version "1.0.32" + resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.32.tgz#1f16ddab3a21a2d929dec1687ab21cfdc6d3dbb1" + integrity sha512-i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q== + dependencies: + bufferutil "^4.0.1" + debug "^2.2.0" + es5-ext "^0.10.50" + typedarray-to-buffer "^3.1.5" + utf-8-validate "^5.0.2" + yaeti "^0.0.6" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +which@^1.2.9: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workerpool@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.0.tgz#85aad67fa1a2c8ef9386a1b43539900f61d03d58" + integrity sha512-fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA== + +wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^3.0.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-3.3.3.tgz#f1cf84fe2d5e901ebce94efaece785f187a228f2" + integrity sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA== + dependencies: + async-limiter "~1.0.0" + safe-buffer "~5.1.0" + ultron "~1.1.0" + +xhr-request-promise@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz#2d5f4b16d8c6c893be97f1a62b0ed4cf3ca5f96c" + integrity sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg== + dependencies: + xhr-request "^1.1.0" + +xhr-request@^1.0.1, xhr-request@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" + integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== + dependencies: + buffer-to-arraybuffer "^0.0.5" + object-assign "^4.1.1" + query-string "^5.0.1" + simple-get "^2.7.0" + timed-out "^4.0.1" + url-set-query "^1.0.0" + xhr "^2.0.4" + +xhr2-cookies@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz#7d77449d0999197f155cb73b23df72505ed89d48" + integrity sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg= + dependencies: + cookiejar "^2.1.1" + +xhr@^2.0.4, xhr@^2.3.3: + version "2.5.0" + resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd" + integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ== + dependencies: + global "~4.3.0" + is-function "^1.0.1" + parse-headers "^2.0.0" + xtend "^4.0.0" + +xmlhttprequest@1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw= + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yaeti@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577" + integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc= + +yallist@^3.0.0, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yargs-parser@13.1.2, yargs-parser@^13.1.0, yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^15.0.1: + version "15.0.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-15.0.1.tgz#54786af40b820dcb2fb8025b11b4d659d76323b3" + integrity sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-unparser@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-1.6.1.tgz#bd4b0ee05b4c94d058929c32cb09e3fce71d3c5f" + integrity sha512-qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA== + dependencies: + camelcase "^5.3.1" + decamelize "^1.2.0" + flat "^4.1.0" + is-plain-obj "^1.1.0" + yargs "^14.2.3" + +yargs@13.2.4: + version "13.2.4" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + os-locale "^3.1.0" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.0" + +yargs@13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yargs@^14.2.3: + version "14.2.3" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-14.2.3.tgz#1a1c3edced1afb2a2fea33604bc6d1d8d688a414" + integrity sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg== + dependencies: + cliui "^5.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^15.0.1" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== From 7ea172dc18eaf9f3cbf5e6a0380786156a251070 Mon Sep 17 00:00:00 2001 From: Leszek Wiesner Date: Wed, 18 Nov 2020 15:38:30 +0100 Subject: [PATCH 2/3] gitignore the build (currently not needed) --- smart-contracts/.gitignore | 1 + .../contracts/ChannelOwnershipDecoder.json | 10837 ----- .../build/contracts/ChannelStorage.json | 11100 ----- .../build/contracts/ContentDirectory.json | 39425 ---------------- .../contracts/ContentWorkingGroupBridge.json | 2863 -- smart-contracts/build/contracts/Context.json | 545 - .../build/contracts/CuratorGroupStorage.json | 6286 --- .../build/contracts/MembershipBridge.json | 1779 - .../build/contracts/Migrations.json | 1425 - smart-contracts/build/contracts/Ownable.json | 2844 -- smart-contracts/build/contracts/Pausable.json | 2075 - .../contracts/RuntimeAddressProvider.json | 1734 - .../build/contracts/RuntimeManageable.json | 1716 - smart-contracts/build/contracts/SafeMath.json | 5148 -- .../build/contracts/SafeMath16.json | 5137 -- .../build/contracts/SafeMath32.json | 5137 -- .../build/contracts/SafeMath64.json | 5137 -- .../build/contracts/SafeMath8.json | 5137 -- .../build/contracts/VideoStorage.json | 3873 -- smart-contracts/package.json | 3 +- 20 files changed, 3 insertions(+), 112199 deletions(-) delete mode 100644 smart-contracts/build/contracts/ChannelOwnershipDecoder.json delete mode 100644 smart-contracts/build/contracts/ChannelStorage.json delete mode 100644 smart-contracts/build/contracts/ContentDirectory.json delete mode 100644 smart-contracts/build/contracts/ContentWorkingGroupBridge.json delete mode 100644 smart-contracts/build/contracts/Context.json delete mode 100644 smart-contracts/build/contracts/CuratorGroupStorage.json delete mode 100644 smart-contracts/build/contracts/MembershipBridge.json delete mode 100644 smart-contracts/build/contracts/Migrations.json delete mode 100644 smart-contracts/build/contracts/Ownable.json delete mode 100644 smart-contracts/build/contracts/Pausable.json delete mode 100644 smart-contracts/build/contracts/RuntimeAddressProvider.json delete mode 100644 smart-contracts/build/contracts/RuntimeManageable.json delete mode 100644 smart-contracts/build/contracts/SafeMath.json delete mode 100644 smart-contracts/build/contracts/SafeMath16.json delete mode 100644 smart-contracts/build/contracts/SafeMath32.json delete mode 100644 smart-contracts/build/contracts/SafeMath64.json delete mode 100644 smart-contracts/build/contracts/SafeMath8.json delete mode 100644 smart-contracts/build/contracts/VideoStorage.json diff --git a/smart-contracts/.gitignore b/smart-contracts/.gitignore index 2ccbe4656c..d49756dc7d 100644 --- a/smart-contracts/.gitignore +++ b/smart-contracts/.gitignore @@ -1 +1,2 @@ /node_modules/ +/build/ diff --git a/smart-contracts/build/contracts/ChannelOwnershipDecoder.json b/smart-contracts/build/contracts/ChannelOwnershipDecoder.json deleted file mode 100644 index 50ddceb19a..0000000000 --- a/smart-contracts/build/contracts/ChannelOwnershipDecoder.json +++ /dev/null @@ -1,10837 +0,0 @@ -{ - "contractName": "ChannelOwnershipDecoder", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":\"ChannelOwnershipDecoder\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":{\"keccak256\":\"0x2c0b74ba427192750d9ae3532ca9a5ca8bf55c78d42b31b5fd884c8446e236b7\",\"urls\":[\"bzz-raw://8de586eee05bb472e60c7f6dfde1deabe8d88b911bb24a25b835423b968e5853\",\"dweb:/ipfs/QmPxGyc41DfVWHd2dACS65HuAays534bFcPivqBSJ7ojgJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202d1045324ab0cccb8fe79d4c16764bda43ed09cfd57397cef63d8e2e62beab2064736f6c634300060c0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202d1045324ab0cccb8fe79d4c16764bda43ed09cfd57397cef63d8e2e62beab2064736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "1070:1642:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "1070:1642:9:-:0;;;;;;;;", - "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../../node_modules/@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"../lib/SafeMath32.sol\";\nimport \"../lib/SafeMath64.sol\";\n\n// Generic representation of ownership, assuming that each possible ownership consists of:\n// - Type (ie. Member, Group, Curator etc.), which is represented by uint8 (and can be converted to enum)\n// - Identifier (address/id/hash), which is represented by uint256\nstruct ChannelOwnership {\n uint8 ownershipType;\n\tuint256 ownerId;\n}\n\n// Any change to this struct requires ChannelStorage migration\nstruct Channel {\n ChannelOwnership ownership;\n bool isActive;\n\tuint32 videoLimit; // 0 = use default\n bool isExisting;\n}\n\n// A helper library to parse ChannelOwnership.\n// New ownership types can be safely added if needed without the need for migration\n// (but changing/removing existing ones would still require migration to new storage)\nenum ChannelOwnerType { Address, Member, CuratorGroup }\nlibrary ChannelOwnershipDecoder {\n\tfunction isAddress(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Address);\n\t}\n\n\tfunction isMember(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Member);\n\t}\n\n\tfunction isCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.CuratorGroup);\n\t}\n\n\tfunction asAddress(ChannelOwnership memory _ownership) internal pure returns (address) {\n\t\trequire(\n\t\t\tisAddress(_ownership),\n\t\t\t\"asAddress called on non-address ChannelOwnership\"\n\t\t);\n\t\treturn address(uint160(_ownership.ownerId));\n\t}\n\n\tfunction asMember(ChannelOwnership memory _ownership) internal pure returns (uint64) {\n\t\trequire(\n\t\t\tisMember(_ownership),\n\t\t\t\"asMember called on non-member ChannelOwnership\"\n\t\t);\n\t\treturn uint64(_ownership.ownerId);\n\t}\n\n\tfunction asCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (uint16) {\n\t\trequire(\n\t\t\tisCuratorGroup(_ownership),\n\t\t\t\"asCuratorGroup called on non-group ChannelOwnership\"\n\t\t);\n\t\treturn uint16(_ownership.ownerId);\n\t}\n\n\tfunction isValid(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\tif (isAddress(_ownership)) {\n\t\t\treturn uint256(uint160(asAddress(_ownership))) == _ownership.ownerId;\n\t\t}\n\t\tif (isMember(_ownership)) {\n\t\t\treturn uint256(asMember(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\tif (isCuratorGroup(_ownership)) {\n\t\t\treturn uint256(asCuratorGroup(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\treturn false;\n\t}\n}\n\ncontract ChannelStorage is Ownable {\n mapping (uint64 => Channel) private channelById;\n\t// ownershipType => ownerId => channelCount double-map\n mapping (uint8 => mapping(uint256 => uint32)) public channelCountByOwnership;\n uint64 public nextChannelId = 1;\n\n\tusing SafeMath32 for uint32;\n\tusing SafeMath64 for uint64;\n\n\tfunction _incCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].add(1);\n\t}\n\n\tfunction _decCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].sub(1);\n\t}\n\n function addChannel (ChannelOwnership memory _ownership) public onlyOwner returns (uint64) {\n\t\tuint64 channelId = nextChannelId;\n\t\t// Get storage ref\n\t\tChannel storage newChannel = channelById[channelId];\n\t\t// Populate the struct\n\t\tnewChannel.isExisting = true;\n\t\tnewChannel.ownership = _ownership; // TODO: Is this the right way to do this assignment?\n\t\t_incCountByOwnership(_ownership);\n\t\tnextChannelId.add(1);\n\t\treturn channelId;\n\t}\n\n\t// Get channel + perform existance check\n\tfunction getExistingChannel(uint64 _channelId) public view returns (Channel memory) {\n\t\tChannel memory channel = channelById[_channelId];\n\t\trequire(channel.isExisting, \"Trying to access unexisting channel\");\n\t\treturn channel;\n\t}\n\n function updateOwnership (uint64 _channelId, ChannelOwnership memory _ownership) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\t_decCountByOwnership(channel.ownership);\n\t\tchannel.ownership = _ownership;\n\t\t_incCountByOwnership(_ownership);\n\t}\n\n function updateStatus (uint64 _channelId, bool _isActive) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.isActive = _isActive;\n\t}\n\n function setChannelVideoLimit (uint64 _channelId, uint32 _videoLimit) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.videoLimit = _videoLimit;\n\t}\n\n function removeChannel (uint64 _channelId) public onlyOwner {\n\t\t_decCountByOwnership(channelById[_channelId].ownership);\n\t\tdelete channelById[_channelId];\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "exportedSymbols": { - "Channel": [ - 2478 - ], - "ChannelOwnerType": [ - 2482 - ], - "ChannelOwnership": [ - 2469 - ], - "ChannelOwnershipDecoder": [ - 2658 - ], - "ChannelStorage": [ - 2875 - ] - }, - "id": 2876, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2459, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "id": 2460, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:9" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 2461, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3403, - "src": "59:71:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "id": 2462, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3599, - "src": "131:70:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "file": "../lib/SafeMath32.sol", - "id": 2463, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2068, - "src": "202:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "file": "../lib/SafeMath64.sol", - "id": 2464, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2263, - "src": "234:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "ChannelOwnership", - "id": 2469, - "members": [ - { - "constant": false, - "id": 2466, - "mutability": "mutable", - "name": "ownershipType", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "561:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2465, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "561:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2468, - "mutability": "mutable", - "name": "ownerId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "583:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "ChannelOwnership", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "531:70:9", - "visibility": "public" - }, - { - "canonicalName": "Channel", - "id": 2478, - "members": [ - { - "constant": false, - "id": 2471, - "mutability": "mutable", - "name": "ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "687:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2470, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "687:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2473, - "mutability": "mutable", - "name": "isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "719:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2472, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "719:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2475, - "mutability": "mutable", - "name": "videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "735:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2474, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "735:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2477, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "777:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2476, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "777:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Channel", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "666:129:9", - "visibility": "public" - }, - { - "canonicalName": "ChannelOwnerType", - "id": 2482, - "members": [ - { - "id": 2479, - "name": "Address", - "nodeType": "EnumValue", - "src": "1038:7:9" - }, - { - "id": 2480, - "name": "Member", - "nodeType": "EnumValue", - "src": "1047:6:9" - }, - { - "id": 2481, - "name": "CuratorGroup", - "nodeType": "EnumValue", - "src": "1055:12:9" - } - ], - "name": "ChannelOwnerType", - "nodeType": "EnumDefinition", - "src": "1014:55:9" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2658, - "linearizedBaseContracts": [ - 2658 - ], - "name": "ChannelOwnershipDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2498, - "nodeType": "Block", - "src": "1189:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2489, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "1200:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1200:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2493, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1234:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Address", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1234:24:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2491, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1228:31:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1200:59:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2488, - "id": 2497, - "nodeType": "Return", - "src": "1193:66:9" - } - ] - }, - "documentation": null, - "id": 2499, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1124:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2483, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1124:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1123:36:9" - }, - "returnParameters": { - "id": 2488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2487, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1183:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2486, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1183:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1182:6:9" - }, - "scope": 2658, - "src": "1105:158:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2515, - "nodeType": "Block", - "src": "1349:73:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2506, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2501, - "src": "1360:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1360:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2510, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1394:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Member", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1394:23:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2508, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1388:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1360:58:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2505, - "id": 2514, - "nodeType": "Return", - "src": "1353:65:9" - } - ] - }, - "documentation": null, - "id": 2516, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2501, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1284:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2500, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1284:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1283:36:9" - }, - "returnParameters": { - "id": 2505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2504, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1343:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1343:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1342:6:9" - }, - "scope": 2658, - "src": "1266:156:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2532, - "nodeType": "Block", - "src": "1514:79:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2523, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2518, - "src": "1525:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1525:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1559:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1559:29:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2525, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1553:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1525:64:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2522, - "id": 2531, - "nodeType": "Return", - "src": "1518:71:9" - } - ] - }, - "documentation": null, - "id": 2533, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2518, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1449:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2517, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1449:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1448:36:9" - }, - "returnParameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2521, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1508:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2520, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1508:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1507:6:9" - }, - "scope": 2658, - "src": "1425:168:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2556, - "nodeType": "Block", - "src": "1683:147:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2542, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1709:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2541, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "1699:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1699:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", - "id": 2544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1725:50:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - }, - "value": "asAddress called on non-address ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - } - ], - "id": 2540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1687:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1687:92:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2546, - "nodeType": "ExpressionStatement", - "src": "1687:92:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2551, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1806:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2552, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "1806:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2549, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1798:27:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1790:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2539, - "id": 2555, - "nodeType": "Return", - "src": "1783:43:9" - } - ] - }, - "documentation": null, - "id": 2557, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2535, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1615:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2534, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1615:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1614:36:9" - }, - "returnParameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2538, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1674:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:9:9" - }, - "scope": 2658, - "src": "1596:234:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2577, - "nodeType": "Block", - "src": "1918:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2566, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "1943:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2565, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "1934:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1934:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", - "id": 2568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1959:48:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - }, - "value": "asMember called on non-member ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - } - ], - "id": 2564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1922:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1922:89:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2570, - "nodeType": "ExpressionStatement", - "src": "1922:89:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2573, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "2029:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2029:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 2571, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2563, - "id": 2576, - "nodeType": "Return", - "src": "2015:33:9" - } - ] - }, - "documentation": null, - "id": 2578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2559, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1851:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2558, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1851:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:36:9" - }, - "returnParameters": { - "id": 2563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2562, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1910:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2561, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1910:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1909:8:9" - }, - "scope": 2658, - "src": "1833:219:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2598, - "nodeType": "Block", - "src": "2146:145:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2587, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2586, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2162:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2162:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", - "id": 2589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2193:53:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - }, - "value": "asCuratorGroup called on non-group ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - } - ], - "id": 2585, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2150:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2150:100:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2591, - "nodeType": "ExpressionStatement", - "src": "2150:100:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2594, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2268:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2595, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2268:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 2592, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2261:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 2584, - "id": 2597, - "nodeType": "Return", - "src": "2254:33:9" - } - ] - }, - "documentation": null, - "id": 2599, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2580, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2079:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2579, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2079:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2078:36:9" - }, - "returnParameters": { - "id": 2584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2583, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2138:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2582, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2138:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2137:8:9" - }, - "scope": 2658, - "src": "2055:236:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2656, - "nodeType": "Block", - "src": "2376:334:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2607, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2394:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2606, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "2384:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2384:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2623, - "nodeType": "IfStatement", - "src": "2380:105:9", - "trueBody": { - "id": 2622, - "nodeType": "Block", - "src": "2407:78:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2614, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2445:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2613, - "name": "asAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "2435:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (address)" - } - }, - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2611, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2427:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2419:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2618, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2462:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2462:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2419:61:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2621, - "nodeType": "Return", - "src": "2412:68:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2625, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2501:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2624, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "2492:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2492:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2638, - "nodeType": "IfStatement", - "src": "2488:94:9", - "trueBody": { - "id": 2637, - "nodeType": "Block", - "src": "2514:68:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2630, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2543:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2629, - "name": "asMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2578, - "src": "2534:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" - } - }, - "id": 2631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2534:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 2628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2526:29:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2633, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2559:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2559:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2526:51:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2636, - "nodeType": "Return", - "src": "2519:58:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2640, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2604:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2639, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2589:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2589:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2653, - "nodeType": "IfStatement", - "src": "2585:106:9", - "trueBody": { - "id": 2652, - "nodeType": "Block", - "src": "2617:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2645, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2652:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2644, - "name": "asCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2599, - "src": "2637:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2637:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 2643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2629:35:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2648, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2668:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2629:57:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2651, - "nodeType": "Return", - "src": "2622:64:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2701:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2605, - "id": 2655, - "nodeType": "Return", - "src": "2694:12:9" - } - ] - }, - "documentation": null, - "id": 2657, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValid", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2601, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2311:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2600, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2310:36:9" - }, - "returnParameters": { - "id": 2605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2604, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2370:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2603, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2370:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2369:6:9" - }, - "scope": 2658, - "src": "2294:416:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2876, - "src": "1070:1642:9" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2659, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "2741:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 2660, - "nodeType": "InheritanceSpecifier", - "src": "2741:7:9" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2875, - "linearizedBaseContracts": [ - 2875, - 3402, - 3293 - ], - "name": "ChannelStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2664, - "mutability": "mutable", - "name": "channelById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2755:47:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "typeName": { - "id": 2663, - "keyType": { - "id": 2661, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2764:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "2755:27:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "valueType": { - "contractScope": null, - "id": 2662, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "2774:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "71fff9c5", - "id": 2670, - "mutability": "mutable", - "name": "channelCountByOwnership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2864:76:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "typeName": { - "id": 2669, - "keyType": { - "id": 2665, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2873:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Mapping", - "src": "2864:45:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "valueType": { - "id": 2668, - "keyType": { - "id": 2666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2890:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2882:26:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - }, - "valueType": { - "id": 2667, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2901:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f4606f00", - "id": 2673, - "mutability": "mutable", - "name": "nextChannelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2946:31:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2671, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2946:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 2672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2976:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "id": 2676, - "libraryName": { - "contractScope": null, - "id": 2674, - "name": "SafeMath32", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2067, - "src": "2987:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath32_$2067", - "typeString": "library SafeMath32" - } - }, - "nodeType": "UsingForDirective", - "src": "2981:28:9", - "typeName": { - "id": 2675, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3002:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - }, - { - "id": 2679, - "libraryName": { - "contractScope": null, - "id": 2677, - "name": "SafeMath64", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2262, - "src": "3017:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath64_$2262", - "typeString": "library SafeMath64" - } - }, - "nodeType": "UsingForDirective", - "src": "3011:28:9", - "typeName": { - "id": 2678, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3032:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - { - "body": { - "id": 2695, - "nodeType": "Block", - "src": "3123:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3201:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2684, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3127:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2689, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2685, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3151:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3151:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2690, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2687, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2688, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3177:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3127:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3127:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2694, - "nodeType": "ExpressionStatement", - "src": "3127:76:9" - } - ] - }, - "documentation": null, - "id": 2696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_incCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2681, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2696, - "src": "3073:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2680, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3073:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3072:36:9" - }, - "returnParameters": { - "id": 2683, - "nodeType": "ParameterList", - "parameters": [], - "src": "3123:0:9" - }, - "scope": 2875, - "src": "3042:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2712, - "nodeType": "Block", - "src": "3291:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3369:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2701, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3295:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2706, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2702, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3319:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3319:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2707, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2704, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3345:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2705, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3345:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1917, - "src": "3295:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3295:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2711, - "nodeType": "ExpressionStatement", - "src": "3295:76:9" - } - ] - }, - "documentation": null, - "id": 2713, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_decCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2698, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2713, - "src": "3241:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2697, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3241:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3240:36:9" - }, - "returnParameters": { - "id": 2700, - "nodeType": "ParameterList", - "parameters": [], - "src": "3291:0:9" - }, - "scope": 2875, - "src": "3210:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2756, - "nodeType": "Block", - "src": "3472:344:9", - "statements": [ - { - "assignments": [ - 2723 - ], - "declarations": [ - { - "constant": false, - "id": 2723, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3476:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2722, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3476:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2725, - "initialValue": { - "argumentTypes": null, - "id": 2724, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3495:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3476:32:9" - }, - { - "assignments": [ - 2727 - ], - "declarations": [ - { - "constant": false, - "id": 2727, - "mutability": "mutable", - "name": "newChannel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3533:26:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2726, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3533:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2731, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2728, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3562:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2730, - "indexExpression": { - "argumentTypes": null, - "id": 2729, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3574:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3562:22:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3533:51:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2732, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2734, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "3613:21:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3637:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3613:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2737, - "nodeType": "ExpressionStatement", - "src": "3613:28:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2738, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3645:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2740, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "3645:20:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2741, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "3645:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2743, - "nodeType": "ExpressionStatement", - "src": "3645:33:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2745, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3757:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2744, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "3736:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3736:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2747, - "nodeType": "ExpressionStatement", - "src": "3736:32:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2748, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3772:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "3772:17:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3772:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2753, - "nodeType": "ExpressionStatement", - "src": "3772:20:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2754, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3803:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2721, - "id": 2755, - "nodeType": "Return", - "src": "3796:16:9" - } - ] - }, - "documentation": null, - "functionSelector": "e35213d8", - "id": 2757, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2718, - "modifierName": { - "argumentTypes": null, - "id": 2717, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "3445:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3445:9:9" - } - ], - "name": "addChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2715, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3402:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2714, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3402:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3401:36:9" - }, - "returnParameters": { - "id": 2721, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2720, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3464:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2719, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3464:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3463:8:9" - }, - "scope": 2875, - "src": "3381:435:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2778, - "nodeType": "Block", - "src": "3945:144:9", - "statements": [ - { - "assignments": [ - 2765 - ], - "declarations": [ - { - "constant": false, - "id": 2765, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2778, - "src": "3949:22:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2764, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3949:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2769, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2766, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3974:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2768, - "indexExpression": { - "argumentTypes": null, - "id": 2767, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2759, - "src": "3986:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3974:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3949:48:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2771, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4009:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 2772, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "4009:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4029:37:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - }, - "value": "Trying to access unexisting channel" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - } - ], - "id": 2770, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4001:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4001:66:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2775, - "nodeType": "ExpressionStatement", - "src": "4001:66:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2776, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "functionReturnParameters": 2763, - "id": 2777, - "nodeType": "Return", - "src": "4071:14:9" - } - ] - }, - "documentation": null, - "functionSelector": "678d913d", - "id": 2779, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2759, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3889:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2758, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3889:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3888:19:9" - }, - "returnParameters": { - "id": 2763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2762, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3929:14:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2761, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3929:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3928:16:9" - }, - "scope": 2875, - "src": "3861:228:9", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2809, - "nodeType": "Block", - "src": "4193:170:9", - "statements": [ - { - "assignments": [ - 2789 - ], - "declarations": [ - { - "constant": false, - "id": 2789, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2809, - "src": "4197:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2788, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4197:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2793, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2790, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4223:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2792, - "indexExpression": { - "argumentTypes": null, - "id": 2791, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2781, - "src": "4235:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4223:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4197:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2795, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4271:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2796, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4271:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2794, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4250:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4250:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2798, - "nodeType": "ExpressionStatement", - "src": "4250:39:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2799, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4293:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4293:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2802, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4313:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "4293:30:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2804, - "nodeType": "ExpressionStatement", - "src": "4293:30:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2806, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4348:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2805, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "4327:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4327:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2808, - "nodeType": "ExpressionStatement", - "src": "4327:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "33364dca", - "id": 2810, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2786, - "modifierName": { - "argumentTypes": null, - "id": 2785, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4183:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4183:9:9" - } - ], - "name": "updateOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4121:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2780, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4121:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2783, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4140:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2782, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "4140:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4120:55:9" - }, - "returnParameters": { - "id": 2787, - "nodeType": "ParameterList", - "parameters": [], - "src": "4193:0:9" - }, - "scope": 2875, - "src": "4095:268:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2831, - "nodeType": "Block", - "src": "4444:89:9", - "statements": [ - { - "assignments": [ - 2820 - ], - "declarations": [ - { - "constant": false, - "id": 2820, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2831, - "src": "4448:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2819, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4448:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2824, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2821, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4474:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2823, - "indexExpression": { - "argumentTypes": null, - "id": 2822, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2812, - "src": "4486:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4474:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4448:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2825, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "4501:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2827, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "4501:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2828, - "name": "_isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4520:9:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4501:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2830, - "nodeType": "ExpressionStatement", - "src": "4501:28:9" - } - ] - }, - "documentation": null, - "functionSelector": "b5b9dc91", - "id": 2832, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2817, - "modifierName": { - "argumentTypes": null, - "id": 2816, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4434:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4434:9:9" - } - ], - "name": "updateStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2812, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4392:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2811, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4392:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2814, - "mutability": "mutable", - "name": "_isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4411:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2813, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4411:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4391:35:9" - }, - "returnParameters": { - "id": 2818, - "nodeType": "ParameterList", - "parameters": [], - "src": "4444:0:9" - }, - "scope": 2875, - "src": "4369:164:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2853, - "nodeType": "Block", - "src": "4626:93:9", - "statements": [ - { - "assignments": [ - 2842 - ], - "declarations": [ - { - "constant": false, - "id": 2842, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2853, - "src": "4630:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2841, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2846, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2843, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4656:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2845, - "indexExpression": { - "argumentTypes": null, - "id": 2844, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2834, - "src": "4668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4656:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4630:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2847, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "4683:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2849, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "4683:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2850, - "name": "_videoLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2836, - "src": "4704:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4683:32:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2852, - "nodeType": "ExpressionStatement", - "src": "4683:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "64c8121f", - "id": 2854, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2839, - "modifierName": { - "argumentTypes": null, - "id": 2838, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4616:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4616:9:9" - } - ], - "name": "setChannelVideoLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4570:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2833, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4570:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2836, - "mutability": "mutable", - "name": "_videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4589:18:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2835, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4589:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4569:39:9" - }, - "returnParameters": { - "id": 2840, - "nodeType": "ParameterList", - "parameters": [], - "src": "4626:0:9" - }, - "scope": 2875, - "src": "4539:180:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2873, - "nodeType": "Block", - "src": "4785:97:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2862, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4810:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2864, - "indexExpression": { - "argumentTypes": null, - "id": 2863, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4822:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4810:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4810:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2861, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4789:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4789:55:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2867, - "nodeType": "ExpressionStatement", - "src": "4789:55:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4848:30:9", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2868, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4855:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2870, - "indexExpression": { - "argumentTypes": null, - "id": 2869, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4867:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4855:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2872, - "nodeType": "ExpressionStatement", - "src": "4848:30:9" - } - ] - }, - "documentation": null, - "functionSelector": "614265ee", - "id": 2874, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2859, - "modifierName": { - "argumentTypes": null, - "id": 2858, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4775:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4775:9:9" - } - ], - "name": "removeChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2857, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2856, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2874, - "src": "4749:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2855, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4749:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:9" - }, - "returnParameters": { - "id": 2860, - "nodeType": "ParameterList", - "parameters": [], - "src": "4785:0:9" - }, - "scope": 2875, - "src": "4725:157:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 2876, - "src": "2714:2170:9" - } - ], - "src": "0:4885:9" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "exportedSymbols": { - "Channel": [ - 2478 - ], - "ChannelOwnerType": [ - 2482 - ], - "ChannelOwnership": [ - 2469 - ], - "ChannelOwnershipDecoder": [ - 2658 - ], - "ChannelStorage": [ - 2875 - ] - }, - "id": 2876, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2459, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "id": 2460, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:9" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 2461, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3403, - "src": "59:71:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "id": 2462, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3599, - "src": "131:70:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "file": "../lib/SafeMath32.sol", - "id": 2463, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2068, - "src": "202:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "file": "../lib/SafeMath64.sol", - "id": 2464, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2263, - "src": "234:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "ChannelOwnership", - "id": 2469, - "members": [ - { - "constant": false, - "id": 2466, - "mutability": "mutable", - "name": "ownershipType", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "561:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2465, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "561:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2468, - "mutability": "mutable", - "name": "ownerId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "583:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "ChannelOwnership", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "531:70:9", - "visibility": "public" - }, - { - "canonicalName": "Channel", - "id": 2478, - "members": [ - { - "constant": false, - "id": 2471, - "mutability": "mutable", - "name": "ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "687:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2470, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "687:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2473, - "mutability": "mutable", - "name": "isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "719:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2472, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "719:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2475, - "mutability": "mutable", - "name": "videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "735:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2474, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "735:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2477, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "777:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2476, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "777:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Channel", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "666:129:9", - "visibility": "public" - }, - { - "canonicalName": "ChannelOwnerType", - "id": 2482, - "members": [ - { - "id": 2479, - "name": "Address", - "nodeType": "EnumValue", - "src": "1038:7:9" - }, - { - "id": 2480, - "name": "Member", - "nodeType": "EnumValue", - "src": "1047:6:9" - }, - { - "id": 2481, - "name": "CuratorGroup", - "nodeType": "EnumValue", - "src": "1055:12:9" - } - ], - "name": "ChannelOwnerType", - "nodeType": "EnumDefinition", - "src": "1014:55:9" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2658, - "linearizedBaseContracts": [ - 2658 - ], - "name": "ChannelOwnershipDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2498, - "nodeType": "Block", - "src": "1189:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2489, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "1200:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1200:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2493, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1234:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Address", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1234:24:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2491, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1228:31:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1200:59:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2488, - "id": 2497, - "nodeType": "Return", - "src": "1193:66:9" - } - ] - }, - "documentation": null, - "id": 2499, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1124:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2483, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1124:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1123:36:9" - }, - "returnParameters": { - "id": 2488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2487, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1183:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2486, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1183:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1182:6:9" - }, - "scope": 2658, - "src": "1105:158:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2515, - "nodeType": "Block", - "src": "1349:73:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2506, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2501, - "src": "1360:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1360:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2510, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1394:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Member", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1394:23:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2508, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1388:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1360:58:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2505, - "id": 2514, - "nodeType": "Return", - "src": "1353:65:9" - } - ] - }, - "documentation": null, - "id": 2516, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2501, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1284:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2500, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1284:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1283:36:9" - }, - "returnParameters": { - "id": 2505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2504, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1343:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1343:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1342:6:9" - }, - "scope": 2658, - "src": "1266:156:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2532, - "nodeType": "Block", - "src": "1514:79:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2523, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2518, - "src": "1525:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1525:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1559:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1559:29:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2525, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1553:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1525:64:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2522, - "id": 2531, - "nodeType": "Return", - "src": "1518:71:9" - } - ] - }, - "documentation": null, - "id": 2533, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2518, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1449:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2517, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1449:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1448:36:9" - }, - "returnParameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2521, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1508:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2520, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1508:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1507:6:9" - }, - "scope": 2658, - "src": "1425:168:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2556, - "nodeType": "Block", - "src": "1683:147:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2542, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1709:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2541, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "1699:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1699:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", - "id": 2544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1725:50:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - }, - "value": "asAddress called on non-address ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - } - ], - "id": 2540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1687:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1687:92:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2546, - "nodeType": "ExpressionStatement", - "src": "1687:92:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2551, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1806:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2552, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "1806:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2549, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1798:27:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1790:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2539, - "id": 2555, - "nodeType": "Return", - "src": "1783:43:9" - } - ] - }, - "documentation": null, - "id": 2557, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2535, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1615:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2534, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1615:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1614:36:9" - }, - "returnParameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2538, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1674:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:9:9" - }, - "scope": 2658, - "src": "1596:234:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2577, - "nodeType": "Block", - "src": "1918:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2566, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "1943:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2565, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "1934:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1934:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", - "id": 2568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1959:48:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - }, - "value": "asMember called on non-member ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - } - ], - "id": 2564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1922:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1922:89:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2570, - "nodeType": "ExpressionStatement", - "src": "1922:89:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2573, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "2029:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2029:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 2571, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2563, - "id": 2576, - "nodeType": "Return", - "src": "2015:33:9" - } - ] - }, - "documentation": null, - "id": 2578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2559, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1851:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2558, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1851:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:36:9" - }, - "returnParameters": { - "id": 2563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2562, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1910:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2561, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1910:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1909:8:9" - }, - "scope": 2658, - "src": "1833:219:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2598, - "nodeType": "Block", - "src": "2146:145:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2587, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2586, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2162:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2162:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", - "id": 2589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2193:53:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - }, - "value": "asCuratorGroup called on non-group ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - } - ], - "id": 2585, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2150:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2150:100:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2591, - "nodeType": "ExpressionStatement", - "src": "2150:100:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2594, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2268:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2595, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2268:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 2592, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2261:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 2584, - "id": 2597, - "nodeType": "Return", - "src": "2254:33:9" - } - ] - }, - "documentation": null, - "id": 2599, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2580, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2079:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2579, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2079:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2078:36:9" - }, - "returnParameters": { - "id": 2584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2583, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2138:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2582, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2138:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2137:8:9" - }, - "scope": 2658, - "src": "2055:236:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2656, - "nodeType": "Block", - "src": "2376:334:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2607, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2394:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2606, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "2384:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2384:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2623, - "nodeType": "IfStatement", - "src": "2380:105:9", - "trueBody": { - "id": 2622, - "nodeType": "Block", - "src": "2407:78:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2614, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2445:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2613, - "name": "asAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "2435:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (address)" - } - }, - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2611, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2427:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2419:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2618, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2462:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2462:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2419:61:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2621, - "nodeType": "Return", - "src": "2412:68:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2625, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2501:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2624, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "2492:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2492:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2638, - "nodeType": "IfStatement", - "src": "2488:94:9", - "trueBody": { - "id": 2637, - "nodeType": "Block", - "src": "2514:68:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2630, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2543:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2629, - "name": "asMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2578, - "src": "2534:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" - } - }, - "id": 2631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2534:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 2628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2526:29:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2633, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2559:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2559:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2526:51:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2636, - "nodeType": "Return", - "src": "2519:58:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2640, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2604:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2639, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2589:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2589:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2653, - "nodeType": "IfStatement", - "src": "2585:106:9", - "trueBody": { - "id": 2652, - "nodeType": "Block", - "src": "2617:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2645, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2652:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2644, - "name": "asCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2599, - "src": "2637:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2637:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 2643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2629:35:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2648, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2668:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2629:57:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2651, - "nodeType": "Return", - "src": "2622:64:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2701:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2605, - "id": 2655, - "nodeType": "Return", - "src": "2694:12:9" - } - ] - }, - "documentation": null, - "id": 2657, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValid", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2601, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2311:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2600, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2310:36:9" - }, - "returnParameters": { - "id": 2605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2604, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2370:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2603, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2370:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2369:6:9" - }, - "scope": 2658, - "src": "2294:416:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2876, - "src": "1070:1642:9" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2659, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "2741:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 2660, - "nodeType": "InheritanceSpecifier", - "src": "2741:7:9" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2875, - "linearizedBaseContracts": [ - 2875, - 3402, - 3293 - ], - "name": "ChannelStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2664, - "mutability": "mutable", - "name": "channelById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2755:47:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "typeName": { - "id": 2663, - "keyType": { - "id": 2661, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2764:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "2755:27:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "valueType": { - "contractScope": null, - "id": 2662, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "2774:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "71fff9c5", - "id": 2670, - "mutability": "mutable", - "name": "channelCountByOwnership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2864:76:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "typeName": { - "id": 2669, - "keyType": { - "id": 2665, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2873:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Mapping", - "src": "2864:45:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "valueType": { - "id": 2668, - "keyType": { - "id": 2666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2890:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2882:26:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - }, - "valueType": { - "id": 2667, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2901:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f4606f00", - "id": 2673, - "mutability": "mutable", - "name": "nextChannelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2946:31:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2671, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2946:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 2672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2976:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "id": 2676, - "libraryName": { - "contractScope": null, - "id": 2674, - "name": "SafeMath32", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2067, - "src": "2987:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath32_$2067", - "typeString": "library SafeMath32" - } - }, - "nodeType": "UsingForDirective", - "src": "2981:28:9", - "typeName": { - "id": 2675, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3002:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - }, - { - "id": 2679, - "libraryName": { - "contractScope": null, - "id": 2677, - "name": "SafeMath64", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2262, - "src": "3017:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath64_$2262", - "typeString": "library SafeMath64" - } - }, - "nodeType": "UsingForDirective", - "src": "3011:28:9", - "typeName": { - "id": 2678, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3032:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - { - "body": { - "id": 2695, - "nodeType": "Block", - "src": "3123:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3201:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2684, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3127:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2689, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2685, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3151:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3151:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2690, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2687, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2688, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3177:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3127:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3127:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2694, - "nodeType": "ExpressionStatement", - "src": "3127:76:9" - } - ] - }, - "documentation": null, - "id": 2696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_incCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2681, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2696, - "src": "3073:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2680, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3073:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3072:36:9" - }, - "returnParameters": { - "id": 2683, - "nodeType": "ParameterList", - "parameters": [], - "src": "3123:0:9" - }, - "scope": 2875, - "src": "3042:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2712, - "nodeType": "Block", - "src": "3291:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3369:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2701, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3295:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2706, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2702, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3319:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3319:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2707, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2704, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3345:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2705, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3345:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1917, - "src": "3295:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3295:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2711, - "nodeType": "ExpressionStatement", - "src": "3295:76:9" - } - ] - }, - "documentation": null, - "id": 2713, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_decCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2698, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2713, - "src": "3241:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2697, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3241:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3240:36:9" - }, - "returnParameters": { - "id": 2700, - "nodeType": "ParameterList", - "parameters": [], - "src": "3291:0:9" - }, - "scope": 2875, - "src": "3210:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2756, - "nodeType": "Block", - "src": "3472:344:9", - "statements": [ - { - "assignments": [ - 2723 - ], - "declarations": [ - { - "constant": false, - "id": 2723, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3476:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2722, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3476:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2725, - "initialValue": { - "argumentTypes": null, - "id": 2724, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3495:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3476:32:9" - }, - { - "assignments": [ - 2727 - ], - "declarations": [ - { - "constant": false, - "id": 2727, - "mutability": "mutable", - "name": "newChannel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3533:26:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2726, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3533:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2731, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2728, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3562:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2730, - "indexExpression": { - "argumentTypes": null, - "id": 2729, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3574:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3562:22:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3533:51:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2732, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2734, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "3613:21:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3637:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3613:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2737, - "nodeType": "ExpressionStatement", - "src": "3613:28:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2738, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3645:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2740, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "3645:20:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2741, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "3645:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2743, - "nodeType": "ExpressionStatement", - "src": "3645:33:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2745, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3757:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2744, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "3736:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3736:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2747, - "nodeType": "ExpressionStatement", - "src": "3736:32:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2748, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3772:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "3772:17:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3772:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2753, - "nodeType": "ExpressionStatement", - "src": "3772:20:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2754, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3803:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2721, - "id": 2755, - "nodeType": "Return", - "src": "3796:16:9" - } - ] - }, - "documentation": null, - "functionSelector": "e35213d8", - "id": 2757, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2718, - "modifierName": { - "argumentTypes": null, - "id": 2717, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "3445:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3445:9:9" - } - ], - "name": "addChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2715, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3402:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2714, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3402:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3401:36:9" - }, - "returnParameters": { - "id": 2721, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2720, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3464:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2719, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3464:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3463:8:9" - }, - "scope": 2875, - "src": "3381:435:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2778, - "nodeType": "Block", - "src": "3945:144:9", - "statements": [ - { - "assignments": [ - 2765 - ], - "declarations": [ - { - "constant": false, - "id": 2765, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2778, - "src": "3949:22:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2764, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3949:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2769, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2766, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3974:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2768, - "indexExpression": { - "argumentTypes": null, - "id": 2767, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2759, - "src": "3986:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3974:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3949:48:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2771, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4009:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 2772, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "4009:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4029:37:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - }, - "value": "Trying to access unexisting channel" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - } - ], - "id": 2770, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4001:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4001:66:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2775, - "nodeType": "ExpressionStatement", - "src": "4001:66:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2776, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "functionReturnParameters": 2763, - "id": 2777, - "nodeType": "Return", - "src": "4071:14:9" - } - ] - }, - "documentation": null, - "functionSelector": "678d913d", - "id": 2779, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2759, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3889:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2758, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3889:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3888:19:9" - }, - "returnParameters": { - "id": 2763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2762, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3929:14:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2761, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3929:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3928:16:9" - }, - "scope": 2875, - "src": "3861:228:9", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2809, - "nodeType": "Block", - "src": "4193:170:9", - "statements": [ - { - "assignments": [ - 2789 - ], - "declarations": [ - { - "constant": false, - "id": 2789, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2809, - "src": "4197:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2788, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4197:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2793, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2790, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4223:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2792, - "indexExpression": { - "argumentTypes": null, - "id": 2791, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2781, - "src": "4235:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4223:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4197:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2795, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4271:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2796, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4271:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2794, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4250:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4250:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2798, - "nodeType": "ExpressionStatement", - "src": "4250:39:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2799, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4293:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4293:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2802, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4313:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "4293:30:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2804, - "nodeType": "ExpressionStatement", - "src": "4293:30:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2806, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4348:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2805, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "4327:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4327:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2808, - "nodeType": "ExpressionStatement", - "src": "4327:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "33364dca", - "id": 2810, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2786, - "modifierName": { - "argumentTypes": null, - "id": 2785, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4183:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4183:9:9" - } - ], - "name": "updateOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4121:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2780, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4121:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2783, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4140:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2782, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "4140:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4120:55:9" - }, - "returnParameters": { - "id": 2787, - "nodeType": "ParameterList", - "parameters": [], - "src": "4193:0:9" - }, - "scope": 2875, - "src": "4095:268:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2831, - "nodeType": "Block", - "src": "4444:89:9", - "statements": [ - { - "assignments": [ - 2820 - ], - "declarations": [ - { - "constant": false, - "id": 2820, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2831, - "src": "4448:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2819, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4448:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2824, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2821, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4474:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2823, - "indexExpression": { - "argumentTypes": null, - "id": 2822, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2812, - "src": "4486:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4474:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4448:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2825, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "4501:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2827, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "4501:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2828, - "name": "_isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4520:9:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4501:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2830, - "nodeType": "ExpressionStatement", - "src": "4501:28:9" - } - ] - }, - "documentation": null, - "functionSelector": "b5b9dc91", - "id": 2832, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2817, - "modifierName": { - "argumentTypes": null, - "id": 2816, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4434:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4434:9:9" - } - ], - "name": "updateStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2812, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4392:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2811, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4392:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2814, - "mutability": "mutable", - "name": "_isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4411:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2813, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4411:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4391:35:9" - }, - "returnParameters": { - "id": 2818, - "nodeType": "ParameterList", - "parameters": [], - "src": "4444:0:9" - }, - "scope": 2875, - "src": "4369:164:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2853, - "nodeType": "Block", - "src": "4626:93:9", - "statements": [ - { - "assignments": [ - 2842 - ], - "declarations": [ - { - "constant": false, - "id": 2842, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2853, - "src": "4630:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2841, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2846, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2843, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4656:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2845, - "indexExpression": { - "argumentTypes": null, - "id": 2844, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2834, - "src": "4668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4656:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4630:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2847, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "4683:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2849, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "4683:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2850, - "name": "_videoLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2836, - "src": "4704:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4683:32:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2852, - "nodeType": "ExpressionStatement", - "src": "4683:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "64c8121f", - "id": 2854, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2839, - "modifierName": { - "argumentTypes": null, - "id": 2838, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4616:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4616:9:9" - } - ], - "name": "setChannelVideoLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4570:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2833, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4570:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2836, - "mutability": "mutable", - "name": "_videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4589:18:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2835, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4589:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4569:39:9" - }, - "returnParameters": { - "id": 2840, - "nodeType": "ParameterList", - "parameters": [], - "src": "4626:0:9" - }, - "scope": 2875, - "src": "4539:180:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2873, - "nodeType": "Block", - "src": "4785:97:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2862, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4810:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2864, - "indexExpression": { - "argumentTypes": null, - "id": 2863, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4822:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4810:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4810:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2861, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4789:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4789:55:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2867, - "nodeType": "ExpressionStatement", - "src": "4789:55:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4848:30:9", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2868, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4855:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2870, - "indexExpression": { - "argumentTypes": null, - "id": 2869, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4867:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4855:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2872, - "nodeType": "ExpressionStatement", - "src": "4848:30:9" - } - ] - }, - "documentation": null, - "functionSelector": "614265ee", - "id": 2874, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2859, - "modifierName": { - "argumentTypes": null, - "id": 2858, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4775:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4775:9:9" - } - ], - "name": "removeChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2857, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2856, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2874, - "src": "4749:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2855, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4749:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:9" - }, - "returnParameters": { - "id": 2860, - "nodeType": "ParameterList", - "parameters": [], - "src": "4785:0:9" - }, - "scope": 2875, - "src": "4725:157:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 2876, - "src": "2714:2170:9" - } - ], - "src": "0:4885:9" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.571Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/ChannelStorage.json b/smart-contracts/build/contracts/ChannelStorage.json deleted file mode 100644 index 164fc87b24..0000000000 --- a/smart-contracts/build/contracts/ChannelStorage.json +++ /dev/null @@ -1,11100 +0,0 @@ -{ - "contractName": "ChannelStorage", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "channelCountByOwnership", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nextChannelId", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "ownershipType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "ownerId", - "type": "uint256" - } - ], - "internalType": "struct ChannelOwnership", - "name": "_ownership", - "type": "tuple" - } - ], - "name": "addChannel", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - } - ], - "name": "getExistingChannel", - "outputs": [ - { - "components": [ - { - "components": [ - { - "internalType": "uint8", - "name": "ownershipType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "ownerId", - "type": "uint256" - } - ], - "internalType": "struct ChannelOwnership", - "name": "ownership", - "type": "tuple" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - }, - { - "internalType": "uint32", - "name": "videoLimit", - "type": "uint32" - }, - { - "internalType": "bool", - "name": "isExisting", - "type": "bool" - } - ], - "internalType": "struct Channel", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "ownershipType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "ownerId", - "type": "uint256" - } - ], - "internalType": "struct ChannelOwnership", - "name": "_ownership", - "type": "tuple" - } - ], - "name": "updateOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "internalType": "bool", - "name": "_isActive", - "type": "bool" - } - ], - "name": "updateStatus", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "_videoLimit", - "type": "uint32" - } - ], - "name": "setChannelVideoLimit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - } - ], - "name": "removeChannel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"addChannel\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"channelCountByOwnership\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"getExistingChannel\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"ownership\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"videoLimit\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"isExisting\",\"type\":\"bool\"}],\"internalType\":\"struct Channel\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextChannelId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"removeChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"_videoLimit\",\"type\":\"uint32\"}],\"name\":\"setChannelVideoLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"updateOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isActive\",\"type\":\"bool\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":\"ChannelStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":{\"keccak256\":\"0x2c0b74ba427192750d9ae3532ca9a5ca8bf55c78d42b31b5fd884c8446e236b7\",\"urls\":[\"bzz-raw://8de586eee05bb472e60c7f6dfde1deabe8d88b911bb24a25b835423b968e5853\",\"dweb:/ipfs/QmPxGyc41DfVWHd2dACS65HuAays534bFcPivqBSJ7ojgJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", - "bytecode": "0x6080604052600380546001600160401b031916600117905534801561002357600080fd5b50600061002e61007d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610081565b3390565b610bbe806100906000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c806333364dca1461009e578063614265ee146100b357806364c8121f146100c6578063678d913d146100d9578063715018a61461010257806371fff9c51461010a5780638da5cb5b1461012a578063b5b9dc911461013f578063e35213d814610152578063f2fde38b14610172578063f4606f0014610185575b600080fd5b6100b16100ac3660046108f9565b61018d565b005b6100b16100c1366004610896565b610230565b6100b16100d436600461092e565b6102db565b6100ec6100e7366004610896565b61034c565b6040516100f99190610ae7565b60405180910390f35b6100b16103f2565b61011d610118366004610963565b61045f565b6040516100f99190610b2b565b610132610482565b6040516100f9919061098d565b6100b161014d3660046108b2565b610491565b61016561016036600461087b565b6104f4565b6040516100f99190610b3c565b6100b1610180366004610854565b6105a0565b610165610644565b610195610653565b6000546001600160a01b039081169116146101cb5760405162461bcd60e51b81526004016101c290610a6f565b60405180910390fd5b6001600160401b0382166000908152600160208181526040928390208351808501909452805460ff16845291820154908301529061020890610657565b8151815460ff191660ff9091161781556020820151600182015561022b82610693565b505050565b610238610653565b6000546001600160a01b039081169116146102655760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b0381166000908152600160208181526040928390208351808501909452805460ff16845290910154908201526102a190610657565b6001600160401b031660009081526001602081905260408220805460ff1916815590810191909155600201805465ffffffffffff19169055565b6102e3610653565b6000546001600160a01b039081169116146103105760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b039091166000908152600160205260409020600201805463ffffffff9092166101000264ffffffff0019909216919091179055565b6103546107ac565b61035c6107ac565b506001600160401b038216600090815260016020818152604092839020835160c081018552815460ff908116608083019081529483015460a083015293815260029091015480841615159282019290925263ffffffff61010083041693810193909352600160281b9004161515606082018190526103ec5760405162461bcd60e51b81526004016101c290610aa4565b92915050565b6103fa610653565b6000546001600160a01b039081169116146104275760405162461bcd60e51b81526004016101c290610a6f565b600080546040516001600160a01b0390911690600080516020610b69833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205463ffffffff1681565b6000546001600160a01b031690565b610499610653565b6000546001600160a01b039081169116146104c65760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b03919091166000908152600160205260409020600201805460ff1916911515919091179055565b60006104fe610653565b6000546001600160a01b0390811691161461052b5760405162461bcd60e51b81526004016101c290610a6f565b6003546001600160401b03166000818152600160208181526040909220600281018054600160281b60ff60281b199091161790558551815460ff191660ff909116178155918501519082015561058084610693565b600354610597906001600160401b031660016106cb565b50909392505050565b6105a8610653565b6000546001600160a01b039081169116146105d55760405162461bcd60e51b81526004016101c290610a6f565b6001600160a01b0381166105fb5760405162461bcd60e51b81526004016101c2906109f4565b600080546040516001600160a01b0380851693921691600080516020610b6983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160401b031681565b3390565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061070316565b5050565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061074516565b60008282016001600160401b0380851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b9392505050565b60006106fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610773565b600082820163ffffffff80851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b60008363ffffffff168363ffffffff16111582906107a45760405162461bcd60e51b81526004016101c291906109a1565b505050900390565b60405180608001604052806107bf6107da565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b600060408284031215610802578081fd5b604080519081016001600160401b0381118282101715610820578283fd5b6040529050806108308484610843565b8152602083013560208201525092915050565b803560ff811681146103ec57600080fd5b600060208284031215610865578081fd5b81356001600160a01b03811681146106fc578182fd5b60006040828403121561088c578081fd5b6106fc83836107f1565b6000602082840312156108a7578081fd5b81356106fc81610b50565b600080604083850312156108c4578081fd5b82356001600160401b03811681146108da578182fd5b9150602083013580151581146108ee578182fd5b809150509250929050565b6000806060838503121561090b578182fd5b823561091681610b50565b915061092584602085016107f1565b90509250929050565b60008060408385031215610940578182fd5b823561094b81610b50565b9150602083013563ffffffff811681146108ee578182fd5b60008060408385031215610975578182fd5b61097f8484610843565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156109cd578581018301518582016040015282016109b1565b818111156109de5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f547279696e6720746f2061636365737320756e6578697374696e67206368616e6040820152621b995b60ea1b606082015260800190565b8151805160ff16825260209081015181830152820151151560408083019190915282015163ffffffff16606080830191909152909101511515608082015260a00190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0381168114610b6557600080fd5b5056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220fd1de33b4564704a78e4e0fa0c0dc4f9884d1a1ce0df0d7ef018c774b7655ffe64736f6c634300060c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100995760003560e01c806333364dca1461009e578063614265ee146100b357806364c8121f146100c6578063678d913d146100d9578063715018a61461010257806371fff9c51461010a5780638da5cb5b1461012a578063b5b9dc911461013f578063e35213d814610152578063f2fde38b14610172578063f4606f0014610185575b600080fd5b6100b16100ac3660046108f9565b61018d565b005b6100b16100c1366004610896565b610230565b6100b16100d436600461092e565b6102db565b6100ec6100e7366004610896565b61034c565b6040516100f99190610ae7565b60405180910390f35b6100b16103f2565b61011d610118366004610963565b61045f565b6040516100f99190610b2b565b610132610482565b6040516100f9919061098d565b6100b161014d3660046108b2565b610491565b61016561016036600461087b565b6104f4565b6040516100f99190610b3c565b6100b1610180366004610854565b6105a0565b610165610644565b610195610653565b6000546001600160a01b039081169116146101cb5760405162461bcd60e51b81526004016101c290610a6f565b60405180910390fd5b6001600160401b0382166000908152600160208181526040928390208351808501909452805460ff16845291820154908301529061020890610657565b8151815460ff191660ff9091161781556020820151600182015561022b82610693565b505050565b610238610653565b6000546001600160a01b039081169116146102655760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b0381166000908152600160208181526040928390208351808501909452805460ff16845290910154908201526102a190610657565b6001600160401b031660009081526001602081905260408220805460ff1916815590810191909155600201805465ffffffffffff19169055565b6102e3610653565b6000546001600160a01b039081169116146103105760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b039091166000908152600160205260409020600201805463ffffffff9092166101000264ffffffff0019909216919091179055565b6103546107ac565b61035c6107ac565b506001600160401b038216600090815260016020818152604092839020835160c081018552815460ff908116608083019081529483015460a083015293815260029091015480841615159282019290925263ffffffff61010083041693810193909352600160281b9004161515606082018190526103ec5760405162461bcd60e51b81526004016101c290610aa4565b92915050565b6103fa610653565b6000546001600160a01b039081169116146104275760405162461bcd60e51b81526004016101c290610a6f565b600080546040516001600160a01b0390911690600080516020610b69833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205463ffffffff1681565b6000546001600160a01b031690565b610499610653565b6000546001600160a01b039081169116146104c65760405162461bcd60e51b81526004016101c290610a6f565b6001600160401b03919091166000908152600160205260409020600201805460ff1916911515919091179055565b60006104fe610653565b6000546001600160a01b0390811691161461052b5760405162461bcd60e51b81526004016101c290610a6f565b6003546001600160401b03166000818152600160208181526040909220600281018054600160281b60ff60281b199091161790558551815460ff191660ff909116178155918501519082015561058084610693565b600354610597906001600160401b031660016106cb565b50909392505050565b6105a8610653565b6000546001600160a01b039081169116146105d55760405162461bcd60e51b81526004016101c290610a6f565b6001600160a01b0381166105fb5760405162461bcd60e51b81526004016101c2906109f4565b600080546040516001600160a01b0380851693921691600080516020610b6983398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160401b031681565b3390565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061070316565b5050565b805160ff16600090815260026020908152604080832082850151845290915290205461068f9063ffffffff9081169060019061074516565b60008282016001600160401b0380851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b9392505050565b60006106fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610773565b600082820163ffffffff80851690821610156106fc5760405162461bcd60e51b81526004016101c290610a3a565b60008363ffffffff168363ffffffff16111582906107a45760405162461bcd60e51b81526004016101c291906109a1565b505050900390565b60405180608001604052806107bf6107da565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b600060408284031215610802578081fd5b604080519081016001600160401b0381118282101715610820578283fd5b6040529050806108308484610843565b8152602083013560208201525092915050565b803560ff811681146103ec57600080fd5b600060208284031215610865578081fd5b81356001600160a01b03811681146106fc578182fd5b60006040828403121561088c578081fd5b6106fc83836107f1565b6000602082840312156108a7578081fd5b81356106fc81610b50565b600080604083850312156108c4578081fd5b82356001600160401b03811681146108da578182fd5b9150602083013580151581146108ee578182fd5b809150509250929050565b6000806060838503121561090b578182fd5b823561091681610b50565b915061092584602085016107f1565b90509250929050565b60008060408385031215610940578182fd5b823561094b81610b50565b9150602083013563ffffffff811681146108ee578182fd5b60008060408385031215610975578182fd5b61097f8484610843565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b818110156109cd578581018301518582016040015282016109b1565b818111156109de5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526023908201527f547279696e6720746f2061636365737320756e6578697374696e67206368616e6040820152621b995b60ea1b606082015260800190565b8151805160ff16825260209081015181830152820151151560408083019190915282015163ffffffff16606080830191909152909101511515608082015260a00190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0381168114610b6557600080fd5b5056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220fd1de33b4564704a78e4e0fa0c0dc4f9884d1a1ce0df0d7ef018c774b7655ffe64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "2714:2170:9:-:0;;;2946:31;;;-1:-1:-1;;;;;;2946:31:9;2976:1;2946:31;;;2714:2170;;;;;;;;;-1:-1:-1;865:17:14;885:12;:10;:12::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:14;-1:-1:-1;;;;;907:18:14;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:14;940:43;;907:6;;940:43;831:159;2714:2170:9;;590:104:13;677:10;590:104;:::o;2714:2170:9:-;;;;;;;", - "deployedSourceMap": "2714:2170:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4095:268;;;;;;:::i;:::-;;:::i;:::-;;4725:157;;;;;;:::i;:::-;;:::i;4539:180::-;;;;;;:::i;:::-;;:::i;3861:228::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:145:14;;;:::i;2864:76:9:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1066:77:14:-;;;:::i;:::-;;;;;;;:::i;4369:164:9:-;;;;;;:::i;:::-;;:::i;3381:435::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1983:240:14:-;;;;;;:::i;:::-;;:::i;2946:31:9:-;;;:::i;4095:268::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;4223:23:9;::::1;4197;4223::::0;;;:11:::1;:23;::::0;;;;;;;;4250:39;;;;::::1;::::0;;;;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;4223:23;4250:39:::1;::::0;:20:::1;:39::i;:::-;4293:30:::0;;;;-1:-1:-1;;4293:30:9::1;;::::0;;::::1;;::::0;;::::1;::::0;::::1;::::0;-1:-1:-1;4293:30:9;::::1;::::0;4327:32:::1;4293:30:::0;4327:20:::1;:32::i;:::-;1339:1:14;4095:268:9::0;;:::o;4725:157::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;4810:23:9;::::1;;::::0;;;:11:::1;:23;::::0;;;;;;;;4789:55;;;;::::1;::::0;;;;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;:20:::1;:55::i;:::-;-1:-1:-1::0;;;;;4855:23:9::1;;::::0;;;:11:::1;:23;::::0;;;;;;4848:30;;-1:-1:-1;;4848:30:9::1;::::0;;;;::::1;::::0;;;;::::1;;::::0;;-1:-1:-1;;4848:30:9;;;4725:157::o;4539:180::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;4656:23:9;;::::1;4630;4656::::0;;;:11:::1;:23;::::0;;;;4683:18:::1;;:32:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;4683:32:9;;::::1;::::0;;;::::1;::::0;;4539:180::o;3861:228::-;3929:14;;:::i;:::-;3949:22;;:::i;:::-;-1:-1:-1;;;;;;3974:23:9;;;;;;:11;:23;;;;;;;;;3949:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3949:48:9;;;;;-1:-1:-1;3949:48:9;;;;;4001:66;;;;-1:-1:-1;;;4001:66:9;;;;;;;:::i;:::-;4078:7;3861:228;-1:-1:-1;;3861:228:9:o;1689:145:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:14;;::::1;::::0;-1:-1:-1;;;;;;;;;;;1758:40:14;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:14::1;::::0;;1689:145::o;2864:76:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1066:77:14:-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:14;1066:77;:::o;4369:164:9:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;4474:23:9;;;::::1;4448;4474::::0;;;:11:::1;:23;::::0;;;;4501:16:::1;;:28:::0;;-1:-1:-1;;4501:28:9::1;::::0;::::1;;::::0;;;::::1;::::0;;4369:164::o;3381:435::-;3464:6;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;3495:13:9::1;::::0;-1:-1:-1;;;;;3495:13:9::1;3476:16;3562:22:::0;;;3495:13;3562:22:::1;::::0;;;;;;;3613:21:::1;::::0;::::1;:28:::0;;-1:-1:-1;;;;;;;3613:28:9;;::::1;;::::0;;3645:33;;;;-1:-1:-1;;3645:33:9::1;3613:28;3645:33:::0;;::::1;;::::0;;;;::::1;::::0;;;::::1;::::0;3736:32:::1;3645:33:::0;3736:20:::1;:32::i;:::-;3772:13;::::0;:20:::1;::::0;-1:-1:-1;;;;;3772:13:9::1;3790:1;3772:17;:20::i;:::-;-1:-1:-1::0;3803:9:9;;3381:435;-1:-1:-1;;;3381:435:9:o;1983:240:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2071:22:14;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:14::1;;;;;;;:::i;:::-;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:14;;::::1;::::0;2172:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2151:38:14;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:14::1;-1:-1:-1::0;;;;;2199:17:14;;;::::1;::::0;;;::::1;::::0;;1983:240::o;2946:31:9:-;;;-1:-1:-1;;;;;2946:31:9;;:::o;590:104:13:-;677:10;590:104;:::o;3210:165:9:-;3319:24;;3295:49;;;;;;:23;:49;;;;;;;;3345:18;;;;3295:69;;;;;;;;:76;;:69;;;;;3369:1;;3295:73;:76;:::i;:::-;;3210:165;:::o;3042:::-;3151:24;;3127:49;;;;;;:23;:49;;;;;;;;3177:18;;;;3127:69;;;;;;;;:76;;:69;;;;;3201:1;;3127:73;:76;:::i;324:172:7:-;380:6;409:5;;;-1:-1:-1;;;;;432:6:7;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:7;;;;;;;:::i;:::-;488:1;324:172;-1:-1:-1;;;324:172:7:o;767:131:6:-;823:6;848:43;852:1;855;848:43;;;;;;;;;;;;;;;;;:3;:43::i;324:172::-;380:6;409:5;;;432:6;;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:6;;;;;;;:::i;1189:183::-;1273:6;1304:1;1299:6;;:1;:6;;;;1307:12;1291:29;;;;;-1:-1:-1;;;1291:29:6;;;;;;;;:::i;:::-;-1:-1:-1;;;1341:5:6;;;1189:183::o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;303:486::-;;426:4;414:9;409:3;405:19;401:30;398:2;;;-1:-1;;434:12;398:2;426:4;10795:9;;;10827:17;;-1:-1;;;;;10887:34;;10923:22;;;10884:62;10881:2;;;-1:-1;;10949:12;10881:2;426:4;10968:22;453:29;-1:-1;453:29;573:47;616:3;592:22;573:47;:::i;:::-;555:16;548:73;685:2;743:9;739:22;863:20;685:2;704:5;700:16;693:75;;392:397;;;;:::o;1203:126::-;1268:20;;11969:4;11958:16;;13035:33;;13025:2;;13082:1;;13072:12;1336:241;;1440:2;1428:9;1419:7;1415:23;1411:32;1408:2;;;-1:-1;;1446:12;1408:2;72:20;;-1:-1;;;;;11555:54;;12427:35;;12417:2;;-1:-1;;12466:12;1584:309;;1722:2;1710:9;1701:7;1697:23;1693:32;1690:2;;;-1:-1;;1728:12;1690:2;1790:87;1869:7;1845:22;1790:87;:::i;1900:239::-;;2003:2;1991:9;1982:7;1978:23;1974:32;1971:2;;;-1:-1;;2009:12;1971:2;1147:6;1134:20;1159:32;1185:5;1159:32;:::i;2146:358::-;;;2263:2;2251:9;2242:7;2238:23;2234:32;2231:2;;;-1:-1;;2269:12;2231:2;1134:20;;-1:-1;;;;;11856:30;;12914:34;;12904:2;;-1:-1;;12952:12;12904:2;2321:62;-1:-1;2420:2;2456:22;;206:20;11467:13;;11460:21;12548:32;;12538:2;;-1:-1;;12584:12;12538:2;2428:60;;;;2225:279;;;;;:::o;2511:432::-;;;2665:2;2653:9;2644:7;2640:23;2636:32;2633:2;;;-1:-1;;2671:12;2633:2;1147:6;1134:20;1159:32;1185:5;1159:32;:::i;:::-;2723:62;-1:-1;2840:87;2919:7;2822:2;2895:22;;2840:87;:::i;:::-;2830:97;;2627:316;;;;;:::o;2950:362::-;;;3069:2;3057:9;3048:7;3044:23;3040:32;3037:2;;;-1:-1;;3075:12;3037:2;1147:6;1134:20;1159:32;1185:5;1159:32;:::i;:::-;3127:62;-1:-1;3226:2;3264:22;;999:20;11772:10;11761:22;;12792:34;;12782:2;;-1:-1;;12830:12;3319:362;;;3438:2;3426:9;3417:7;3413:23;3409:32;3406:2;;;-1:-1;;3444:12;3406:2;3506:51;3549:7;3525:22;3506:51;:::i;:::-;3496:61;3594:2;3633:22;;;;863:20;;-1:-1;;;3400:281::o;7721:222::-;-1:-1;;;;;11555:54;;;;3759:37;;7848:2;7833:18;;7819:124::o;7950:310::-;;8097:2;;8118:17;8111:47;4054:5;11090:12;11247:6;8097:2;8086:9;8082:18;11235:19;-1:-1;12059:101;12073:6;12070:1;12067:13;12059:101;;;12140:11;;;;;12134:18;12121:11;;;11275:14;12121:11;12114:39;12088:10;;12059:101;;;12175:6;12172:1;12169:13;12166:2;;;-1:-1;11275:14;12231:6;8086:9;12222:16;;12215:27;12166:2;-1:-1;12347:7;12331:14;-1:-1;;12327:28;4212:39;;;;11275:14;4212:39;;8068:192;-1:-1;;;8068:192::o;8267:416::-;8467:2;8481:47;;;4488:2;8452:18;;;11235:19;4524:34;11275:14;;;4504:55;-1:-1;;;4579:12;;;4572:30;4621:12;;;8438:245::o;8690:416::-;8890:2;8904:47;;;4872:2;8875:18;;;11235:19;-1:-1;;;11275:14;;;4888:50;4957:12;;;8861:245::o;9113:416::-;9313:2;9327:47;;;9298:18;;;11235:19;5244:34;11275:14;;;5224:55;5298:12;;;9284:245::o;9536:416::-;9736:2;9750:47;;;5549:2;9721:18;;;11235:19;5585:34;11275:14;;;5565:55;-1:-1;;;5640:12;;;5633:27;5679:12;;;9707:245::o;9959:323::-;6514:23;;5988;;11969:4;11958:16;7674:35;;6158:4;6147:16;;;6141:23;6218:14;;;7227:37;6746:16;;6740:23;11467:13;11460:21;6820:4;6811:14;;;3863:34;;;;6900:16;;6894:23;11772:10;11761:22;6978:4;6969:14;;;7335:36;;;;7058:16;;;7052:23;11467:13;11460:21;7132:4;7123:14;;3863:34;10136:3;10121:19;;10107:175::o;10289:218::-;11772:10;11761:22;;;;7335:36;;10414:2;10399:18;;10385:122::o;10514:218::-;-1:-1;;;;;11856:30;;;;7569:36;;10639:2;10624:18;;10610:122::o;12856:115::-;-1:-1;;;;;11856:30;;12914:34;;12904:2;;12962:1;;12952:12;12904:2;12898:73;:::o", - "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../../node_modules/@openzeppelin/contracts/math/SafeMath.sol\";\nimport \"../lib/SafeMath32.sol\";\nimport \"../lib/SafeMath64.sol\";\n\n// Generic representation of ownership, assuming that each possible ownership consists of:\n// - Type (ie. Member, Group, Curator etc.), which is represented by uint8 (and can be converted to enum)\n// - Identifier (address/id/hash), which is represented by uint256\nstruct ChannelOwnership {\n uint8 ownershipType;\n\tuint256 ownerId;\n}\n\n// Any change to this struct requires ChannelStorage migration\nstruct Channel {\n ChannelOwnership ownership;\n bool isActive;\n\tuint32 videoLimit; // 0 = use default\n bool isExisting;\n}\n\n// A helper library to parse ChannelOwnership.\n// New ownership types can be safely added if needed without the need for migration\n// (but changing/removing existing ones would still require migration to new storage)\nenum ChannelOwnerType { Address, Member, CuratorGroup }\nlibrary ChannelOwnershipDecoder {\n\tfunction isAddress(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Address);\n\t}\n\n\tfunction isMember(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.Member);\n\t}\n\n\tfunction isCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\treturn _ownership.ownershipType == uint8(ChannelOwnerType.CuratorGroup);\n\t}\n\n\tfunction asAddress(ChannelOwnership memory _ownership) internal pure returns (address) {\n\t\trequire(\n\t\t\tisAddress(_ownership),\n\t\t\t\"asAddress called on non-address ChannelOwnership\"\n\t\t);\n\t\treturn address(uint160(_ownership.ownerId));\n\t}\n\n\tfunction asMember(ChannelOwnership memory _ownership) internal pure returns (uint64) {\n\t\trequire(\n\t\t\tisMember(_ownership),\n\t\t\t\"asMember called on non-member ChannelOwnership\"\n\t\t);\n\t\treturn uint64(_ownership.ownerId);\n\t}\n\n\tfunction asCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (uint16) {\n\t\trequire(\n\t\t\tisCuratorGroup(_ownership),\n\t\t\t\"asCuratorGroup called on non-group ChannelOwnership\"\n\t\t);\n\t\treturn uint16(_ownership.ownerId);\n\t}\n\n\tfunction isValid(ChannelOwnership memory _ownership) internal pure returns (bool) {\n\t\tif (isAddress(_ownership)) {\n\t\t\treturn uint256(uint160(asAddress(_ownership))) == _ownership.ownerId;\n\t\t}\n\t\tif (isMember(_ownership)) {\n\t\t\treturn uint256(asMember(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\tif (isCuratorGroup(_ownership)) {\n\t\t\treturn uint256(asCuratorGroup(_ownership)) == _ownership.ownerId;\n\t\t}\n\t\treturn false;\n\t}\n}\n\ncontract ChannelStorage is Ownable {\n mapping (uint64 => Channel) private channelById;\n\t// ownershipType => ownerId => channelCount double-map\n mapping (uint8 => mapping(uint256 => uint32)) public channelCountByOwnership;\n uint64 public nextChannelId = 1;\n\n\tusing SafeMath32 for uint32;\n\tusing SafeMath64 for uint64;\n\n\tfunction _incCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].add(1);\n\t}\n\n\tfunction _decCountByOwnership (ChannelOwnership memory _ownership) internal view {\n\t\tchannelCountByOwnership[_ownership.ownershipType][_ownership.ownerId].sub(1);\n\t}\n\n function addChannel (ChannelOwnership memory _ownership) public onlyOwner returns (uint64) {\n\t\tuint64 channelId = nextChannelId;\n\t\t// Get storage ref\n\t\tChannel storage newChannel = channelById[channelId];\n\t\t// Populate the struct\n\t\tnewChannel.isExisting = true;\n\t\tnewChannel.ownership = _ownership; // TODO: Is this the right way to do this assignment?\n\t\t_incCountByOwnership(_ownership);\n\t\tnextChannelId.add(1);\n\t\treturn channelId;\n\t}\n\n\t// Get channel + perform existance check\n\tfunction getExistingChannel(uint64 _channelId) public view returns (Channel memory) {\n\t\tChannel memory channel = channelById[_channelId];\n\t\trequire(channel.isExisting, \"Trying to access unexisting channel\");\n\t\treturn channel;\n\t}\n\n function updateOwnership (uint64 _channelId, ChannelOwnership memory _ownership) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\t_decCountByOwnership(channel.ownership);\n\t\tchannel.ownership = _ownership;\n\t\t_incCountByOwnership(_ownership);\n\t}\n\n function updateStatus (uint64 _channelId, bool _isActive) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.isActive = _isActive;\n\t}\n\n function setChannelVideoLimit (uint64 _channelId, uint32 _videoLimit) public onlyOwner {\n\t\tChannel storage channel = channelById[_channelId];\n\t\tchannel.videoLimit = _videoLimit;\n\t}\n\n function removeChannel (uint64 _channelId) public onlyOwner {\n\t\t_decCountByOwnership(channelById[_channelId].ownership);\n\t\tdelete channelById[_channelId];\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "exportedSymbols": { - "Channel": [ - 2478 - ], - "ChannelOwnerType": [ - 2482 - ], - "ChannelOwnership": [ - 2469 - ], - "ChannelOwnershipDecoder": [ - 2658 - ], - "ChannelStorage": [ - 2875 - ] - }, - "id": 2876, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2459, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "id": 2460, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:9" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 2461, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3403, - "src": "59:71:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "id": 2462, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3599, - "src": "131:70:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "file": "../lib/SafeMath32.sol", - "id": 2463, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2068, - "src": "202:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "file": "../lib/SafeMath64.sol", - "id": 2464, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2263, - "src": "234:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "ChannelOwnership", - "id": 2469, - "members": [ - { - "constant": false, - "id": 2466, - "mutability": "mutable", - "name": "ownershipType", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "561:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2465, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "561:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2468, - "mutability": "mutable", - "name": "ownerId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "583:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "ChannelOwnership", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "531:70:9", - "visibility": "public" - }, - { - "canonicalName": "Channel", - "id": 2478, - "members": [ - { - "constant": false, - "id": 2471, - "mutability": "mutable", - "name": "ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "687:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2470, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "687:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2473, - "mutability": "mutable", - "name": "isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "719:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2472, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "719:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2475, - "mutability": "mutable", - "name": "videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "735:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2474, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "735:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2477, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "777:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2476, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "777:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Channel", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "666:129:9", - "visibility": "public" - }, - { - "canonicalName": "ChannelOwnerType", - "id": 2482, - "members": [ - { - "id": 2479, - "name": "Address", - "nodeType": "EnumValue", - "src": "1038:7:9" - }, - { - "id": 2480, - "name": "Member", - "nodeType": "EnumValue", - "src": "1047:6:9" - }, - { - "id": 2481, - "name": "CuratorGroup", - "nodeType": "EnumValue", - "src": "1055:12:9" - } - ], - "name": "ChannelOwnerType", - "nodeType": "EnumDefinition", - "src": "1014:55:9" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2658, - "linearizedBaseContracts": [ - 2658 - ], - "name": "ChannelOwnershipDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2498, - "nodeType": "Block", - "src": "1189:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2489, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "1200:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1200:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2493, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1234:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Address", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1234:24:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2491, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1228:31:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1200:59:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2488, - "id": 2497, - "nodeType": "Return", - "src": "1193:66:9" - } - ] - }, - "documentation": null, - "id": 2499, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1124:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2483, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1124:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1123:36:9" - }, - "returnParameters": { - "id": 2488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2487, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1183:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2486, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1183:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1182:6:9" - }, - "scope": 2658, - "src": "1105:158:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2515, - "nodeType": "Block", - "src": "1349:73:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2506, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2501, - "src": "1360:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1360:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2510, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1394:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Member", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1394:23:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2508, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1388:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1360:58:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2505, - "id": 2514, - "nodeType": "Return", - "src": "1353:65:9" - } - ] - }, - "documentation": null, - "id": 2516, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2501, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1284:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2500, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1284:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1283:36:9" - }, - "returnParameters": { - "id": 2505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2504, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1343:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1343:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1342:6:9" - }, - "scope": 2658, - "src": "1266:156:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2532, - "nodeType": "Block", - "src": "1514:79:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2523, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2518, - "src": "1525:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1525:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1559:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1559:29:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2525, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1553:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1525:64:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2522, - "id": 2531, - "nodeType": "Return", - "src": "1518:71:9" - } - ] - }, - "documentation": null, - "id": 2533, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2518, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1449:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2517, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1449:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1448:36:9" - }, - "returnParameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2521, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1508:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2520, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1508:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1507:6:9" - }, - "scope": 2658, - "src": "1425:168:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2556, - "nodeType": "Block", - "src": "1683:147:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2542, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1709:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2541, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "1699:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1699:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", - "id": 2544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1725:50:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - }, - "value": "asAddress called on non-address ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - } - ], - "id": 2540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1687:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1687:92:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2546, - "nodeType": "ExpressionStatement", - "src": "1687:92:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2551, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1806:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2552, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "1806:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2549, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1798:27:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1790:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2539, - "id": 2555, - "nodeType": "Return", - "src": "1783:43:9" - } - ] - }, - "documentation": null, - "id": 2557, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2535, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1615:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2534, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1615:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1614:36:9" - }, - "returnParameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2538, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1674:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:9:9" - }, - "scope": 2658, - "src": "1596:234:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2577, - "nodeType": "Block", - "src": "1918:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2566, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "1943:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2565, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "1934:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1934:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", - "id": 2568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1959:48:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - }, - "value": "asMember called on non-member ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - } - ], - "id": 2564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1922:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1922:89:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2570, - "nodeType": "ExpressionStatement", - "src": "1922:89:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2573, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "2029:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2029:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 2571, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2563, - "id": 2576, - "nodeType": "Return", - "src": "2015:33:9" - } - ] - }, - "documentation": null, - "id": 2578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2559, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1851:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2558, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1851:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:36:9" - }, - "returnParameters": { - "id": 2563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2562, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1910:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2561, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1910:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1909:8:9" - }, - "scope": 2658, - "src": "1833:219:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2598, - "nodeType": "Block", - "src": "2146:145:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2587, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2586, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2162:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2162:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", - "id": 2589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2193:53:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - }, - "value": "asCuratorGroup called on non-group ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - } - ], - "id": 2585, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2150:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2150:100:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2591, - "nodeType": "ExpressionStatement", - "src": "2150:100:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2594, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2268:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2595, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2268:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 2592, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2261:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 2584, - "id": 2597, - "nodeType": "Return", - "src": "2254:33:9" - } - ] - }, - "documentation": null, - "id": 2599, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2580, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2079:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2579, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2079:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2078:36:9" - }, - "returnParameters": { - "id": 2584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2583, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2138:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2582, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2138:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2137:8:9" - }, - "scope": 2658, - "src": "2055:236:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2656, - "nodeType": "Block", - "src": "2376:334:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2607, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2394:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2606, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "2384:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2384:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2623, - "nodeType": "IfStatement", - "src": "2380:105:9", - "trueBody": { - "id": 2622, - "nodeType": "Block", - "src": "2407:78:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2614, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2445:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2613, - "name": "asAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "2435:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (address)" - } - }, - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2611, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2427:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2419:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2618, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2462:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2462:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2419:61:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2621, - "nodeType": "Return", - "src": "2412:68:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2625, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2501:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2624, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "2492:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2492:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2638, - "nodeType": "IfStatement", - "src": "2488:94:9", - "trueBody": { - "id": 2637, - "nodeType": "Block", - "src": "2514:68:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2630, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2543:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2629, - "name": "asMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2578, - "src": "2534:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" - } - }, - "id": 2631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2534:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 2628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2526:29:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2633, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2559:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2559:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2526:51:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2636, - "nodeType": "Return", - "src": "2519:58:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2640, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2604:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2639, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2589:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2589:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2653, - "nodeType": "IfStatement", - "src": "2585:106:9", - "trueBody": { - "id": 2652, - "nodeType": "Block", - "src": "2617:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2645, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2652:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2644, - "name": "asCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2599, - "src": "2637:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2637:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 2643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2629:35:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2648, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2668:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2629:57:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2651, - "nodeType": "Return", - "src": "2622:64:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2701:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2605, - "id": 2655, - "nodeType": "Return", - "src": "2694:12:9" - } - ] - }, - "documentation": null, - "id": 2657, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValid", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2601, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2311:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2600, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2310:36:9" - }, - "returnParameters": { - "id": 2605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2604, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2370:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2603, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2370:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2369:6:9" - }, - "scope": 2658, - "src": "2294:416:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2876, - "src": "1070:1642:9" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2659, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "2741:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 2660, - "nodeType": "InheritanceSpecifier", - "src": "2741:7:9" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2875, - "linearizedBaseContracts": [ - 2875, - 3402, - 3293 - ], - "name": "ChannelStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2664, - "mutability": "mutable", - "name": "channelById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2755:47:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "typeName": { - "id": 2663, - "keyType": { - "id": 2661, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2764:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "2755:27:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "valueType": { - "contractScope": null, - "id": 2662, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "2774:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "71fff9c5", - "id": 2670, - "mutability": "mutable", - "name": "channelCountByOwnership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2864:76:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "typeName": { - "id": 2669, - "keyType": { - "id": 2665, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2873:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Mapping", - "src": "2864:45:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "valueType": { - "id": 2668, - "keyType": { - "id": 2666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2890:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2882:26:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - }, - "valueType": { - "id": 2667, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2901:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f4606f00", - "id": 2673, - "mutability": "mutable", - "name": "nextChannelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2946:31:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2671, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2946:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 2672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2976:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "id": 2676, - "libraryName": { - "contractScope": null, - "id": 2674, - "name": "SafeMath32", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2067, - "src": "2987:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath32_$2067", - "typeString": "library SafeMath32" - } - }, - "nodeType": "UsingForDirective", - "src": "2981:28:9", - "typeName": { - "id": 2675, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3002:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - }, - { - "id": 2679, - "libraryName": { - "contractScope": null, - "id": 2677, - "name": "SafeMath64", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2262, - "src": "3017:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath64_$2262", - "typeString": "library SafeMath64" - } - }, - "nodeType": "UsingForDirective", - "src": "3011:28:9", - "typeName": { - "id": 2678, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3032:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - { - "body": { - "id": 2695, - "nodeType": "Block", - "src": "3123:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3201:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2684, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3127:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2689, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2685, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3151:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3151:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2690, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2687, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2688, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3177:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3127:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3127:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2694, - "nodeType": "ExpressionStatement", - "src": "3127:76:9" - } - ] - }, - "documentation": null, - "id": 2696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_incCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2681, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2696, - "src": "3073:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2680, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3073:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3072:36:9" - }, - "returnParameters": { - "id": 2683, - "nodeType": "ParameterList", - "parameters": [], - "src": "3123:0:9" - }, - "scope": 2875, - "src": "3042:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2712, - "nodeType": "Block", - "src": "3291:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3369:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2701, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3295:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2706, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2702, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3319:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3319:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2707, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2704, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3345:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2705, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3345:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1917, - "src": "3295:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3295:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2711, - "nodeType": "ExpressionStatement", - "src": "3295:76:9" - } - ] - }, - "documentation": null, - "id": 2713, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_decCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2698, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2713, - "src": "3241:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2697, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3241:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3240:36:9" - }, - "returnParameters": { - "id": 2700, - "nodeType": "ParameterList", - "parameters": [], - "src": "3291:0:9" - }, - "scope": 2875, - "src": "3210:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2756, - "nodeType": "Block", - "src": "3472:344:9", - "statements": [ - { - "assignments": [ - 2723 - ], - "declarations": [ - { - "constant": false, - "id": 2723, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3476:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2722, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3476:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2725, - "initialValue": { - "argumentTypes": null, - "id": 2724, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3495:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3476:32:9" - }, - { - "assignments": [ - 2727 - ], - "declarations": [ - { - "constant": false, - "id": 2727, - "mutability": "mutable", - "name": "newChannel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3533:26:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2726, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3533:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2731, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2728, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3562:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2730, - "indexExpression": { - "argumentTypes": null, - "id": 2729, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3574:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3562:22:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3533:51:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2732, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2734, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "3613:21:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3637:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3613:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2737, - "nodeType": "ExpressionStatement", - "src": "3613:28:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2738, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3645:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2740, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "3645:20:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2741, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "3645:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2743, - "nodeType": "ExpressionStatement", - "src": "3645:33:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2745, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3757:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2744, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "3736:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3736:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2747, - "nodeType": "ExpressionStatement", - "src": "3736:32:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2748, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3772:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "3772:17:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3772:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2753, - "nodeType": "ExpressionStatement", - "src": "3772:20:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2754, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3803:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2721, - "id": 2755, - "nodeType": "Return", - "src": "3796:16:9" - } - ] - }, - "documentation": null, - "functionSelector": "e35213d8", - "id": 2757, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2718, - "modifierName": { - "argumentTypes": null, - "id": 2717, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "3445:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3445:9:9" - } - ], - "name": "addChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2715, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3402:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2714, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3402:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3401:36:9" - }, - "returnParameters": { - "id": 2721, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2720, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3464:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2719, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3464:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3463:8:9" - }, - "scope": 2875, - "src": "3381:435:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2778, - "nodeType": "Block", - "src": "3945:144:9", - "statements": [ - { - "assignments": [ - 2765 - ], - "declarations": [ - { - "constant": false, - "id": 2765, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2778, - "src": "3949:22:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2764, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3949:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2769, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2766, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3974:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2768, - "indexExpression": { - "argumentTypes": null, - "id": 2767, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2759, - "src": "3986:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3974:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3949:48:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2771, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4009:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 2772, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "4009:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4029:37:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - }, - "value": "Trying to access unexisting channel" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - } - ], - "id": 2770, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4001:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4001:66:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2775, - "nodeType": "ExpressionStatement", - "src": "4001:66:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2776, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "functionReturnParameters": 2763, - "id": 2777, - "nodeType": "Return", - "src": "4071:14:9" - } - ] - }, - "documentation": null, - "functionSelector": "678d913d", - "id": 2779, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2759, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3889:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2758, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3889:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3888:19:9" - }, - "returnParameters": { - "id": 2763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2762, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3929:14:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2761, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3929:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3928:16:9" - }, - "scope": 2875, - "src": "3861:228:9", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2809, - "nodeType": "Block", - "src": "4193:170:9", - "statements": [ - { - "assignments": [ - 2789 - ], - "declarations": [ - { - "constant": false, - "id": 2789, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2809, - "src": "4197:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2788, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4197:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2793, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2790, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4223:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2792, - "indexExpression": { - "argumentTypes": null, - "id": 2791, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2781, - "src": "4235:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4223:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4197:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2795, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4271:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2796, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4271:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2794, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4250:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4250:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2798, - "nodeType": "ExpressionStatement", - "src": "4250:39:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2799, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4293:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4293:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2802, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4313:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "4293:30:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2804, - "nodeType": "ExpressionStatement", - "src": "4293:30:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2806, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4348:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2805, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "4327:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4327:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2808, - "nodeType": "ExpressionStatement", - "src": "4327:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "33364dca", - "id": 2810, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2786, - "modifierName": { - "argumentTypes": null, - "id": 2785, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4183:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4183:9:9" - } - ], - "name": "updateOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4121:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2780, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4121:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2783, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4140:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2782, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "4140:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4120:55:9" - }, - "returnParameters": { - "id": 2787, - "nodeType": "ParameterList", - "parameters": [], - "src": "4193:0:9" - }, - "scope": 2875, - "src": "4095:268:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2831, - "nodeType": "Block", - "src": "4444:89:9", - "statements": [ - { - "assignments": [ - 2820 - ], - "declarations": [ - { - "constant": false, - "id": 2820, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2831, - "src": "4448:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2819, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4448:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2824, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2821, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4474:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2823, - "indexExpression": { - "argumentTypes": null, - "id": 2822, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2812, - "src": "4486:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4474:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4448:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2825, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "4501:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2827, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "4501:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2828, - "name": "_isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4520:9:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4501:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2830, - "nodeType": "ExpressionStatement", - "src": "4501:28:9" - } - ] - }, - "documentation": null, - "functionSelector": "b5b9dc91", - "id": 2832, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2817, - "modifierName": { - "argumentTypes": null, - "id": 2816, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4434:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4434:9:9" - } - ], - "name": "updateStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2812, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4392:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2811, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4392:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2814, - "mutability": "mutable", - "name": "_isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4411:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2813, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4411:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4391:35:9" - }, - "returnParameters": { - "id": 2818, - "nodeType": "ParameterList", - "parameters": [], - "src": "4444:0:9" - }, - "scope": 2875, - "src": "4369:164:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2853, - "nodeType": "Block", - "src": "4626:93:9", - "statements": [ - { - "assignments": [ - 2842 - ], - "declarations": [ - { - "constant": false, - "id": 2842, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2853, - "src": "4630:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2841, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2846, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2843, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4656:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2845, - "indexExpression": { - "argumentTypes": null, - "id": 2844, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2834, - "src": "4668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4656:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4630:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2847, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "4683:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2849, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "4683:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2850, - "name": "_videoLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2836, - "src": "4704:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4683:32:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2852, - "nodeType": "ExpressionStatement", - "src": "4683:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "64c8121f", - "id": 2854, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2839, - "modifierName": { - "argumentTypes": null, - "id": 2838, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4616:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4616:9:9" - } - ], - "name": "setChannelVideoLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4570:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2833, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4570:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2836, - "mutability": "mutable", - "name": "_videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4589:18:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2835, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4589:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4569:39:9" - }, - "returnParameters": { - "id": 2840, - "nodeType": "ParameterList", - "parameters": [], - "src": "4626:0:9" - }, - "scope": 2875, - "src": "4539:180:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2873, - "nodeType": "Block", - "src": "4785:97:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2862, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4810:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2864, - "indexExpression": { - "argumentTypes": null, - "id": 2863, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4822:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4810:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4810:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2861, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4789:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4789:55:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2867, - "nodeType": "ExpressionStatement", - "src": "4789:55:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4848:30:9", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2868, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4855:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2870, - "indexExpression": { - "argumentTypes": null, - "id": 2869, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4867:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4855:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2872, - "nodeType": "ExpressionStatement", - "src": "4848:30:9" - } - ] - }, - "documentation": null, - "functionSelector": "614265ee", - "id": 2874, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2859, - "modifierName": { - "argumentTypes": null, - "id": 2858, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4775:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4775:9:9" - } - ], - "name": "removeChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2857, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2856, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2874, - "src": "4749:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2855, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4749:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:9" - }, - "returnParameters": { - "id": 2860, - "nodeType": "ParameterList", - "parameters": [], - "src": "4785:0:9" - }, - "scope": 2875, - "src": "4725:157:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 2876, - "src": "2714:2170:9" - } - ], - "src": "0:4885:9" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "exportedSymbols": { - "Channel": [ - 2478 - ], - "ChannelOwnerType": [ - 2482 - ], - "ChannelOwnership": [ - 2469 - ], - "ChannelOwnershipDecoder": [ - 2658 - ], - "ChannelStorage": [ - 2875 - ] - }, - "id": 2876, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2459, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "id": 2460, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:9" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 2461, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3403, - "src": "59:71:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "file": "../../node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "id": 2462, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 3599, - "src": "131:70:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "file": "../lib/SafeMath32.sol", - "id": 2463, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2068, - "src": "202:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "file": "../lib/SafeMath64.sol", - "id": 2464, - "nodeType": "ImportDirective", - "scope": 2876, - "sourceUnit": 2263, - "src": "234:31:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "ChannelOwnership", - "id": 2469, - "members": [ - { - "constant": false, - "id": 2466, - "mutability": "mutable", - "name": "ownershipType", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "561:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2465, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "561:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2468, - "mutability": "mutable", - "name": "ownerId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2469, - "src": "583:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "ChannelOwnership", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "531:70:9", - "visibility": "public" - }, - { - "canonicalName": "Channel", - "id": 2478, - "members": [ - { - "constant": false, - "id": 2471, - "mutability": "mutable", - "name": "ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "687:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2470, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "687:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2473, - "mutability": "mutable", - "name": "isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "719:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2472, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "719:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2475, - "mutability": "mutable", - "name": "videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "735:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2474, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "735:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2477, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2478, - "src": "777:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2476, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "777:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Channel", - "nodeType": "StructDefinition", - "scope": 2876, - "src": "666:129:9", - "visibility": "public" - }, - { - "canonicalName": "ChannelOwnerType", - "id": 2482, - "members": [ - { - "id": 2479, - "name": "Address", - "nodeType": "EnumValue", - "src": "1038:7:9" - }, - { - "id": 2480, - "name": "Member", - "nodeType": "EnumValue", - "src": "1047:6:9" - }, - { - "id": 2481, - "name": "CuratorGroup", - "nodeType": "EnumValue", - "src": "1055:12:9" - } - ], - "name": "ChannelOwnerType", - "nodeType": "EnumDefinition", - "src": "1014:55:9" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2658, - "linearizedBaseContracts": [ - 2658 - ], - "name": "ChannelOwnershipDecoder", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2498, - "nodeType": "Block", - "src": "1189:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2489, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "1200:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2490, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1200:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2493, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1234:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Address", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1234:24:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2491, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1228:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1228:31:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1200:59:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2488, - "id": 2497, - "nodeType": "Return", - "src": "1193:66:9" - } - ] - }, - "documentation": null, - "id": 2499, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1124:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2483, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1124:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1123:36:9" - }, - "returnParameters": { - "id": 2488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2487, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2499, - "src": "1183:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2486, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1183:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1182:6:9" - }, - "scope": 2658, - "src": "1105:158:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2515, - "nodeType": "Block", - "src": "1349:73:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2506, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2501, - "src": "1360:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1360:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2510, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1394:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Member", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1394:23:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2508, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1388:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1388:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1360:58:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2505, - "id": 2514, - "nodeType": "Return", - "src": "1353:65:9" - } - ] - }, - "documentation": null, - "id": 2516, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2501, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1284:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2500, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1284:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1283:36:9" - }, - "returnParameters": { - "id": 2505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2504, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2516, - "src": "1343:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1343:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1342:6:9" - }, - "scope": 2658, - "src": "1266:156:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2532, - "nodeType": "Block", - "src": "1514:79:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2523, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2518, - "src": "1525:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2524, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "1525:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "1559:16:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 2528, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1559:29:9", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 2526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 2525, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1553:5:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1553:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1525:64:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2522, - "id": 2531, - "nodeType": "Return", - "src": "1518:71:9" - } - ] - }, - "documentation": null, - "id": 2533, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2518, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1449:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2517, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1449:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1448:36:9" - }, - "returnParameters": { - "id": 2522, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2521, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2533, - "src": "1508:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2520, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1508:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1507:6:9" - }, - "scope": 2658, - "src": "1425:168:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2556, - "nodeType": "Block", - "src": "1683:147:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2542, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1709:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2541, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "1699:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1699:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6173416464726573732063616c6c6564206f6e206e6f6e2d61646472657373204368616e6e656c4f776e657273686970", - "id": 2544, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1725:50:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - }, - "value": "asAddress called on non-address ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9e882f4d9167703a6ed012be16b1860bba80e1b40608cc135a50c7517e57512f", - "typeString": "literal_string \"asAddress called on non-address ChannelOwnership\"" - } - ], - "id": 2540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1687:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1687:92:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2546, - "nodeType": "ExpressionStatement", - "src": "1687:92:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2551, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "1806:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2552, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "1806:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2549, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "1798:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1798:27:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 2547, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1790:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1790:36:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2539, - "id": 2555, - "nodeType": "Return", - "src": "1783:43:9" - } - ] - }, - "documentation": null, - "id": 2557, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2535, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1615:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2534, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1615:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1614:36:9" - }, - "returnParameters": { - "id": 2539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2538, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2557, - "src": "1674:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:9:9" - }, - "scope": 2658, - "src": "1596:234:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2577, - "nodeType": "Block", - "src": "1918:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2566, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "1943:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2565, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "1934:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1934:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d626572204368616e6e656c4f776e657273686970", - "id": 2568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1959:48:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - }, - "value": "asMember called on non-member ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2a09f4901801a23d5cc841c2fef4f3574399afeee177085798475be8db268646", - "typeString": "literal_string \"asMember called on non-member ChannelOwnership\"" - } - ], - "id": 2564, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1922:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1922:89:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2570, - "nodeType": "ExpressionStatement", - "src": "1922:89:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2573, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "2029:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2029:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint64_$", - "typeString": "type(uint64)" - }, - "typeName": { - "id": 2571, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2022:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2022:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2563, - "id": 2576, - "nodeType": "Return", - "src": "2015:33:9" - } - ] - }, - "documentation": null, - "id": 2578, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asMember", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2560, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2559, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1851:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2558, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1851:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1850:36:9" - }, - "returnParameters": { - "id": 2563, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2562, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2578, - "src": "1910:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2561, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1910:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1909:8:9" - }, - "scope": 2658, - "src": "1833:219:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2598, - "nodeType": "Block", - "src": "2146:145:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2587, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2586, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2162:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2162:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f7570204368616e6e656c4f776e657273686970", - "id": 2589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2193:53:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - }, - "value": "asCuratorGroup called on non-group ChannelOwnership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38da5e48eccea67cf1c950c64376722d56cae6472c65f10ab8a145d5aae80fd7", - "typeString": "literal_string \"asCuratorGroup called on non-group ChannelOwnership\"" - } - ], - "id": 2585, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2150:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2150:100:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2591, - "nodeType": "ExpressionStatement", - "src": "2150:100:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2594, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2580, - "src": "2268:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2595, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2268:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint16_$", - "typeString": "type(uint16)" - }, - "typeName": { - "id": 2592, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2261:6:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2261:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 2584, - "id": 2597, - "nodeType": "Return", - "src": "2254:33:9" - } - ] - }, - "documentation": null, - "id": 2599, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "asCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2580, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2079:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2579, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2079:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2078:36:9" - }, - "returnParameters": { - "id": 2584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2583, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2599, - "src": "2138:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2582, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2138:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2137:8:9" - }, - "scope": 2658, - "src": "2055:236:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2656, - "nodeType": "Block", - "src": "2376:334:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2607, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2394:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2606, - "name": "isAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2499, - "src": "2384:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2384:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2623, - "nodeType": "IfStatement", - "src": "2380:105:9", - "trueBody": { - "id": 2622, - "nodeType": "Block", - "src": "2407:78:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2614, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2445:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2613, - "name": "asAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2557, - "src": "2435:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (address)" - } - }, - "id": 2615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2435:21:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": { - "id": 2611, - "name": "uint160", - "nodeType": "ElementaryTypeName", - "src": "2427:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2427:30:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2419:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2419:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2618, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2462:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2619, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2462:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2419:61:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2621, - "nodeType": "Return", - "src": "2412:68:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2625, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2501:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2624, - "name": "isMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "2492:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2492:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2638, - "nodeType": "IfStatement", - "src": "2488:94:9", - "trueBody": { - "id": 2637, - "nodeType": "Block", - "src": "2514:68:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2630, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2543:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2629, - "name": "asMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2578, - "src": "2534:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" - } - }, - "id": 2631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2534:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 2628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2526:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2526:29:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2633, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2559:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2634, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2559:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2526:51:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2636, - "nodeType": "Return", - "src": "2519:58:9" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2640, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2604:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2639, - "name": "isCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2533, - "src": "2589:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 2641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2589:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2653, - "nodeType": "IfStatement", - "src": "2585:106:9", - "trueBody": { - "id": 2652, - "nodeType": "Block", - "src": "2617:74:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2645, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2652:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2644, - "name": "asCuratorGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2599, - "src": "2637:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint16)" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2637:26:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 2643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2629:7:9", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 2647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2629:35:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2648, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2601, - "src": "2668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "2668:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2629:57:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2605, - "id": 2651, - "nodeType": "Return", - "src": "2622:64:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2654, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2701:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 2605, - "id": 2655, - "nodeType": "Return", - "src": "2694:12:9" - } - ] - }, - "documentation": null, - "id": 2657, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isValid", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2601, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2311:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2600, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "2311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2310:36:9" - }, - "returnParameters": { - "id": 2605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2604, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2657, - "src": "2370:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2603, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2370:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2369:6:9" - }, - "scope": 2658, - "src": "2294:416:9", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2876, - "src": "1070:1642:9" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2659, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "2741:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 2660, - "nodeType": "InheritanceSpecifier", - "src": "2741:7:9" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2875, - "linearizedBaseContracts": [ - 2875, - 3402, - 3293 - ], - "name": "ChannelStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2664, - "mutability": "mutable", - "name": "channelById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2755:47:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "typeName": { - "id": 2663, - "keyType": { - "id": 2661, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2764:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "2755:27:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel)" - }, - "valueType": { - "contractScope": null, - "id": 2662, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "2774:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "71fff9c5", - "id": 2670, - "mutability": "mutable", - "name": "channelCountByOwnership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2864:76:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "typeName": { - "id": 2669, - "keyType": { - "id": 2665, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2873:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Mapping", - "src": "2864:45:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - }, - "valueType": { - "id": 2668, - "keyType": { - "id": 2666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2890:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2882:26:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - }, - "valueType": { - "id": 2667, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2901:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "f4606f00", - "id": 2673, - "mutability": "mutable", - "name": "nextChannelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2875, - "src": "2946:31:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2671, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2946:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 2672, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2976:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "id": 2676, - "libraryName": { - "contractScope": null, - "id": 2674, - "name": "SafeMath32", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2067, - "src": "2987:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath32_$2067", - "typeString": "library SafeMath32" - } - }, - "nodeType": "UsingForDirective", - "src": "2981:28:9", - "typeName": { - "id": 2675, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3002:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - }, - { - "id": 2679, - "libraryName": { - "contractScope": null, - "id": 2677, - "name": "SafeMath64", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2262, - "src": "3017:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath64_$2262", - "typeString": "library SafeMath64" - } - }, - "nodeType": "UsingForDirective", - "src": "3011:28:9", - "typeName": { - "id": 2678, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3032:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - { - "body": { - "id": 2695, - "nodeType": "Block", - "src": "3123:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2692, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3201:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2684, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3127:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2689, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2685, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3151:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2686, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3151:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2690, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2687, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2681, - "src": "3177:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2688, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3177:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3127:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "3127:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3127:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2694, - "nodeType": "ExpressionStatement", - "src": "3127:76:9" - } - ] - }, - "documentation": null, - "id": 2696, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_incCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2681, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2696, - "src": "3073:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2680, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3073:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3072:36:9" - }, - "returnParameters": { - "id": 2683, - "nodeType": "ParameterList", - "parameters": [], - "src": "3123:0:9" - }, - "scope": 2875, - "src": "3042:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2712, - "nodeType": "Block", - "src": "3291:84:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2709, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3369:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2701, - "name": "channelCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "3295:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_mapping$_t_uint256_$_t_uint32_$_$", - "typeString": "mapping(uint8 => mapping(uint256 => uint32))" - } - }, - "id": 2706, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2702, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3319:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2703, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownershipType", - "nodeType": "MemberAccess", - "referencedDeclaration": 2466, - "src": "3319:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:49:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_uint32_$", - "typeString": "mapping(uint256 => uint32)" - } - }, - "id": 2707, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2704, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2698, - "src": "3345:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 2705, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownerId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2468, - "src": "3345:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3295:69:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1917, - "src": "3295:73:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 2710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3295:76:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2711, - "nodeType": "ExpressionStatement", - "src": "3295:76:9" - } - ] - }, - "documentation": null, - "id": 2713, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_decCountByOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2699, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2698, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2713, - "src": "3241:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2697, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3241:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3240:36:9" - }, - "returnParameters": { - "id": 2700, - "nodeType": "ParameterList", - "parameters": [], - "src": "3291:0:9" - }, - "scope": 2875, - "src": "3210:165:9", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2756, - "nodeType": "Block", - "src": "3472:344:9", - "statements": [ - { - "assignments": [ - 2723 - ], - "declarations": [ - { - "constant": false, - "id": 2723, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3476:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2722, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3476:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2725, - "initialValue": { - "argumentTypes": null, - "id": 2724, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3495:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3476:32:9" - }, - { - "assignments": [ - 2727 - ], - "declarations": [ - { - "constant": false, - "id": 2727, - "mutability": "mutable", - "name": "newChannel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2756, - "src": "3533:26:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2726, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3533:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2731, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2728, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3562:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2730, - "indexExpression": { - "argumentTypes": null, - "id": 2729, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3574:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3562:22:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3533:51:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2732, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2734, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "3613:21:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3637:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3613:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2737, - "nodeType": "ExpressionStatement", - "src": "3613:28:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2742, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2738, - "name": "newChannel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "3645:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2740, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "3645:20:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2741, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "3645:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2743, - "nodeType": "ExpressionStatement", - "src": "3645:33:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2745, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "3757:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2744, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "3736:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3736:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2747, - "nodeType": "ExpressionStatement", - "src": "3736:32:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3790:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2748, - "name": "nextChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2673, - "src": "3772:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "3772:17:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3772:20:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 2753, - "nodeType": "ExpressionStatement", - "src": "3772:20:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2754, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2723, - "src": "3803:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2721, - "id": 2755, - "nodeType": "Return", - "src": "3796:16:9" - } - ] - }, - "documentation": null, - "functionSelector": "e35213d8", - "id": 2757, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2718, - "modifierName": { - "argumentTypes": null, - "id": 2717, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "3445:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3445:9:9" - } - ], - "name": "addChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2716, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2715, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3402:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2714, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "3402:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3401:36:9" - }, - "returnParameters": { - "id": 2721, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2720, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2757, - "src": "3464:6:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2719, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3464:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3463:8:9" - }, - "scope": 2875, - "src": "3381:435:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2778, - "nodeType": "Block", - "src": "3945:144:9", - "statements": [ - { - "assignments": [ - 2765 - ], - "declarations": [ - { - "constant": false, - "id": 2765, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2778, - "src": "3949:22:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2764, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3949:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2769, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2766, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "3974:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2768, - "indexExpression": { - "argumentTypes": null, - "id": 2767, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2759, - "src": "3986:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3974:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3949:48:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2771, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4009:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 2772, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2477, - "src": "4009:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e67206368616e6e656c", - "id": 2773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4029:37:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - }, - "value": "Trying to access unexisting channel" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eaada0c34a27cae86d18c4eaedbae4c0199818d6dfb779467cdede16adce3f29", - "typeString": "literal_string \"Trying to access unexisting channel\"" - } - ], - "id": 2770, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4001:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4001:66:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2775, - "nodeType": "ExpressionStatement", - "src": "4001:66:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2776, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2765, - "src": "4078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "functionReturnParameters": 2763, - "id": 2777, - "nodeType": "Return", - "src": "4071:14:9" - } - ] - }, - "documentation": null, - "functionSelector": "678d913d", - "id": 2779, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2759, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3889:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2758, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3889:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3888:19:9" - }, - "returnParameters": { - "id": 2763, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2762, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2779, - "src": "3929:14:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2761, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "3929:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3928:16:9" - }, - "scope": 2875, - "src": "3861:228:9", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2809, - "nodeType": "Block", - "src": "4193:170:9", - "statements": [ - { - "assignments": [ - 2789 - ], - "declarations": [ - { - "constant": false, - "id": 2789, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2809, - "src": "4197:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2788, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4197:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2793, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2790, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4223:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2792, - "indexExpression": { - "argumentTypes": null, - "id": 2791, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2781, - "src": "4235:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4223:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4197:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2795, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4271:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2796, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4271:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2794, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4250:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4250:39:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2798, - "nodeType": "ExpressionStatement", - "src": "4250:39:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2799, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "4293:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4293:17:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2802, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4313:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "src": "4293:30:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - }, - "id": 2804, - "nodeType": "ExpressionStatement", - "src": "4293:30:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2806, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2783, - "src": "4348:10:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 2805, - "name": "_incCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2696, - "src": "4327:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4327:32:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2808, - "nodeType": "ExpressionStatement", - "src": "4327:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "33364dca", - "id": 2810, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2786, - "modifierName": { - "argumentTypes": null, - "id": 2785, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4183:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4183:9:9" - } - ], - "name": "updateOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4121:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2780, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4121:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2783, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2810, - "src": "4140:34:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 2782, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "4140:16:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4120:55:9" - }, - "returnParameters": { - "id": 2787, - "nodeType": "ParameterList", - "parameters": [], - "src": "4193:0:9" - }, - "scope": 2875, - "src": "4095:268:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2831, - "nodeType": "Block", - "src": "4444:89:9", - "statements": [ - { - "assignments": [ - 2820 - ], - "declarations": [ - { - "constant": false, - "id": 2820, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2831, - "src": "4448:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2819, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4448:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2824, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2821, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4474:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2823, - "indexExpression": { - "argumentTypes": null, - "id": 2822, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2812, - "src": "4486:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4474:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4448:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2825, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "4501:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2827, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "4501:16:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2828, - "name": "_isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2814, - "src": "4520:9:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "4501:28:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2830, - "nodeType": "ExpressionStatement", - "src": "4501:28:9" - } - ] - }, - "documentation": null, - "functionSelector": "b5b9dc91", - "id": 2832, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2817, - "modifierName": { - "argumentTypes": null, - "id": 2816, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4434:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4434:9:9" - } - ], - "name": "updateStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2815, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2812, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4392:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2811, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4392:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2814, - "mutability": "mutable", - "name": "_isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2832, - "src": "4411:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2813, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4411:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4391:35:9" - }, - "returnParameters": { - "id": 2818, - "nodeType": "ParameterList", - "parameters": [], - "src": "4444:0:9" - }, - "scope": 2875, - "src": "4369:164:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2853, - "nodeType": "Block", - "src": "4626:93:9", - "statements": [ - { - "assignments": [ - 2842 - ], - "declarations": [ - { - "constant": false, - "id": 2842, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2853, - "src": "4630:23:9", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 2841, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "4630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2846, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2843, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4656:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2845, - "indexExpression": { - "argumentTypes": null, - "id": 2844, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2834, - "src": "4668:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4656:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4630:49:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2847, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "4683:7:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel storage pointer" - } - }, - "id": 2849, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "4683:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2850, - "name": "_videoLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2836, - "src": "4704:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4683:32:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 2852, - "nodeType": "ExpressionStatement", - "src": "4683:32:9" - } - ] - }, - "documentation": null, - "functionSelector": "64c8121f", - "id": 2854, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2839, - "modifierName": { - "argumentTypes": null, - "id": 2838, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4616:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4616:9:9" - } - ], - "name": "setChannelVideoLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2834, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4570:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2833, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4570:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2836, - "mutability": "mutable", - "name": "_videoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2854, - "src": "4589:18:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2835, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4589:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4569:39:9" - }, - "returnParameters": { - "id": 2840, - "nodeType": "ParameterList", - "parameters": [], - "src": "4626:0:9" - }, - "scope": 2875, - "src": "4539:180:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2873, - "nodeType": "Block", - "src": "4785:97:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2862, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4810:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2864, - "indexExpression": { - "argumentTypes": null, - "id": 2863, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4822:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4810:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "id": 2865, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "4810:33:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage", - "typeString": "struct ChannelOwnership storage ref" - } - ], - "id": 2861, - "name": "_decCountByOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4789:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (struct ChannelOwnership memory) view" - } - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4789:55:9", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2867, - "nodeType": "ExpressionStatement", - "src": "4789:55:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4848:30:9", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2868, - "name": "channelById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2664, - "src": "4855:11:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Channel_$2478_storage_$", - "typeString": "mapping(uint64 => struct Channel storage ref)" - } - }, - "id": 2870, - "indexExpression": { - "argumentTypes": null, - "id": 2869, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2856, - "src": "4867:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4855:23:9", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage", - "typeString": "struct Channel storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2872, - "nodeType": "ExpressionStatement", - "src": "4848:30:9" - } - ] - }, - "documentation": null, - "functionSelector": "614265ee", - "id": 2874, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2859, - "modifierName": { - "argumentTypes": null, - "id": 2858, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "4775:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4775:9:9" - } - ], - "name": "removeChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2857, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2856, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2874, - "src": "4749:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2855, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4749:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4748:19:9" - }, - "returnParameters": { - "id": 2860, - "nodeType": "ParameterList", - "parameters": [], - "src": "4785:0:9" - }, - "scope": 2875, - "src": "4725:157:9", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 2876, - "src": "2714:2170:9" - } - ], - "src": "0:4885:9" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.577Z", - "devdoc": { - "kind": "dev", - "methods": { - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/ContentDirectory.json b/smart-contracts/build/contracts/ContentDirectory.json deleted file mode 100644 index d180a93698..0000000000 --- a/smart-contracts/build/contracts/ContentDirectory.json +++ /dev/null @@ -1,39425 +0,0 @@ -{ - "contractName": "ContentDirectory", - "abi": [ - { - "inputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "_provider", - "type": "address" - }, - { - "internalType": "contract MembershipBridge", - "name": "_membershipBridge", - "type": "address" - }, - { - "internalType": "contract ContentWorkingGroupBridge", - "name": "_contentWorkingGroupBridge", - "type": "address" - }, - { - "internalType": "contract ChannelStorage", - "name": "_channelStorage", - "type": "address" - }, - { - "internalType": "contract VideoStorage", - "name": "_videoStorage", - "type": "address" - }, - { - "internalType": "contract CuratorGroupStorage", - "name": "_curatorGroupStorage", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "ownershipType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "ownerId", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct ChannelOwnership", - "name": "_ownership", - "type": "tuple" - }, - { - "indexed": false, - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "ChannelCreated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string", - "name": "_reason", - "type": "string" - } - ], - "name": "ChannelDeactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_newLimit", - "type": "uint64" - } - ], - "name": "ChannelInstancesLimitUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "ChannelMetadataUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "ownershipType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "ownerId", - "type": "uint256" - } - ], - "indexed": false, - "internalType": "struct ChannelOwnership", - "name": "_ownership", - "type": "tuple" - } - ], - "name": "ChannelOwnershipUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - } - ], - "name": "ChannelReactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "_newLimit", - "type": "uint64" - } - ], - "name": "ChannelVideoLimitUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "CuratorAddedToGroup", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - } - ], - "name": "CuratorRemovedFromAllGroups", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "CuratorRemovedFromGroup", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_logic", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_videoStorage", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_channelStorage", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_curatorGroupStorage", - "type": "address" - } - ], - "name": "Migrated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "VideoAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string", - "name": "_reason", - "type": "string" - } - ], - "name": "VideoDeactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "VideoMetadataUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - } - ], - "name": "VideoReactivated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - } - ], - "name": "VideoRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "_id", - "type": "uint64" - }, - { - "indexed": false, - "internalType": "string", - "name": "_reason", - "type": "string" - } - ], - "name": "VideoRemovedByCurator", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "_newLimit", - "type": "uint32" - } - ], - "name": "VideosPerChannelDefaultLimitUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint32", - "name": "_newLimit", - "type": "uint32" - } - ], - "name": "VideosPerChannelMaxLimitUpdated", - "type": "event" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "runtimeAddressProvider", - "outputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_newLimit", - "type": "uint64" - } - ], - "name": "setChannelInstancesLimit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_newLimit", - "type": "uint32" - } - ], - "name": "setVideosPerChannelDefaultLimit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "_newLimit", - "type": "uint32" - } - ], - "name": "setVideosPerChannelMaxLimit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "pause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "unpause", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_newLogic", - "type": "address" - }, - { - "internalType": "address", - "name": "_newVideoStorage", - "type": "address" - }, - { - "internalType": "address", - "name": "_newChannelStorage", - "type": "address" - }, - { - "internalType": "address", - "name": "_newCuratorGroupStorage", - "type": "address" - } - ], - "name": "migrate", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "components": [ - { - "internalType": "uint8", - "name": "ownershipType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "ownerId", - "type": "uint256" - } - ], - "internalType": "struct ChannelOwnership", - "name": "_ownership", - "type": "tuple" - }, - { - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "createChannel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "updateChannelMetadata", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "components": [ - { - "internalType": "uint8", - "name": "ownershipType", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "ownerId", - "type": "uint256" - } - ], - "internalType": "struct ChannelOwnership", - "name": "_ownership", - "type": "tuple" - } - ], - "name": "updateChannelOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "internalType": "uint32", - "name": "_limit", - "type": "uint32" - } - ], - "name": "updateChannelVideoLimit", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "internalType": "string", - "name": "_reason", - "type": "string" - } - ], - "name": "deactivateChannel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - } - ], - "name": "activateChannel", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - }, - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "addCuratorToGroup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - }, - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "removeCuratorFromGroup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - } - ], - "name": "removeCuratorFromAllGroups", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "removeCuratorGroup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - }, - { - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "addVideo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - }, - { - "internalType": "string[2][]", - "name": "_metadata", - "type": "string[2][]" - } - ], - "name": "updateVideoMetadata", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - } - ], - "name": "removeVideo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - }, - { - "internalType": "string", - "name": "_reason", - "type": "string" - } - ], - "name": "removeVideoAsCurator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - }, - { - "internalType": "string", - "name": "_reason", - "type": "string" - } - ], - "name": "deactivateVideo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - } - ], - "name": "activateVideo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_provider\",\"type\":\"address\"},{\"internalType\":\"contract MembershipBridge\",\"name\":\"_membershipBridge\",\"type\":\"address\"},{\"internalType\":\"contract ContentWorkingGroupBridge\",\"name\":\"_contentWorkingGroupBridge\",\"type\":\"address\"},{\"internalType\":\"contract ChannelStorage\",\"name\":\"_channelStorage\",\"type\":\"address\"},{\"internalType\":\"contract VideoStorage\",\"name\":\"_videoStorage\",\"type\":\"address\"},{\"internalType\":\"contract CuratorGroupStorage\",\"name\":\"_curatorGroupStorage\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"ChannelCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"ChannelDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_newLimit\",\"type\":\"uint64\"}],\"name\":\"ChannelInstancesLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"ChannelMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"ChannelOwnershipUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"}],\"name\":\"ChannelReactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_newLimit\",\"type\":\"uint64\"}],\"name\":\"ChannelVideoLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"CuratorAddedToGroup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"CuratorRemovedFromAllGroups\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"CuratorRemovedFromGroup\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_logic\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_videoStorage\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_channelStorage\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_curatorGroupStorage\",\"type\":\"address\"}],\"name\":\"Migrated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"VideoAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"VideoDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"VideoMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"}],\"name\":\"VideoReactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"}],\"name\":\"VideoRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"_id\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"VideoRemovedByCurator\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"VideosPerChannelDefaultLimitUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"VideosPerChannelMaxLimitUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"activateChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"activateVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"addCuratorToGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"addVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"createChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"deactivateChannel\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"deactivateVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newLogic\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newVideoStorage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newChannelStorage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newCuratorGroupStorage\",\"type\":\"address\"}],\"name\":\"migrate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"removeCuratorFromAllGroups\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeCuratorFromGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeCuratorGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"removeVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"_reason\",\"type\":\"string\"}],\"name\":\"removeVideoAsCurator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_newLimit\",\"type\":\"uint64\"}],\"name\":\"setChannelInstancesLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"setVideosPerChannelDefaultLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_newLimit\",\"type\":\"uint32\"}],\"name\":\"setVideosPerChannelMaxLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"updateChannelMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"uint8\",\"name\":\"ownershipType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"ownerId\",\"type\":\"uint256\"}],\"internalType\":\"struct ChannelOwnership\",\"name\":\"_ownership\",\"type\":\"tuple\"}],\"name\":\"updateChannelOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"_limit\",\"type\":\"uint32\"}],\"name\":\"updateChannelVideoLimit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"string[2][]\",\"name\":\"_metadata\",\"type\":\"string[2][]\"}],\"name\":\"updateVideoMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol\":\"ContentDirectory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol\":{\"keccak256\":\"0xc705073b41e20b312a306aec51553bfda071dbc9822f3f82e8d4b9931f3cab3a\",\"urls\":[\"bzz-raw://eaab433d48915a3bda0c0414eb8eccb5c6db118edcd81a390f83043ee84e49b3\",\"dweb:/ipfs/QmbtTPj7pG1je2DjDtakdSej33iYXj7NYYmjXA7EKY3CiK\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol\":{\"keccak256\":\"0xbd70b3b036373148b763dc3cd19c8653dbaffac05a0668a410cc6cc4875a552b\",\"urls\":[\"bzz-raw://714cee590168f00572e43cff52d093268f1b09e4055a00c4484dee1f73db2839\",\"dweb:/ipfs/QmUHxh9dkmaZsgho11Hdqz87RgxWXV8UjtEDDsrmNDFwD4\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol\":{\"keccak256\":\"0xb585e161910672e5fd7a59f006ec402dffa73b550fd9af6690e3b7260902f1b0\",\"urls\":[\"bzz-raw://a63ec6822047f53e2b4cb9b6135aedc1263580e7d2a8e65b7953f6af0ef1fa6f\",\"dweb:/ipfs/QmdGrDoPWTHfpu74wHTGtfHLEbKmmtmTUuS1oHgwsg5ru2\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":{\"keccak256\":\"0x3144434af3449276d1a4e92e7a0dd5e213df54bdff1c8d7de210c6afddf2a4ff\",\"urls\":[\"bzz-raw://a04571ba65a5111dca479803ec8582acf04e7f074db82b9a83610e5cc4787dcb\",\"dweb:/ipfs/QmXyfBJxHsFhhbZd7R2zwQWrRvMWFmNoTqZALTWBfLj3uJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":{\"keccak256\":\"0xad7031eb97c64c9dff0b4db53835514e46c79d710ab873cdd2d36a5fd20b8c1c\",\"urls\":[\"bzz-raw://866dcdd27d00364da1e05739d9d4b586227a66d8bc4a61f4638064774b74e9d2\",\"dweb:/ipfs/QmUbC1VsPf4Cj5xTqMiHcNBo1WLPcmmczp6M3WFAb4cpap\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol\":{\"keccak256\":\"0x2c0b74ba427192750d9ae3532ca9a5ca8bf55c78d42b31b5fd884c8446e236b7\",\"urls\":[\"bzz-raw://8de586eee05bb472e60c7f6dfde1deabe8d88b911bb24a25b835423b968e5853\",\"dweb:/ipfs/QmPxGyc41DfVWHd2dACS65HuAays534bFcPivqBSJ7ojgJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol\":{\"keccak256\":\"0x4835b0346a6f5375e7fe8b0241222cf4157f472bd9485c2b4c478dfc29f79b99\",\"urls\":[\"bzz-raw://0145ad367384248243b8c2b4e536a5c205d1ff2e99288af28aa61106b7b142dd\",\"dweb:/ipfs/Qmd7833Q2LyZ72pYjLx4VhCp1eGyxqDT1HXb8pxtfS5SmT\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol\":{\"keccak256\":\"0xeaa1d2609e979107c346e8eb52b83e91732fc79478223c32ee165f9a9c2af6a6\",\"urls\":[\"bzz-raw://60135b3b62c8841761048ae81b4adf4e60f237e4498c9bdc391dde6cfaad689f\",\"dweb:/ipfs/QmaRQsMewgAEkdYxHgm5c8FXuNomwr6p9LAxiGBTEpUn5u\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/types.sol\":{\"keccak256\":\"0x72697f13191393f77065f0a1ddf0f645ee5da02baeb2576070c4491b1903b997\",\"urls\":[\"bzz-raw://67adf20052dcff0fdc933fe7bffa1e245865ca7d9907afbf5eb6888bb1001f21\",\"dweb:/ipfs/QmUxa6DtgJpGi5HF8V8hoB2SHVEjKtte5PCJuQ1Fnh9gX8\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", - "bytecode": "0x608060405260058054600160a01b600160e01b031916600560a11b176001600160e01b0316600560e01b179055600680546103e863ffffffff199091161790553480156200004c57600080fd5b5060405162004019380380620040198339810160408190526200006f91620000e9565b600080546001600160a01b03199081166001600160a01b039889161760ff60a01b191690915560048054821696881696909617909555600580548616948716949094179093556001805485169286169290921790915560028054841691851691909117905560038054909216921691909117905562000195565b60008060008060008060c0878903121562000102578182fd5b86516200010f816200017c565b602088015190965062000122816200017c565b604088015190955062000135816200017c565b606088015190945062000148816200017c565b60808801519093506200015b816200017c565b60a08801519092506200016e816200017c565b809150509295509295509295565b6001600160a01b03811681146200019257600080fd5b50565b613e7480620001a56000396000f3fe608060405234801561001057600080fd5b50600436106101285760003560e01c80630333f5361461012d5780630d00a78f1461014257806311ff105e1461015557806313c6e4ed146101685780632ca880d41461017b5780633f4ba83a1461019957806344ff3e81146101a15780634d70d709146101b45780635c975abb146101c757806372c95f83146101dc57806375ef1f1e146101ef5780638456cb59146102025780638edaea6e1461020a57806396cbd61b1461021d5780639a055bbf146102305780639da9f33514610243578063a51a83f214610256578063ae90430a14610269578063b94c9c9d1461027c578063be16b3531461028f578063c251e585146102a2578063d8b457fc146102b5578063e30ac74e146102c8578063eb1762d7146102db575b600080fd5b61014061013b366004613301565b6102ee565b005b61014061015036600461318e565b6104a3565b6101406101633660046131e2565b6106af565b61014061017636600461301d565b6108cd565b610183610ab2565b604051610190919061340a565b60405180910390f35b610140610ac1565b6101406101af366004613251565b610b7f565b6101406101c236600461321a565b610d36565b6101cf610fdf565b604051610190919061346b565b6101406101ea3660046131e2565b610fef565b6101406101fd3660046131e2565b611102565b6101406112a0565b610140610218366004613251565b61135c565b61014061022b3660046131e2565b611586565b61014061023e3660046131e2565b611702565b6101406102513660046131aa565b611911565b610140610264366004613251565b611a3d565b6101406102773660046131aa565b611c7e565b61014061028a36600461321a565b611dab565b61014061029d3660046132c9565b611f8f565b6101406102b036600461321a565b6121b2565b6101406102c33660046132c9565b61230c565b6101406102d6366004612fa2565b6125c7565b6101406102e9366004613294565b612763565b600054600160a01b900460ff16156103215760405162461bcd60e51b81526004016103189061372f565b60405180910390fd5b610329612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610359908690600401613c67565b60a06040518083038186803b15801561037157600080fd5b505afa158015610385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a99190613069565b90506103b9338260000151612930565b6103d55760405162461bcd60e51b815260040161031890613b1a565b60065463ffffffff90811690831611156104015760405162461bcd60e51b8152600401610318906137f2565b6001546040516364c8121f60e01b81526001600160a01b03909116906364c8121f906104339086908690600401613d58565b600060405180830381600087803b15801561044d57600080fd5b505af1158015610461573d6000803e3d6000fd5b505050507f352e5a9ddfcadef33ec611971e6cabd1b96b665c0c773ab0d2f9aa14d3b484378383604051610496929190613d58565b60405180910390a1505050565b600054600160a01b900460ff16156104cd5760405162461bcd60e51b81526004016103189061372f565b6104d63361295f565b6104f25760405162461bcd60e51b815260040161031890613ab4565b6104fa612ddb565b600354604051631003065b60e21b81526001600160a01b039091169063400c196c9061052a908590600401613c47565b604080518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057991906130fa565b9050806020015163ffffffff166000146105a55760405162461bcd60e51b815260040161031890613b41565b6001546001600160a01b03166371fff9c56002846040518363ffffffff1660e01b81526004016105d6929190613da3565b60206040518083038186803b1580156105ee57600080fd5b505afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062691906131c6565b63ffffffff16156106495760405162461bcd60e51b81526004016103189061369d565b600354604051631e5edb8160e11b81526001600160a01b0390911690633cbdb70290610679908590600401613c47565b600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505050505050565b600054600160a01b900460ff16156106d95760405162461bcd60e51b81526004016103189061372f565b6106e1612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390610711908590600401613c67565b60606040518083038186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610761919061313b565b905061076b612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161079b91600401613c67565b60a06040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190613069565b90506107fb338260000151612930565b6108175760405162461bcd60e51b815260040161031890613b1a565b8160200151156108395760405162461bcd60e51b81526004016103189061366f565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc919061086c908690600190600401613ca7565b600060405180830381600087803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050507f2d8dcea899443d25755914a7b607b6f35803f7021d4bbd6b3751703ef93ad0f9836040516104969190613c67565b600054600160a01b900460ff16156108f75760405162461bcd60e51b81526004016103189061372f565b610900826129e8565b61091c5760405162461bcd60e51b815260040161031890613611565b6005546001546040805162f4606f60e81b81529051600160a01b9093046001600160401b0316926001600160a01b039092169163f4606f0091600480820192602092909190829003018186803b15801561097557600080fd5b505afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad91906131fe565b6001600160401b031611156109d45760405162461bcd60e51b8152600401610318906135da565b6109de3383612a74565b6109fa5760405162461bcd60e51b8152600401610318906134a4565b600154604051631c6a427b60e31b81526000916001600160a01b03169063e35213d890610a2b908690600401613c39565b602060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d91906131fe565b90507f8471ac76eed4fd351411fc932eab0d50749b8c1a424687616ce8969d94f290ca81848460405161049693929190613d03565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0d57600080fd5b505afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190612f7f565b6001600160a01b0316336001600160a01b031614610b755760405162461bcd60e51b8152600401610318906138a4565b610b7d612b85565b565b600054600160a01b900460ff1615610ba95760405162461bcd60e51b81526004016103189061372f565b610bb1612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610be1908690600401613c67565b60a06040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c319190613069565b9050610c41338260000151612930565b610c5d5760405162461bcd60e51b815260040161031890613b1a565b8060200151610c7e5760405162461bcd60e51b815260040161031890613a7f565b600282511015610ca05760405162461bcd60e51b8152600401610318906134ea565b60015460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190610cd3908690600090600401613ca7565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b505050507fac1583ef0ca4644b771be9cff6935d3533d0adfccd12b257ea34593a9405a8748383604051610496929190613cc2565b600054600160a01b900460ff1615610d605760405162461bcd60e51b81526004016103189061372f565b610d68612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610d98908690600401613c67565b60a06040518083038186803b158015610db057600080fd5b505afa158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190613069565b9050610df8338260000151612a74565b80610e0e5750610e0e3382600001516001612bfb565b610e2a5760405162461bcd60e51b815260040161031890613b1a565b8060200151610e4b5760405162461bcd60e51b815260040161031890613a30565b6000816040015163ffffffff1660001415610e7557600554600160e01b900463ffffffff16610e7b565b81604001515b600254604051628294c160e11b815291925063ffffffff8316916001600160a01b0390911690630105298290610eb5908890600401613c67565b60206040518083038186803b158015610ecd57600080fd5b505afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0591906131fe565b6001600160401b031610610f1857600080fd5b6002546040516313b1aa3f60e31b81526000916001600160a01b031690639d8d51f890610f49908890600401613c67565b602060405180830381600087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b91906131fe565b90507fe410e3564249423983b096bc44efa22aca4f7ba32f9aa07dca10910cb859689b818686604051610fd093929190613d77565b60405180910390a15050505050565b600054600160a01b900460ff1690565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190612f7f565b6001600160a01b0316336001600160a01b0316146110a35760405162461bcd60e51b8152600401610318906138a4565b60058054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517fa234354155278a122a79de09e47c7bb0793b5c6f69d0870a46f758e50a00446f906110f7908390613c67565b60405180910390a150565b600054600160a01b900460ff161561112c5760405162461bcd60e51b81526004016103189061372f565b611134612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90611164908590600401613c67565b60a06040518083038186803b15801561117c57600080fd5b505afa158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b49190613069565b90506111c4338260000151612930565b6111e05760405162461bcd60e51b815260040161031890613b1a565b8060200151156112025760405162461bcd60e51b815260040161031890613aea565b6001805460405163b5b9dc9160e01b81526001600160a01b039091169163b5b9dc9191611233918691600401613ca7565b600060405180830381600087803b15801561124d57600080fd5b505af1158015611261573d6000803e3d6000fd5b505050507f46dd4cb3caf3352a6088116e52d560593e4b8720047256bc5738237dec1fe387826040516112949190613c67565b60405180910390a15050565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b1580156112ec57600080fd5b505afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190612f7f565b6001600160a01b0316336001600160a01b0316146113545760405162461bcd60e51b8152600401610318906138a4565b610b7d612c04565b600054600160a01b900460ff16156113865760405162461bcd60e51b81526004016103189061372f565b61138e612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a1063906113be908690600401613c67565b60606040518083038186803b1580156113d657600080fd5b505afa1580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e919061313b565b9050611418612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161144891600401613c67565b60a06040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190613069565b90506114a8338260000151612930565b6114c45760405162461bcd60e51b815260040161031890613b1a565b60028351116114e55760405162461bcd60e51b8152600401610318906134ea565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf90611515908790600401613c67565b600060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b505050507f4fa4eab72679f15f58e711bb7a122ff036c272d75aa3857b401782af2fd8ea438484604051611578929190613cc2565b60405180910390a150505050565b600054600160a01b900460ff16156115b05760405162461bcd60e51b81526004016103189061372f565b6115b93361295f565b6115d55760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b0390911690637106695690611605908490600401613c67565b60206040518083038186803b15801561161d57600080fd5b505afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612ffd565b6116715760405162461bcd60e51b815260040161031890613759565b6003546040516396cbd61b60e01b81526001600160a01b03909116906396cbd61b906116a1908490600401613c67565b600060405180830381600087803b1580156116bb57600080fd5b505af11580156116cf573d6000803e3d6000fd5b505050507f97c2ae95ac83b91a5a298dab10c65cd756b98181999089e6826e65fbdac20926816040516110f79190613c67565b600054600160a01b900460ff161561172c5760405162461bcd60e51b81526004016103189061372f565b611734612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611764908590600401613c67565b60606040518083038186803b15801561177c57600080fd5b505afa158015611790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b4919061313b565b90506117be612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d916117ee91600401613c67565b60a06040518083038186803b15801561180657600080fd5b505afa15801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190613069565b905061184e338260000151612a74565b8061186457506118643382600001516003612bfb565b6118805760405162461bcd60e51b815260040161031890613b1a565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf906118b0908690600401613c67565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050507f8f75fc93671c07b9e40b8bbe17e3a620511136319755e9481845aafca8dc1aa1836040516104969190613c67565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561195d57600080fd5b505afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190612f7f565b6001600160a01b0316336001600160a01b0316146119c55760405162461bcd60e51b8152600401610318906138a4565b60055463ffffffff600160e01b909104811690821610156119f85760405162461bcd60e51b8152600401610318906139b4565b6006805463ffffffff191663ffffffff83161790556040517f6a101addaeb36f0540c39e9da515b78ec6a64a7afc1353ad453cac27c20019e2906110f7908390613c56565b600054600160a01b900460ff1615611a675760405162461bcd60e51b81526004016103189061372f565b611a6f612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611a9f908690600401613c67565b60606040518083038186803b158015611ab757600080fd5b505afa158015611acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aef919061313b565b9050611af9612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611b2991600401613c67565b60a06040518083038186803b158015611b4157600080fd5b505afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b799190613069565b9050611b89338260000151612930565b611ba55760405162461bcd60e51b815260040161031890613b1a565b8160200151611bc65760405162461bcd60e51b81526004016103189061363c565b600283511015611be85760405162461bcd60e51b8152600401610318906134ea565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190611c1b908790600090600401613ca7565b600060405180830381600087803b158015611c3557600080fd5b505af1158015611c49573d6000803e3d6000fd5b505050507fe4a6189a3a227169fa9e9a63e2a0fb3eed9e24a6fcfb924b0aad2e383c38b6e18484604051611578929190613cc2565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015611cca57600080fd5b505afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d029190612f7f565b6001600160a01b0316336001600160a01b031614611d325760405162461bcd60e51b8152600401610318906138a4565b60065463ffffffff9081169082161115611d5e5760405162461bcd60e51b815260040161031890613b85565b600580546001600160e01b0316600160e01b63ffffffff8416021790556040517f98963f0532a697d7898270c055c3b680774afb0ef5c1dbfeac5667b93277a429906110f7908390613c56565b600054600160a01b900460ff1615611dd55760405162461bcd60e51b81526004016103189061372f565b611ddd612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611e0d908690600401613c67565b60606040518083038186803b158015611e2557600080fd5b505afa158015611e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5d919061313b565b9050611e67612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611e9791600401613c67565b60a06040518083038186803b158015611eaf57600080fd5b505afa158015611ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee79190613069565b9050611ef7338260000151612a74565b80611f0d5750611f0d3382600001516002612bfb565b80611f215750611f21338260000151612930565b611f3d5760405162461bcd60e51b815260040161031890613b1a565b8060200151611f5e5760405162461bcd60e51b815260040161031890613849565b7f6ae15f9316c5fc53e8e2372fd9e88f97030a66b96d398650f6ba0399ac0d91b48484604051611578929190613c7b565b600054600160a01b900460ff1615611fb95760405162461bcd60e51b81526004016103189061372f565b611fc23361295f565b611fde5760405162461bcd60e51b815260040161031890613ab4565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e9061200e908490600401613c47565b60206040518083038186803b15801561202657600080fd5b505afa15801561203a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205e9190612ffd565b61207a5760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906120ac9085908590600401613d3b565b60206040518083038186803b1580156120c457600080fd5b505afa1580156120d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fc9190612ffd565b151560011461211d5760405162461bcd60e51b815260040161031890613bf6565b60035460405163be16b35360e01b81526001600160a01b039091169063be16b3539061214f9085908590600401613d3b565b600060405180830381600087803b15801561216957600080fd5b505af115801561217d573d6000803e3d6000fd5b505050507f509b6f4e4a643a51ebb76e1f4d63753e23c00161d81385e3d92122aa081070998282604051611294929190613d3b565b600054600160a01b900460ff16156121dc5760405162461bcd60e51b81526004016103189061372f565b6121e4612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90612214908690600401613c67565b60a06040518083038186803b15801561222c57600080fd5b505afa158015612240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122649190613069565b9050612274338260000151612a74565b806122885750612288338260000151612930565b8061229e575061229e3382600001516000612bfb565b6122ba5760405162461bcd60e51b815260040161031890613b1a565b80602001516122db5760405162461bcd60e51b81526004016103189061378c565b7f123e1f2e117cd190e1cfbe2a43d5f0247033690e4efb749b6e2b8cca75e0d3668383604051610496929190613c7b565b600054600160a01b900460ff16156123365760405162461bcd60e51b81526004016103189061372f565b61233f3361295f565b61235b5760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b039091169063710669569061238b908590600401613c67565b60206040518083038186803b1580156123a357600080fd5b505afa1580156123b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123db9190612ffd565b6123f75760405162461bcd60e51b815260040161031890613759565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e90612427908490600401613c47565b60206040518083038186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124779190612ffd565b6124935760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906124c59085908590600401613d3b565b60206040518083038186803b1580156124dd57600080fd5b505afa1580156124f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125159190612ffd565b156125325760405162461bcd60e51b8152600401610318906138fe565b60035460405163362d15ff60e21b81526001600160a01b039091169063d8b457fc906125649085908590600401613d3b565b600060405180830381600087803b15801561257e57600080fd5b505af1158015612592573d6000803e3d6000fd5b505050507f999834ed6c0c90437cd70656e57e667804b476062c06bf59612ee7e6737d007a8282604051611294929190613d3b565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561261357600080fd5b505afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190612f7f565b6001600160a01b0316336001600160a01b03161461267b5760405162461bcd60e51b8152600401610318906138a4565b600254612692906001600160a01b03168486612c6a565b6001546126a9906001600160a01b03168386612c6a565b6003546126c0906001600160a01b03168286612c6a565b7f415f0af8f5b6deaac4fa61971b0153fa777da7c922b5f0031947b017bd0658d1846001600160a01b038516156126f75784612704565b6002546001600160a01b03165b6001600160a01b038516156127195784612726565b6001546001600160a01b03165b6001600160a01b0385161561273b5784612748565b6003546001600160a01b03165b604051612758949392919061341e565b60405180910390a133ff5b600054600160a01b900460ff161561278d5760405162461bcd60e51b81526004016103189061372f565b612795612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d906127c5908690600401613c67565b60a06040518083038186803b1580156127dd57600080fd5b505afa1580156127f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128159190613069565b9050612825338260000151612a74565b6128415760405162461bcd60e51b815260040161031890613985565b61284a826129e8565b6128665760405162461bcd60e51b815260040161031890613611565b61286f82612cd0565b158061287f575061287f3361295f565b61289b5760405162461bcd60e51b8152600401610318906136e1565b60015460405163199b26e560e11b81526001600160a01b03909116906333364dca906128cd9086908690600401613ce6565b600060405180830381600087803b1580156128e757600080fd5b505af11580156128fb573d6000803e3d6000fd5b505050507f2e95886722a90513837fce57d448fdad9e03cad92ffa72904ba909ccd96e24708383604051610496929190613ce6565b600061293b82612cd0565b61294d5761294883612ce8565b612956565b6129568361295f565b90505b92915050565b600554604051631ec2232760e01b81526000916001600160a01b031690631ec223279061299090859060040161340a565b60206040518083038186803b1580156129a857600080fd5b505afa1580156129bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e09190612ffd565b90505b919050565b60006129f382612d1b565b15612a17578160200151612a0683612d23565b6001600160a01b03161490506129e3565b612a2082612d52565b15612a44578160200151612a3383612d5b565b6001600160401b03161490506129e3565b612a4d82612cd0565b15612a6c578160200151612a6083612d82565b61ffff161490506129e3565b506000919050565b6000612a7f82612d1b565b15612aa857612a8d82612d23565b6001600160a01b0316836001600160a01b0316149050612959565b612ab182612d52565b15612b45576004546001600160a01b0316632746272984612ad185612d5b565b6040518363ffffffff1660e01b8152600401612aee929190613449565b60206040518083038186803b158015612b0657600080fd5b505afa158015612b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3e9190612ffd565b9050612959565b612b4e82612cd0565b15612b8357600554604051631ec2232760e01b81526001600160a01b0390911690631ec2232790612aee90339060040161340a565bfe5b600054600160a01b900460ff16612bae5760405162461bcd60e51b815260040161031890613476565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612be4612da9565b604051612bf1919061340a565b60405180910390a1565b60009392505050565b600054600160a01b900460ff1615612c2e5760405162461bcd60e51b81526004016103189061372f565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612be4612da9565b60405163f2fde38b60e01b815283906001600160a01b0382169063f2fde38b90612c9890859060040161340a565b600060405180830381600087803b158015612cb257600080fd5b505af1158015612cc6573d6000803e3d6000fd5b5050505050505050565b600060025b60ff16826000015160ff16149050919050565b600554604051630e830b8760e41b81526000916001600160a01b03169063e830b870906129909085908590600401613449565b600080612cd5565b6000612d2e82612d1b565b612d4a5760405162461bcd60e51b815260040161031890613935565b506020015190565b60006001612cd5565b6000612d6682612d52565b612d4a5760405162461bcd60e51b815260040161031890613539565b6000612d8d82612cd0565b612d4a5760405162461bcd60e51b815260040161031890613587565b3390565b6040518060800160405280612dc0612ddb565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112612e22578081fd5b81356001600160401b03811115612e37578182fd5b6020612e468182840201613dba565b828152925080830184820160005b84811015612ec0578135870188603f820112612e6f57600080fd5b612e796040613dba565b8086830160005b6002811015612eaa57612e988d8a8435880101612edb565b84529288019290880190600101612e80565b5050855250509183019190830190600101612e54565b505050505092915050565b8051801515811461295957600080fd5b600082601f830112612eeb578081fd5b81356001600160401b03811115612f00578182fd5b612f13601f8201601f1916602001613dba565b9150808252836020828501011115612f2a57600080fd5b8060208401602084013760009082016020015292915050565b600060408284031215612f54578081fd5b612f5e6040613dba565b90508135612f6b81613e2f565b808252506020820135602082015292915050565b600060208284031215612f90578081fd5b8151612f9b81613de0565b9392505050565b60008060008060808587031215612fb7578283fd5b8435612fc281613de0565b93506020850135612fd281613de0565b92506040850135612fe281613de0565b91506060850135612ff281613de0565b939692955090935050565b60006020828403121561300e578081fd5b81518015158114612f9b578182fd5b6000806060838503121561302f578182fd5b6130398484612f43565b915060408301356001600160401b03811115613053578182fd5b61305f85828601612e12565b9150509250929050565b600081830360a081121561307b578182fd5b6130856080613dba565b6040821215613092578283fd5b61309c6040613dba565b915083516130a981613e2f565b8252602084810151908301528181526130c58560408601612ecb565b6020820152606084015191506130da82613e08565b8160408201526130ed8560808601612ecb565b6060820152949350505050565b60006040828403121561310b578081fd5b6131156040613dba565b61311f8484612ecb565b8152602083015161312f81613e08565b60208201529392505050565b60006060828403121561314c578081fd5b6131566060613dba565b825161316181613e1a565b81526131708460208501612ecb565b60208201526131828460408501612ecb565b60408201529392505050565b60006020828403121561319f578081fd5b8135612f9b81613df8565b6000602082840312156131bb578081fd5b8135612f9b81613e08565b6000602082840312156131d7578081fd5b8151612f9b81613e08565b6000602082840312156131f3578081fd5b8135612f9b81613e1a565b60006020828403121561320f578081fd5b8151612f9b81613e1a565b6000806040838503121561322c578182fd5b823561323781613e1a565b915060208301356001600160401b03811115613053578182fd5b60008060408385031215613263578182fd5b823561326e81613e1a565b915060208301356001600160401b03811115613288578182fd5b61305f85828601612edb565b600080606083850312156132a6578182fd5b82356132b181613e1a565b91506132c08460208501612f43565b90509250929050565b600080604083850312156132db578182fd5b82356132e681613e1a565b915060208301356132f681613df8565b809150509250929050565b60008060408385031215613313578182fd5b823561331e81613e1a565b915060208301356132f681613e08565b6000815180845260208085018081965082840281019150828601855b858110156133a057828403895281518460408101895b600281101561338b5787820383526133798285516133ad565b93890193928901929150600101613360565b509a87019a955050509084019060010161334a565b5091979650505050505050565b60008151808452815b818110156133d2576020818501810151868301820152016133b6565b818111156133e35782602083870101525b50601f01601f19169290920160200192915050565b805160ff168252602090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b039290921682526001600160401b0316602082015260400190565b901515815260200190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4163636573732064656e69656420756e6465722070726f7669646564206f776e60408201526506572736869760d41b606082015260800190565b6020808252602f908201527f54686520726561736f6e2073686f756c64206265206174206c6561737420322060408201526e63686172616374657273206c6f6e6760881b606082015260800190565b6020808252602e908201527f61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d62657220436860408201526d0616e6e656c4f776e6572736869760941b606082015260800190565b60208082526033908201527f617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f60408201527207570204368616e6e656c4f776e65727368697606c1b606082015260800190565b6020808252601f908201527f4368616e6e656c20696e7374616e636573206c696d6974207265616368656400604082015260600190565b6020808252601190820152700496e76616c6964206f776e65727368697607c1b604082015260600190565b602080825260199082015278159a59195bc8185b1c9958591e4819195858dd1a5d985d1959603a1b604082015260600190565b602080825260149082015273566964656f20616c72656164792061637469766560601b604082015260600190565b60208082526024908201527f47726f75702773206368616e6e656c7320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252602e908201527f4f6e6c79206c6561642063616e20757064617465206f776e657273686970207460408201526d06f2043757261746f7247726f75760941b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526019908201527810dd5c985d1bdc881a59081b9bdd081c9958dbd9db9a5e9959603a1b604082015260600190565b6020808252601b908201527a151a1a5cc818da185b9b995b081a5cc819195858dd1a5d985d1959602a1b604082015260600190565b60208082526017908201527611dc9bdd5c081a59081b9bdd081c9958dbd9db9a5e9959604a1b604082015260600190565b60208082526037908201527f546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766040820152761a59195bdcd4195c90da185b9b995b13585e131a5b5a5d604a1b606082015260800190565b6020808252603b908201527f43616e6e6f742075706461746520766964656f206d657461646174612077686560408201527a6e20746865206368616e6e656c206973206e6f742061637469766560281b606082015260800190565b6020808252603a908201527f546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746040820152796564207468726f7567682070726f706f73616c2073797374656d60301b606082015260800190565b6020808252601f908201527f43757261746f7220697320616c726561647920696e207468652067726f757000604082015260600190565b60208082526030908201527f6173416464726573732063616c6c6564206f6e206e6f6e2d616464726573732060408201526f04368616e6e656c4f776e6572736869760841b606082015260800190565b60208082526015908201527413dddb995c881858d8d95cdcc81c995c5d5a5c9959605a1b604082015260600190565b60208082526056908201527f766964656f735065724368616e6e656c4d61784c696d6974206d75737420626560408201527f2067726561746572207468616e206f7220657175616c20746f20766964656f7360608201527514195c90da185b9b995b111959985d5b1d131a5b5a5d60521b608082015260a00190565b6020808252602f908201527f43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746860408201526e61742069736e27742061637469766560881b606082015260800190565b6020808252601b908201527a10da185b9b995b08185b1c9958591e4819195858dd1a5d985d1959602a1b604082015260600190565b6020808252601c908201527b416374697665206c656164206163636573732072657175697265642160201b604082015260600190565b6020808252601690820152754368616e6e656c20616c72656164792061637469766560501b604082015260600190565b6020808252600d908201526c1058d8d95cdcc819195b9a5959609a1b604082015260600190565b60208082526024908201527f47726f757027732063757261746f727320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252604b908201527f766964656f735065724368616e6e656c44656661756c744c696d69742063616e60408201527f6e6f74206578636565642063757272656e7420766964656f735065724368616e60608201526a1b995b13585e131a5b5a5d60aa1b608082015260a00190565b60208082526023908201527f43757261746f7220697320616c7265616479206e6f7420696e2074686520677260408201526206f75760ec1b606082015260800190565b6040810161295982846133f8565b61ffff91909116815260200190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0383168152604060208201819052600090613c9f9083018461332e565b949350505050565b6001600160401b039290921682521515602082015260400190565b6001600160401b0383168152604060208201819052600090613c9f908301846133ad565b6001600160401b038316815260608101612f9b60208301846133f8565b6001600160401b03841681526000613d1e60208301856133f8565b60806060830152613d32608083018461332e565b95945050505050565b6001600160401b0392909216825261ffff16602082015260400190565b6001600160401b0392909216825263ffffffff16602082015260400190565b6001600160401b03848116825283166020820152606060408201819052600090613d329083018461332e565b60ff92909216825261ffff16602082015260400190565b6040518181016001600160401b0381118282101715613dd857600080fd5b604052919050565b6001600160a01b0381168114613df557600080fd5b50565b61ffff81168114613df557600080fd5b63ffffffff81168114613df557600080fd5b6001600160401b0381168114613df557600080fd5b60ff81168114613df557600080fdfea2646970667358221220c5a70b25fd66d21cff818f02e8dcf2e14dbf7d28340cdbf94e9e0f399e51f0bc64736f6c634300060c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101285760003560e01c80630333f5361461012d5780630d00a78f1461014257806311ff105e1461015557806313c6e4ed146101685780632ca880d41461017b5780633f4ba83a1461019957806344ff3e81146101a15780634d70d709146101b45780635c975abb146101c757806372c95f83146101dc57806375ef1f1e146101ef5780638456cb59146102025780638edaea6e1461020a57806396cbd61b1461021d5780639a055bbf146102305780639da9f33514610243578063a51a83f214610256578063ae90430a14610269578063b94c9c9d1461027c578063be16b3531461028f578063c251e585146102a2578063d8b457fc146102b5578063e30ac74e146102c8578063eb1762d7146102db575b600080fd5b61014061013b366004613301565b6102ee565b005b61014061015036600461318e565b6104a3565b6101406101633660046131e2565b6106af565b61014061017636600461301d565b6108cd565b610183610ab2565b604051610190919061340a565b60405180910390f35b610140610ac1565b6101406101af366004613251565b610b7f565b6101406101c236600461321a565b610d36565b6101cf610fdf565b604051610190919061346b565b6101406101ea3660046131e2565b610fef565b6101406101fd3660046131e2565b611102565b6101406112a0565b610140610218366004613251565b61135c565b61014061022b3660046131e2565b611586565b61014061023e3660046131e2565b611702565b6101406102513660046131aa565b611911565b610140610264366004613251565b611a3d565b6101406102773660046131aa565b611c7e565b61014061028a36600461321a565b611dab565b61014061029d3660046132c9565b611f8f565b6101406102b036600461321a565b6121b2565b6101406102c33660046132c9565b61230c565b6101406102d6366004612fa2565b6125c7565b6101406102e9366004613294565b612763565b600054600160a01b900460ff16156103215760405162461bcd60e51b81526004016103189061372f565b60405180910390fd5b610329612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610359908690600401613c67565b60a06040518083038186803b15801561037157600080fd5b505afa158015610385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a99190613069565b90506103b9338260000151612930565b6103d55760405162461bcd60e51b815260040161031890613b1a565b60065463ffffffff90811690831611156104015760405162461bcd60e51b8152600401610318906137f2565b6001546040516364c8121f60e01b81526001600160a01b03909116906364c8121f906104339086908690600401613d58565b600060405180830381600087803b15801561044d57600080fd5b505af1158015610461573d6000803e3d6000fd5b505050507f352e5a9ddfcadef33ec611971e6cabd1b96b665c0c773ab0d2f9aa14d3b484378383604051610496929190613d58565b60405180910390a1505050565b600054600160a01b900460ff16156104cd5760405162461bcd60e51b81526004016103189061372f565b6104d63361295f565b6104f25760405162461bcd60e51b815260040161031890613ab4565b6104fa612ddb565b600354604051631003065b60e21b81526001600160a01b039091169063400c196c9061052a908590600401613c47565b604080518083038186803b15801561054157600080fd5b505afa158015610555573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057991906130fa565b9050806020015163ffffffff166000146105a55760405162461bcd60e51b815260040161031890613b41565b6001546001600160a01b03166371fff9c56002846040518363ffffffff1660e01b81526004016105d6929190613da3565b60206040518083038186803b1580156105ee57600080fd5b505afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062691906131c6565b63ffffffff16156106495760405162461bcd60e51b81526004016103189061369d565b600354604051631e5edb8160e11b81526001600160a01b0390911690633cbdb70290610679908590600401613c47565b600060405180830381600087803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b505050505050565b600054600160a01b900460ff16156106d95760405162461bcd60e51b81526004016103189061372f565b6106e1612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390610711908590600401613c67565b60606040518083038186803b15801561072957600080fd5b505afa15801561073d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610761919061313b565b905061076b612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161079b91600401613c67565b60a06040518083038186803b1580156107b357600080fd5b505afa1580156107c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107eb9190613069565b90506107fb338260000151612930565b6108175760405162461bcd60e51b815260040161031890613b1a565b8160200151156108395760405162461bcd60e51b81526004016103189061366f565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc919061086c908690600190600401613ca7565b600060405180830381600087803b15801561088657600080fd5b505af115801561089a573d6000803e3d6000fd5b505050507f2d8dcea899443d25755914a7b607b6f35803f7021d4bbd6b3751703ef93ad0f9836040516104969190613c67565b600054600160a01b900460ff16156108f75760405162461bcd60e51b81526004016103189061372f565b610900826129e8565b61091c5760405162461bcd60e51b815260040161031890613611565b6005546001546040805162f4606f60e81b81529051600160a01b9093046001600160401b0316926001600160a01b039092169163f4606f0091600480820192602092909190829003018186803b15801561097557600080fd5b505afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad91906131fe565b6001600160401b031611156109d45760405162461bcd60e51b8152600401610318906135da565b6109de3383612a74565b6109fa5760405162461bcd60e51b8152600401610318906134a4565b600154604051631c6a427b60e31b81526000916001600160a01b03169063e35213d890610a2b908690600401613c39565b602060405180830381600087803b158015610a4557600080fd5b505af1158015610a59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7d91906131fe565b90507f8471ac76eed4fd351411fc932eab0d50749b8c1a424687616ce8969d94f290ca81848460405161049693929190613d03565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0d57600080fd5b505afa158015610b21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b459190612f7f565b6001600160a01b0316336001600160a01b031614610b755760405162461bcd60e51b8152600401610318906138a4565b610b7d612b85565b565b600054600160a01b900460ff1615610ba95760405162461bcd60e51b81526004016103189061372f565b610bb1612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610be1908690600401613c67565b60a06040518083038186803b158015610bf957600080fd5b505afa158015610c0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c319190613069565b9050610c41338260000151612930565b610c5d5760405162461bcd60e51b815260040161031890613b1a565b8060200151610c7e5760405162461bcd60e51b815260040161031890613a7f565b600282511015610ca05760405162461bcd60e51b8152600401610318906134ea565b60015460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190610cd3908690600090600401613ca7565b600060405180830381600087803b158015610ced57600080fd5b505af1158015610d01573d6000803e3d6000fd5b505050507fac1583ef0ca4644b771be9cff6935d3533d0adfccd12b257ea34593a9405a8748383604051610496929190613cc2565b600054600160a01b900460ff1615610d605760405162461bcd60e51b81526004016103189061372f565b610d68612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90610d98908690600401613c67565b60a06040518083038186803b158015610db057600080fd5b505afa158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190613069565b9050610df8338260000151612a74565b80610e0e5750610e0e3382600001516001612bfb565b610e2a5760405162461bcd60e51b815260040161031890613b1a565b8060200151610e4b5760405162461bcd60e51b815260040161031890613a30565b6000816040015163ffffffff1660001415610e7557600554600160e01b900463ffffffff16610e7b565b81604001515b600254604051628294c160e11b815291925063ffffffff8316916001600160a01b0390911690630105298290610eb5908890600401613c67565b60206040518083038186803b158015610ecd57600080fd5b505afa158015610ee1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0591906131fe565b6001600160401b031610610f1857600080fd5b6002546040516313b1aa3f60e31b81526000916001600160a01b031690639d8d51f890610f49908890600401613c67565b602060405180830381600087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f9b91906131fe565b90507fe410e3564249423983b096bc44efa22aca4f7ba32f9aa07dca10910cb859689b818686604051610fd093929190613d77565b60405180910390a15050505050565b600054600160a01b900460ff1690565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561103b57600080fd5b505afa15801561104f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110739190612f7f565b6001600160a01b0316336001600160a01b0316146110a35760405162461bcd60e51b8152600401610318906138a4565b60058054600160a01b600160e01b031916600160a01b6001600160401b038416021790556040517fa234354155278a122a79de09e47c7bb0793b5c6f69d0870a46f758e50a00446f906110f7908390613c67565b60405180910390a150565b600054600160a01b900460ff161561112c5760405162461bcd60e51b81526004016103189061372f565b611134612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90611164908590600401613c67565b60a06040518083038186803b15801561117c57600080fd5b505afa158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b49190613069565b90506111c4338260000151612930565b6111e05760405162461bcd60e51b815260040161031890613b1a565b8060200151156112025760405162461bcd60e51b815260040161031890613aea565b6001805460405163b5b9dc9160e01b81526001600160a01b039091169163b5b9dc9191611233918691600401613ca7565b600060405180830381600087803b15801561124d57600080fd5b505af1158015611261573d6000803e3d6000fd5b505050507f46dd4cb3caf3352a6088116e52d560593e4b8720047256bc5738237dec1fe387826040516112949190613c67565b60405180910390a15050565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b1580156112ec57600080fd5b505afa158015611300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113249190612f7f565b6001600160a01b0316336001600160a01b0316146113545760405162461bcd60e51b8152600401610318906138a4565b610b7d612c04565b600054600160a01b900460ff16156113865760405162461bcd60e51b81526004016103189061372f565b61138e612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a1063906113be908690600401613c67565b60606040518083038186803b1580156113d657600080fd5b505afa1580156113ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140e919061313b565b9050611418612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d9161144891600401613c67565b60a06040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114989190613069565b90506114a8338260000151612930565b6114c45760405162461bcd60e51b815260040161031890613b1a565b60028351116114e55760405162461bcd60e51b8152600401610318906134ea565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf90611515908790600401613c67565b600060405180830381600087803b15801561152f57600080fd5b505af1158015611543573d6000803e3d6000fd5b505050507f4fa4eab72679f15f58e711bb7a122ff036c272d75aa3857b401782af2fd8ea438484604051611578929190613cc2565b60405180910390a150505050565b600054600160a01b900460ff16156115b05760405162461bcd60e51b81526004016103189061372f565b6115b93361295f565b6115d55760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b0390911690637106695690611605908490600401613c67565b60206040518083038186803b15801561161d57600080fd5b505afa158015611631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116559190612ffd565b6116715760405162461bcd60e51b815260040161031890613759565b6003546040516396cbd61b60e01b81526001600160a01b03909116906396cbd61b906116a1908490600401613c67565b600060405180830381600087803b1580156116bb57600080fd5b505af11580156116cf573d6000803e3d6000fd5b505050507f97c2ae95ac83b91a5a298dab10c65cd756b98181999089e6826e65fbdac20926816040516110f79190613c67565b600054600160a01b900460ff161561172c5760405162461bcd60e51b81526004016103189061372f565b611734612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611764908590600401613c67565b60606040518083038186803b15801561177c57600080fd5b505afa158015611790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b4919061313b565b90506117be612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d916117ee91600401613c67565b60a06040518083038186803b15801561180657600080fd5b505afa15801561181a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183e9190613069565b905061184e338260000151612a74565b8061186457506118643382600001516003612bfb565b6118805760405162461bcd60e51b815260040161031890613b1a565b600254604051639a055bbf60e01b81526001600160a01b0390911690639a055bbf906118b0908690600401613c67565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b505050507f8f75fc93671c07b9e40b8bbe17e3a620511136319755e9481845aafca8dc1aa1836040516104969190613c67565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561195d57600080fd5b505afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119959190612f7f565b6001600160a01b0316336001600160a01b0316146119c55760405162461bcd60e51b8152600401610318906138a4565b60055463ffffffff600160e01b909104811690821610156119f85760405162461bcd60e51b8152600401610318906139b4565b6006805463ffffffff191663ffffffff83161790556040517f6a101addaeb36f0540c39e9da515b78ec6a64a7afc1353ad453cac27c20019e2906110f7908390613c56565b600054600160a01b900460ff1615611a675760405162461bcd60e51b81526004016103189061372f565b611a6f612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611a9f908690600401613c67565b60606040518083038186803b158015611ab757600080fd5b505afa158015611acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aef919061313b565b9050611af9612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611b2991600401613c67565b60a06040518083038186803b158015611b4157600080fd5b505afa158015611b55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b799190613069565b9050611b89338260000151612930565b611ba55760405162461bcd60e51b815260040161031890613b1a565b8160200151611bc65760405162461bcd60e51b81526004016103189061363c565b600283511015611be85760405162461bcd60e51b8152600401610318906134ea565b60025460405163b5b9dc9160e01b81526001600160a01b039091169063b5b9dc9190611c1b908790600090600401613ca7565b600060405180830381600087803b158015611c3557600080fd5b505af1158015611c49573d6000803e3d6000fd5b505050507fe4a6189a3a227169fa9e9a63e2a0fb3eed9e24a6fcfb924b0aad2e383c38b6e18484604051611578929190613cc2565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b158015611cca57600080fd5b505afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d029190612f7f565b6001600160a01b0316336001600160a01b031614611d325760405162461bcd60e51b8152600401610318906138a4565b60065463ffffffff9081169082161115611d5e5760405162461bcd60e51b815260040161031890613b85565b600580546001600160e01b0316600160e01b63ffffffff8416021790556040517f98963f0532a697d7898270c055c3b680774afb0ef5c1dbfeac5667b93277a429906110f7908390613c56565b600054600160a01b900460ff1615611dd55760405162461bcd60e51b81526004016103189061372f565b611ddd612df2565b60025460405163750a106360e01b81526001600160a01b039091169063750a106390611e0d908690600401613c67565b60606040518083038186803b158015611e2557600080fd5b505afa158015611e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5d919061313b565b9050611e67612dad565b600154825160405163678d913d60e01b81526001600160a01b039092169163678d913d91611e9791600401613c67565b60a06040518083038186803b158015611eaf57600080fd5b505afa158015611ec3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ee79190613069565b9050611ef7338260000151612a74565b80611f0d5750611f0d3382600001516002612bfb565b80611f215750611f21338260000151612930565b611f3d5760405162461bcd60e51b815260040161031890613b1a565b8060200151611f5e5760405162461bcd60e51b815260040161031890613849565b7f6ae15f9316c5fc53e8e2372fd9e88f97030a66b96d398650f6ba0399ac0d91b48484604051611578929190613c7b565b600054600160a01b900460ff1615611fb95760405162461bcd60e51b81526004016103189061372f565b611fc23361295f565b611fde5760405162461bcd60e51b815260040161031890613ab4565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e9061200e908490600401613c47565b60206040518083038186803b15801561202657600080fd5b505afa15801561203a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061205e9190612ffd565b61207a5760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906120ac9085908590600401613d3b565b60206040518083038186803b1580156120c457600080fd5b505afa1580156120d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fc9190612ffd565b151560011461211d5760405162461bcd60e51b815260040161031890613bf6565b60035460405163be16b35360e01b81526001600160a01b039091169063be16b3539061214f9085908590600401613d3b565b600060405180830381600087803b15801561216957600080fd5b505af115801561217d573d6000803e3d6000fd5b505050507f509b6f4e4a643a51ebb76e1f4d63753e23c00161d81385e3d92122aa081070998282604051611294929190613d3b565b600054600160a01b900460ff16156121dc5760405162461bcd60e51b81526004016103189061372f565b6121e4612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d90612214908690600401613c67565b60a06040518083038186803b15801561222c57600080fd5b505afa158015612240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122649190613069565b9050612274338260000151612a74565b806122885750612288338260000151612930565b8061229e575061229e3382600001516000612bfb565b6122ba5760405162461bcd60e51b815260040161031890613b1a565b80602001516122db5760405162461bcd60e51b81526004016103189061378c565b7f123e1f2e117cd190e1cfbe2a43d5f0247033690e4efb749b6e2b8cca75e0d3668383604051610496929190613c7b565b600054600160a01b900460ff16156123365760405162461bcd60e51b81526004016103189061372f565b61233f3361295f565b61235b5760405162461bcd60e51b815260040161031890613ab4565b60055460405163388334ab60e11b81526001600160a01b039091169063710669569061238b908590600401613c67565b60206040518083038186803b1580156123a357600080fd5b505afa1580156123b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123db9190612ffd565b6123f75760405162461bcd60e51b815260040161031890613759565b600354604051636f375b3760e11b81526001600160a01b039091169063de6eb66e90612427908490600401613c47565b60206040518083038186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124779190612ffd565b6124935760405162461bcd60e51b8152600401610318906137c1565b60035460405163528d054360e11b81526001600160a01b039091169063a51a0a86906124c59085908590600401613d3b565b60206040518083038186803b1580156124dd57600080fd5b505afa1580156124f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125159190612ffd565b156125325760405162461bcd60e51b8152600401610318906138fe565b60035460405163362d15ff60e21b81526001600160a01b039091169063d8b457fc906125649085908590600401613d3b565b600060405180830381600087803b15801561257e57600080fd5b505af1158015612592573d6000803e3d6000fd5b505050507f999834ed6c0c90437cd70656e57e667804b476062c06bf59612ee7e6737d007a8282604051611294929190613d3b565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561261357600080fd5b505afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190612f7f565b6001600160a01b0316336001600160a01b03161461267b5760405162461bcd60e51b8152600401610318906138a4565b600254612692906001600160a01b03168486612c6a565b6001546126a9906001600160a01b03168386612c6a565b6003546126c0906001600160a01b03168286612c6a565b7f415f0af8f5b6deaac4fa61971b0153fa777da7c922b5f0031947b017bd0658d1846001600160a01b038516156126f75784612704565b6002546001600160a01b03165b6001600160a01b038516156127195784612726565b6001546001600160a01b03165b6001600160a01b0385161561273b5784612748565b6003546001600160a01b03165b604051612758949392919061341e565b60405180910390a133ff5b600054600160a01b900460ff161561278d5760405162461bcd60e51b81526004016103189061372f565b612795612dad565b60015460405163678d913d60e01b81526001600160a01b039091169063678d913d906127c5908690600401613c67565b60a06040518083038186803b1580156127dd57600080fd5b505afa1580156127f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128159190613069565b9050612825338260000151612a74565b6128415760405162461bcd60e51b815260040161031890613985565b61284a826129e8565b6128665760405162461bcd60e51b815260040161031890613611565b61286f82612cd0565b158061287f575061287f3361295f565b61289b5760405162461bcd60e51b8152600401610318906136e1565b60015460405163199b26e560e11b81526001600160a01b03909116906333364dca906128cd9086908690600401613ce6565b600060405180830381600087803b1580156128e757600080fd5b505af11580156128fb573d6000803e3d6000fd5b505050507f2e95886722a90513837fce57d448fdad9e03cad92ffa72904ba909ccd96e24708383604051610496929190613ce6565b600061293b82612cd0565b61294d5761294883612ce8565b612956565b6129568361295f565b90505b92915050565b600554604051631ec2232760e01b81526000916001600160a01b031690631ec223279061299090859060040161340a565b60206040518083038186803b1580156129a857600080fd5b505afa1580156129bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e09190612ffd565b90505b919050565b60006129f382612d1b565b15612a17578160200151612a0683612d23565b6001600160a01b03161490506129e3565b612a2082612d52565b15612a44578160200151612a3383612d5b565b6001600160401b03161490506129e3565b612a4d82612cd0565b15612a6c578160200151612a6083612d82565b61ffff161490506129e3565b506000919050565b6000612a7f82612d1b565b15612aa857612a8d82612d23565b6001600160a01b0316836001600160a01b0316149050612959565b612ab182612d52565b15612b45576004546001600160a01b0316632746272984612ad185612d5b565b6040518363ffffffff1660e01b8152600401612aee929190613449565b60206040518083038186803b158015612b0657600080fd5b505afa158015612b1a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3e9190612ffd565b9050612959565b612b4e82612cd0565b15612b8357600554604051631ec2232760e01b81526001600160a01b0390911690631ec2232790612aee90339060040161340a565bfe5b600054600160a01b900460ff16612bae5760405162461bcd60e51b815260040161031890613476565b6000805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612be4612da9565b604051612bf1919061340a565b60405180910390a1565b60009392505050565b600054600160a01b900460ff1615612c2e5760405162461bcd60e51b81526004016103189061372f565b6000805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612be4612da9565b60405163f2fde38b60e01b815283906001600160a01b0382169063f2fde38b90612c9890859060040161340a565b600060405180830381600087803b158015612cb257600080fd5b505af1158015612cc6573d6000803e3d6000fd5b5050505050505050565b600060025b60ff16826000015160ff16149050919050565b600554604051630e830b8760e41b81526000916001600160a01b03169063e830b870906129909085908590600401613449565b600080612cd5565b6000612d2e82612d1b565b612d4a5760405162461bcd60e51b815260040161031890613935565b506020015190565b60006001612cd5565b6000612d6682612d52565b612d4a5760405162461bcd60e51b815260040161031890613539565b6000612d8d82612cd0565b612d4a5760405162461bcd60e51b815260040161031890613587565b3390565b6040518060800160405280612dc0612ddb565b81526000602082018190526040820181905260609091015290565b604080518082019091526000808252602082015290565b604080516060810182526000808252602082018190529181019190915290565b600082601f830112612e22578081fd5b81356001600160401b03811115612e37578182fd5b6020612e468182840201613dba565b828152925080830184820160005b84811015612ec0578135870188603f820112612e6f57600080fd5b612e796040613dba565b8086830160005b6002811015612eaa57612e988d8a8435880101612edb565b84529288019290880190600101612e80565b5050855250509183019190830190600101612e54565b505050505092915050565b8051801515811461295957600080fd5b600082601f830112612eeb578081fd5b81356001600160401b03811115612f00578182fd5b612f13601f8201601f1916602001613dba565b9150808252836020828501011115612f2a57600080fd5b8060208401602084013760009082016020015292915050565b600060408284031215612f54578081fd5b612f5e6040613dba565b90508135612f6b81613e2f565b808252506020820135602082015292915050565b600060208284031215612f90578081fd5b8151612f9b81613de0565b9392505050565b60008060008060808587031215612fb7578283fd5b8435612fc281613de0565b93506020850135612fd281613de0565b92506040850135612fe281613de0565b91506060850135612ff281613de0565b939692955090935050565b60006020828403121561300e578081fd5b81518015158114612f9b578182fd5b6000806060838503121561302f578182fd5b6130398484612f43565b915060408301356001600160401b03811115613053578182fd5b61305f85828601612e12565b9150509250929050565b600081830360a081121561307b578182fd5b6130856080613dba565b6040821215613092578283fd5b61309c6040613dba565b915083516130a981613e2f565b8252602084810151908301528181526130c58560408601612ecb565b6020820152606084015191506130da82613e08565b8160408201526130ed8560808601612ecb565b6060820152949350505050565b60006040828403121561310b578081fd5b6131156040613dba565b61311f8484612ecb565b8152602083015161312f81613e08565b60208201529392505050565b60006060828403121561314c578081fd5b6131566060613dba565b825161316181613e1a565b81526131708460208501612ecb565b60208201526131828460408501612ecb565b60408201529392505050565b60006020828403121561319f578081fd5b8135612f9b81613df8565b6000602082840312156131bb578081fd5b8135612f9b81613e08565b6000602082840312156131d7578081fd5b8151612f9b81613e08565b6000602082840312156131f3578081fd5b8135612f9b81613e1a565b60006020828403121561320f578081fd5b8151612f9b81613e1a565b6000806040838503121561322c578182fd5b823561323781613e1a565b915060208301356001600160401b03811115613053578182fd5b60008060408385031215613263578182fd5b823561326e81613e1a565b915060208301356001600160401b03811115613288578182fd5b61305f85828601612edb565b600080606083850312156132a6578182fd5b82356132b181613e1a565b91506132c08460208501612f43565b90509250929050565b600080604083850312156132db578182fd5b82356132e681613e1a565b915060208301356132f681613df8565b809150509250929050565b60008060408385031215613313578182fd5b823561331e81613e1a565b915060208301356132f681613e08565b6000815180845260208085018081965082840281019150828601855b858110156133a057828403895281518460408101895b600281101561338b5787820383526133798285516133ad565b93890193928901929150600101613360565b509a87019a955050509084019060010161334a565b5091979650505050505050565b60008151808452815b818110156133d2576020818501810151868301820152016133b6565b818111156133e35782602083870101525b50601f01601f19169290920160200192915050565b805160ff168252602090810151910152565b6001600160a01b0391909116815260200190565b6001600160a01b03948516815292841660208401529083166040830152909116606082015260800190565b6001600160a01b039290921682526001600160401b0316602082015260400190565b901515815260200190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526026908201527f4163636573732064656e69656420756e6465722070726f7669646564206f776e60408201526506572736869760d41b606082015260800190565b6020808252602f908201527f54686520726561736f6e2073686f756c64206265206174206c6561737420322060408201526e63686172616374657273206c6f6e6760881b606082015260800190565b6020808252602e908201527f61734d656d6265722063616c6c6564206f6e206e6f6e2d6d656d62657220436860408201526d0616e6e656c4f776e6572736869760941b606082015260800190565b60208082526033908201527f617343757261746f7247726f75702063616c6c6564206f6e206e6f6e2d67726f60408201527207570204368616e6e656c4f776e65727368697606c1b606082015260800190565b6020808252601f908201527f4368616e6e656c20696e7374616e636573206c696d6974207265616368656400604082015260600190565b6020808252601190820152700496e76616c6964206f776e65727368697607c1b604082015260600190565b602080825260199082015278159a59195bc8185b1c9958591e4819195858dd1a5d985d1959603a1b604082015260600190565b602080825260149082015273566964656f20616c72656164792061637469766560601b604082015260600190565b60208082526024908201527f47726f75702773206368616e6e656c7320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252602e908201527f4f6e6c79206c6561642063616e20757064617465206f776e657273686970207460408201526d06f2043757261746f7247726f75760941b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526019908201527810dd5c985d1bdc881a59081b9bdd081c9958dbd9db9a5e9959603a1b604082015260600190565b6020808252601b908201527a151a1a5cc818da185b9b995b081a5cc819195858dd1a5d985d1959602a1b604082015260600190565b60208082526017908201527611dc9bdd5c081a59081b9bdd081c9958dbd9db9a5e9959604a1b604082015260600190565b60208082526037908201527f546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766040820152761a59195bdcd4195c90da185b9b995b13585e131a5b5a5d604a1b606082015260800190565b6020808252603b908201527f43616e6e6f742075706461746520766964656f206d657461646174612077686560408201527a6e20746865206368616e6e656c206973206e6f742061637469766560281b606082015260800190565b6020808252603a908201527f546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746040820152796564207468726f7567682070726f706f73616c2073797374656d60301b606082015260800190565b6020808252601f908201527f43757261746f7220697320616c726561647920696e207468652067726f757000604082015260600190565b60208082526030908201527f6173416464726573732063616c6c6564206f6e206e6f6e2d616464726573732060408201526f04368616e6e656c4f776e6572736869760841b606082015260800190565b60208082526015908201527413dddb995c881858d8d95cdcc81c995c5d5a5c9959605a1b604082015260600190565b60208082526056908201527f766964656f735065724368616e6e656c4d61784c696d6974206d75737420626560408201527f2067726561746572207468616e206f7220657175616c20746f20766964656f7360608201527514195c90da185b9b995b111959985d5b1d131a5b5a5d60521b608082015260a00190565b6020808252602f908201527f43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746860408201526e61742069736e27742061637469766560881b606082015260800190565b6020808252601b908201527a10da185b9b995b08185b1c9958591e4819195858dd1a5d985d1959602a1b604082015260600190565b6020808252601c908201527b416374697665206c656164206163636573732072657175697265642160201b604082015260600190565b6020808252601690820152754368616e6e656c20616c72656164792061637469766560501b604082015260600190565b6020808252600d908201526c1058d8d95cdcc819195b9a5959609a1b604082015260600190565b60208082526024908201527f47726f757027732063757261746f727320636f756e74206e6565647320746f206040820152630626520360e41b606082015260800190565b6020808252604b908201527f766964656f735065724368616e6e656c44656661756c744c696d69742063616e60408201527f6e6f74206578636565642063757272656e7420766964656f735065724368616e60608201526a1b995b13585e131a5b5a5d60aa1b608082015260a00190565b60208082526023908201527f43757261746f7220697320616c7265616479206e6f7420696e2074686520677260408201526206f75760ec1b606082015260800190565b6040810161295982846133f8565b61ffff91909116815260200190565b63ffffffff91909116815260200190565b6001600160401b0391909116815260200190565b6001600160401b0383168152604060208201819052600090613c9f9083018461332e565b949350505050565b6001600160401b039290921682521515602082015260400190565b6001600160401b0383168152604060208201819052600090613c9f908301846133ad565b6001600160401b038316815260608101612f9b60208301846133f8565b6001600160401b03841681526000613d1e60208301856133f8565b60806060830152613d32608083018461332e565b95945050505050565b6001600160401b0392909216825261ffff16602082015260400190565b6001600160401b0392909216825263ffffffff16602082015260400190565b6001600160401b03848116825283166020820152606060408201819052600090613d329083018461332e565b60ff92909216825261ffff16602082015260400190565b6040518181016001600160401b0381118282101715613dd857600080fd5b604052919050565b6001600160a01b0381168114613df557600080fd5b50565b61ffff81168114613df557600080fd5b63ffffffff81168114613df557600080fd5b6001600160401b0381168114613df557600080fd5b60ff81168114613df557600080fdfea2646970667358221220c5a70b25fd66d21cff818f02e8dcf2e14dbf7d28340cdbf94e9e0f399e51f0bc64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "485:15062:0:-:0;;;927:33;;;-1:-1:-1;;;;;;;;927:33:0;-1:-1:-1;;;927:33:0;-1:-1:-1;;;;;966:39:0;-1:-1:-1;;;966:39:0;;;1011:38;;;1045:4;-1:-1:-1;;1011:38:0;;;;;;3909:506;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;649:22:4;:48;;-1:-1:-1;;;;;;649:48:4;;;-1:-1:-1;;;;;649:48:4;;;;-1:-1:-1;;;;923:15:17;;;;4203:16:0::1;:36:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4243:25:::1;:54:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;4301:32:0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;4337:12:::1;:28:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;4369:42:0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;485:15062;;1175:1270:-1;;;;;;;1537:3;1525:9;1516:7;1512:23;1508:33;1505:2;;;-1:-1;;1544:12;1505:2;904:6;898:13;916:64;974:5;916:64;:::i;:::-;1738:2;1813:22;;701:13;1596:105;;-1:-1;719:58;701:13;719:58;:::i;:::-;1882:2;1966:22;;304:13;1746:99;;-1:-1;322:67;304:13;322:67;:::i;:::-;2035:2;2108:22;;106:13;1890:108;;-1:-1;124:56;106:13;124:56;:::i;:::-;2177:3;2249:22;;1091:13;2043:97;;-1:-1;1109:54;1091:13;1109:54;:::i;:::-;2318:3;2397:22;;507:13;2186:95;;-1:-1;525:61;507:13;525:61;:::i;:::-;2327:102;;;;1499:946;;;;;;;;:::o;3428:163::-;-1:-1;;;;;3362:54;;3510:58;;3500:2;;3582:1;;3572:12;3500:2;3494:97;:::o;:::-;485:15062:0;;;;;;", - "deployedSourceMap": "485:15062:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8590:656;;;;;;:::i;:::-;;:::i;:::-;;11749:431;;;;;;:::i;:::-;;:::i;15128:417::-;;;;;;:::i;:::-;;:::i;6814:536::-;;;;;;:::i;:::-;;:::i;521:52:4:-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3850:56:0;;;:::i;9252:495::-;;;;;;:::i;:::-;;:::i;12194:729::-;;;;;;:::i;:::-;;:::i;1040:76:17:-;;;:::i;:::-;;;;;;;:::i;2927:161:0:-;;;;;;:::i;:::-;;:::i;9753:453::-;;;;;;:::i;:::-;;:::i;3795:52::-;;;:::i;14076:492::-;;;;;;:::i;:::-;;:::i;11268:478::-;;;;;;:::i;:::-;;:::i;13604:469::-;;;;;;:::i;:::-;;:::i;3421:324::-;;;;;;:::i;:::-;;:::i;14574:548::-;;;;;;:::i;:::-;;:::i;3094:321::-;;;;;;:::i;:::-;;:::i;12926:675::-;;;;;;:::i;:::-;;:::i;10737:528::-;;;;;;:::i;:::-;;:::i;7353:619::-;;;;;;:::i;:::-;;:::i;10228:506::-;;;;;;:::i;:::-;;:::i;4465:731::-;;;;;;:::i;:::-;;:::i;7975:612::-;;;;;;:::i;:::-;;:::i;8590:656::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;;;;;;;;;8748:22:0::1;;:::i;:::-;8773:14;::::0;:45:::1;::::0;-1:-1:-1;;;8773:45:0;;-1:-1:-1;;;;;8773:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;8807:10;;8773:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8748:70;;8919:41;8930:10;8942:7;:17;;;8919:10;:41::i;:::-;8911:67;;;;-1:-1:-1::0;;;8911:67:0::1;;;;;;;:::i;:::-;9000:24;::::0;::::1;::::0;;::::1;8990:34:::0;;::::1;;;8982:102;;;;-1:-1:-1::0;;;8982:102:0::1;;;;;;;:::i;:::-;9088:14;::::0;:55:::1;::::0;-1:-1:-1;;;9088:55:0;;-1:-1:-1;;;;;9088:14:0;;::::1;::::0;:35:::1;::::0;:55:::1;::::0;9124:10;;9136:6;;9088:55:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9198:44;9223:10;9235:6;9198:44;;;;;;;:::i;:::-;;;;;;;;1384:1:17;8590:656:0::0;;:::o;11749:431::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;11833:18:::2;;:::i;:::-;11854:19;::::0;:46:::2;::::0;-1:-1:-1;;;11854:46:0;;-1:-1:-1;;;;;11854:19:0;;::::2;::::0;:36:::2;::::0;:46:::2;::::0;11891:8;;11854:46:::2;;;:::i;:::-;;::::0;::::2;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11833:67;;11912:5;:19;;;:24;;11935:1;11912:24;11904:73;;;;-1:-1:-1::0;;;11904:73:0::2;;;;;;;:::i;:::-;11993:14;::::0;-1:-1:-1;;;;;11993:14:0::2;:38;12038:29;12070:8;11993:86;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:91;;::::0;11981:150:::2;;;;-1:-1:-1::0;;;11981:150:0::2;;;;;;;:::i;:::-;12135:19;::::0;:41:::2;::::0;-1:-1:-1;;;12135:41:0;;-1:-1:-1;;;;;12135:19:0;;::::2;::::0;:31:::2;::::0;:41:::2;::::0;12167:8;;12135:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;2859:1;11749:431:::0;:::o;15128:417::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;15199:18:0::1;;:::i;:::-;15220:12;::::0;:39:::1;::::0;-1:-1:-1;;;15220:39:0;;-1:-1:-1;;;;;15220:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;15250:8;;15220:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15199:60;;15263:22;;:::i;:::-;15288:14;::::0;15322:15;;15288:50:::1;::::0;-1:-1:-1;;;15288:50:0;;-1:-1:-1;;;;;15288:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15263:75;;15350:41;15361:10;15373:7;:17;;;15350:10;:41::i;:::-;15342:67;;;;-1:-1:-1::0;;;15342:67:0::1;;;;;;;:::i;:::-;15422:5;:14;;;15421:15;15413:48;;;;-1:-1:-1::0;;;15413:48:0::1;;;;;;;:::i;:::-;15465:12;::::0;:41:::1;::::0;-1:-1:-1;;;15465:41:0;;-1:-1:-1;;;;;15465:12:0;;::::1;::::0;:25:::1;::::0;:41:::1;::::0;15491:8;;15465:12;;:41:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15515:26;15532:8;15515:26;;;;;;:::i;6814:536::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;6944:20:0::1;:10;:18;:20::i;:::-;6936:50;;;;-1:-1:-1::0;;;6936:50:0::1;;;;;;;:::i;:::-;7032:21;::::0;6998:14:::1;::::0;:30:::1;::::0;;-1:-1:-1;;;6998:30:0;;;;-1:-1:-1;;;7032:21:0;;::::1;-1:-1:-1::0;;;;;7032:21:0::1;::::0;-1:-1:-1;;;;;6998:14:0;;::::1;::::0;:28:::1;::::0;:30:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;:14;:30;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6998:55:0::1;;;6990:99;;;;-1:-1:-1::0;;;6990:99:0::1;;;;;;;:::i;:::-;7101:39;7117:10;7129;7101:15;:39::i;:::-;7093:90;;;;-1:-1:-1::0;;;7093:90:0::1;;;;;;;:::i;:::-;7206:14;::::0;:37:::1;::::0;-1:-1:-1;;;7206:37:0;;7187:16:::1;::::0;-1:-1:-1;;;;;7206:14:0::1;::::0;:25:::1;::::0;:37:::1;::::0;7232:10;;7206:37:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7187:56;;7298:48;7313:9;7324:10;7336:9;7298:48;;;;;;;;:::i;521:52:4:-:0;;;-1:-1:-1;;;;;521:52:4;;:::o;3850:56:0:-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3892:10:0::1;:8;:10::i;:::-;3850:56::o:0;9252:495::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;9354:22:0::1;;:::i;:::-;9379:14;::::0;:45:::1;::::0;-1:-1:-1;;;9379:45:0;;-1:-1:-1;;;;;9379:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;9413:10;;9379:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9354:70;;9436:41;9447:10;9459:7;:17;;;9436:10;:41::i;:::-;9428:67;;;;-1:-1:-1::0;;;9428:67:0::1;;;;;;;:::i;:::-;9507:7;:16;;;9499:56;;;;-1:-1:-1::0;;;9499:56:0::1;;;;;;;:::i;:::-;9592:1;9573:7;9567:21;:26;;9559:86;;;;-1:-1:-1::0;;;9559:86:0::1;;;;;;;:::i;:::-;9649:14;::::0;:46:::1;::::0;-1:-1:-1;;;9649:46:0;;-1:-1:-1;;;;;9649:14:0;;::::1;::::0;:27:::1;::::0;:46:::1;::::0;9677:10;;9649:14:::1;::::0;:46:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9704:39;9723:10;9735:7;9704:39;;;;;;;:::i;12194:729::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;12293:22:0::1;;:::i;:::-;12318:14;::::0;:45:::1;::::0;-1:-1:-1;;;12318:45:0;;-1:-1:-1;;;;;12318:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;12352:10;;12318:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12293:70;;12379:46;12395:10;12407:7;:17;;;12379:15;:46::i;:::-;:146;;;;12432:93;12459:10;12471:7;:17;;;12490:34;12432:26;:93::i;:::-;12367:182;;;;-1:-1:-1::0;;;12367:182:0::1;;;;;;;:::i;:::-;12561:7;:16;;;12553:76;;;;-1:-1:-1::0;;;12553:76:0::1;;;;;;;:::i;:::-;12633:24;12660:7;:18;;;:23;;12682:1;12660:23;;:75;;12707:28;::::0;-1:-1:-1;;;12707:28:0;::::1;;;12660:75;;;12686:7;:18;;;12660:75;12747:12;::::0;:46:::1;::::0;-1:-1:-1;;;12747:46:0;;12633:102;;-1:-1:-1;12747:66:0::1;::::0;::::1;::::0;-1:-1:-1;;;;;12747:12:0;;::::1;::::0;:34:::1;::::0;:46:::1;::::0;12782:10;;12747:46:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12747:66:0::1;;12739:75;;;::::0;::::1;;12835:12;::::0;:33:::1;::::0;-1:-1:-1;;;12835:33:0;;12818:14:::1;::::0;-1:-1:-1;;;;;12835:12:0::1;::::0;:21:::1;::::0;:33:::1;::::0;12857:10;;12835:33:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12818:50;;12877:42;12888:7;12897:10;12909:9;12877:42;;;;;;;;:::i;:::-;;;;;;;;1384:1:17;;;12194:729:0::0;;:::o;1040:76:17:-;1079:4;1102:7;-1:-1:-1;;;1102:7:17;;;;;1040:76::o;2927:161:0:-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3003:21:0::1;:33:::0;;-1:-1:-1;;;;;;;;3003:33:0::1;-1:-1:-1::0;;;;;;;;3003:33:0;::::1;;;::::0;;3045:39:::1;::::0;::::1;::::0;::::1;::::0;3003:33;;3045:39:::1;:::i;:::-;;;;;;;;2927:161:::0;:::o;9753:453::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;9828:22:0::1;;:::i;:::-;9853:14;::::0;:45:::1;::::0;-1:-1:-1;;;9853:45:0;;-1:-1:-1;;;;;9853:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;9887:10;;9853:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9828:70;;9999:41;10010:10;10022:7;:17;;;9999:10;:41::i;:::-;9991:67;;;;-1:-1:-1::0;;;9991:67:0::1;;;;;;;:::i;:::-;10071:7;:16;;;10070:17;10062:52;;;;-1:-1:-1::0;;;10062:52:0::1;;;;;;;:::i;:::-;10118:14;::::0;;:45:::1;::::0;-1:-1:-1;;;10118:45:0;;-1:-1:-1;;;;;10118:14:0;;::::1;::::0;:27:::1;::::0;:45:::1;::::0;10146:10;;10118:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10172:30;10191:10;10172:30;;;;;;:::i;:::-;;;;;;;;1384:1:17;9753:453:0::0;:::o;3795:52::-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3835:8:0::1;:6;:8::i;14076:492::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;14178:18:0::1;;:::i;:::-;14199:12;::::0;:39:::1;::::0;-1:-1:-1;;;14199:39:0;;-1:-1:-1;;;;;14199:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;14229:8;;14199:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14178:60;;14242:22;;:::i;:::-;14267:14;::::0;14301:15;;14267:50:::1;::::0;-1:-1:-1;;;14267:50:0;;-1:-1:-1;;;;;14267:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14242:75;;14329:41;14340:10;14352:7;:17;;;14329:10;:41::i;:::-;14321:67;;;;-1:-1:-1::0;;;14321:67:0::1;;;;;;;:::i;:::-;14424:1;14406:7;14400:21;:25;14392:85;;;;-1:-1:-1::0;;;14392:85:0::1;;;;;;;:::i;:::-;14481:12;::::0;:34:::1;::::0;-1:-1:-1;;;14481:34:0;;-1:-1:-1;;;;;14481:12:0;;::::1;::::0;:24:::1;::::0;:34:::1;::::0;14506:8;;14481:34:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14524:40;14546:8;14556:7;14524:40;;;;;;;:::i;:::-;;;;;;;;1384:1:17;;14076:492:0::0;;:::o;11268:478::-;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;11370:25:::2;::::0;:51:::2;::::0;-1:-1:-1;;;11370:51:0;;-1:-1:-1;;;;;11370:25:0;;::::2;::::0;:39:::2;::::0;:51:::2;::::0;11410:10;;11370:51:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11362:89;;;;-1:-1:-1::0;;;11362:89:0::2;;;;;;;:::i;:::-;11455:19;::::0;:58:::2;::::0;-1:-1:-1;;;11455:58:0;;-1:-1:-1;;;;;11455:19:0;;::::2;::::0;:46:::2;::::0;:58:::2;::::0;11502:10;;11455:58:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;11522:39;11550:10;11522:39;;;;;;:::i;13604:469::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;13672:18:0::1;;:::i;:::-;13693:12;::::0;:39:::1;::::0;-1:-1:-1;;;13693:39:0;;-1:-1:-1;;;;;13693:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;13723:8;;13693:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13672:60;;13736:22;;:::i;:::-;13761:14;::::0;13795:15;;13761:50:::1;::::0;-1:-1:-1;;;13761:50:0;;-1:-1:-1;;;;;13761:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13736:75;;13827:46;13843:10;13855:7;:17;;;13827:15;:46::i;:::-;:149;;;;13880:96;13907:10;13919:7;:17;;;13938:37;13880:26;:96::i;:::-;13815:185;;;;-1:-1:-1::0;;;13815:185:0::1;;;;;;;:::i;:::-;14004:12;::::0;:34:::1;::::0;-1:-1:-1;;;14004:34:0;;-1:-1:-1;;;;;14004:12:0;;::::1;::::0;:24:::1;::::0;:34:::1;::::0;14029:8;;14004:34:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14047:22;14060:8;14047:22;;;;;;:::i;3421:324::-:0;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3525:28:0::1;::::0;::::1;-1:-1:-1::0;;;3525:28:0;;::::1;::::0;::::1;3512:41:::0;;::::1;;;3500:150;;;;-1:-1:-1::0;;;3500:150:0::1;;;;;;;:::i;:::-;3654:24;:36:::0;;-1:-1:-1;;3654:36:0::1;;::::0;::::1;;::::0;;3699:42:::1;::::0;::::1;::::0;::::1;::::0;3654:36;;3699:42:::1;:::i;14574:548::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;14672:18:0::1;;:::i;:::-;14693:12;::::0;:39:::1;::::0;-1:-1:-1;;;14693:39:0;;-1:-1:-1;;;;;14693:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;14723:8;;14693:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14672:60;;14736:22;;:::i;:::-;14761:14;::::0;14795:15;;14761:50:::1;::::0;-1:-1:-1;;;14761:50:0;;-1:-1:-1;;;;;14761:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14736:75;;14823:41;14834:10;14846:7;:17;;;14823:10;:41::i;:::-;14815:67;;;;-1:-1:-1::0;;;14815:67:0::1;;;;;;;:::i;:::-;14894:5;:14;;;14886:52;;;;-1:-1:-1::0;;;14886:52:0::1;;;;;;;:::i;:::-;14975:1;14956:7;14950:21;:26;;14942:86;;;;-1:-1:-1::0;;;14942:86:0::1;;;;;;;:::i;:::-;15032:12;::::0;:42:::1;::::0;-1:-1:-1;;;15032:42:0;;-1:-1:-1;;;;;15032:12:0;;::::1;::::0;:25:::1;::::0;:42:::1;::::0;15058:8;;15032:12:::1;::::0;:42:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15083:35;15100:8;15110:7;15083:35;;;;;;;:::i;3094:321::-:0;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;3202:24:0::1;::::0;::::1;::::0;;::::1;3189:37:::0;;::::1;;;3177:135;;;;-1:-1:-1::0;;;3177:135:0::1;;;;;;;:::i;:::-;3316:28;:40:::0;;-1:-1:-1;;;;;3316:40:0::1;-1:-1:-1::0;;;3316:40:0::1;::::0;::::1;;;::::0;;3365:46:::1;::::0;::::1;::::0;::::1;::::0;3316:40;;3365:46:::1;:::i;12926:675::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;13034:18:0::1;;:::i;:::-;13055:12;::::0;:39:::1;::::0;-1:-1:-1;;;13055:39:0;;-1:-1:-1;;;;;13055:12:0;;::::1;::::0;:29:::1;::::0;:39:::1;::::0;13085:8;;13055:39:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13034:60;;13098:22;;:::i;:::-;13123:14;::::0;13157:15;;13123:50:::1;::::0;-1:-1:-1;;;13123:50:0;;-1:-1:-1;;;;;13123:14:0;;::::1;::::0;:33:::1;::::0;:50:::1;::::0;::::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13098:75;;13189:46;13205:10;13217:7;:17;;;13189:15;:46::i;:::-;:157;;;;13242:104;13269:10;13281:7;:17;;;13300:45;13242:26;:104::i;:::-;13189:205;;;;13353:41;13364:10;13376:7;:17;;;13353:10;:41::i;:::-;13177:241;;;;-1:-1:-1::0;;;13177:241:0::1;;;;;;;:::i;:::-;13467:7;:16;;;13459:88;;;;-1:-1:-1::0;;;13459:88:0::1;;;;;;;:::i;:::-;13556:41;13577:8;13587:9;13556:41;;;;;;;:::i;10737:528::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;10952:19:::2;::::0;:41:::2;::::0;-1:-1:-1;;;10952:41:0;;-1:-1:-1;;;;;10952:19:0;;::::2;::::0;:31:::2;::::0;:41:::2;::::0;10984:8;;10952:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10944:77;;;;-1:-1:-1::0;;;10944:77:0::2;;;;;;;:::i;:::-;11033:19;::::0;:58:::2;::::0;-1:-1:-1;;;11033:58:0;;-1:-1:-1;;;;;11033:19:0;;::::2;::::0;:36:::2;::::0;:58:::2;::::0;11070:10;;11082:8;;11033:58:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:66;;11095:4;11033:66;11025:114;;;;-1:-1:-1::0;;;11025:114:0::2;;;;;;;:::i;:::-;11143:19;::::0;:64:::2;::::0;-1:-1:-1;;;11143:64:0;;-1:-1:-1;;;;;11143:19:0;;::::2;::::0;:42:::2;::::0;:64:::2;::::0;11186:10;;11198:8;;11143:64:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;11216:45;11240:10;11252:8;11216:45;;;;;;;:::i;7353:619::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;7466:22:0::1;;:::i;:::-;7491:14;::::0;:45:::1;::::0;-1:-1:-1;;;7491:45:0;;-1:-1:-1;;;;;7491:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;7525:10;;7491:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7466:70;;7552:46;7568:10;7580:7;:17;;;7552:15;:46::i;:::-;:94;;;;7605:41;7616:10;7628:7;:17;;;7605:10;:41::i;:::-;7552:207;;;;7653:106;7680:10;7692:7;:17;;;7711:47;7653:26;:106::i;:::-;7540:243;;;;-1:-1:-1::0;;;7540:243:0::1;;;;;;;:::i;:::-;7866:7;:16;;;7858:56;;;;-1:-1:-1::0;;;7858:56:0::1;;;;;;;:::i;:::-;7923:45;7946:10;7958:9;7923:45;;;;;;;:::i;10228:506::-:0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;2797:25:0::1;2811:10;2797:13;:25::i;:::-;2789:66;;;;-1:-1:-1::0;;;2789:66:0::1;;;;;;;:::i;:::-;10340:25:::2;::::0;:51:::2;::::0;-1:-1:-1;;;10340:51:0;;-1:-1:-1;;;;;10340:25:0;;::::2;::::0;:39:::2;::::0;:51:::2;::::0;10380:10;;10340:51:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10332:89;;;;-1:-1:-1::0;;;10332:89:0::2;;;;;;;:::i;:::-;10433:19;::::0;:41:::2;::::0;-1:-1:-1;;;10433:41:0;;-1:-1:-1;;;;;10433:19:0;;::::2;::::0;:31:::2;::::0;:41:::2;::::0;10465:8;;10433:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10425:77;;;;-1:-1:-1::0;;;10425:77:0::2;;;;;;;:::i;:::-;10514:19;::::0;:58:::2;::::0;-1:-1:-1;;;10514:58:0;;-1:-1:-1;;;;;10514:19:0;;::::2;::::0;:36:::2;::::0;:58:::2;::::0;10551:10;;10563:8;;10514:58:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:67;10506:111;;;;-1:-1:-1::0;;;10506:111:0::2;;;;;;;:::i;:::-;10621:19;::::0;:59:::2;::::0;-1:-1:-1;;;10621:59:0;;-1:-1:-1;;;;;10621:19:0;;::::2;::::0;:37:::2;::::0;:59:::2;::::0;10659:10;;10671:8;;10621:59:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;10689:41;10709:10;10721:8;10689:41;;;;;;;:::i;4465:731::-:0;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;905:53:4;:10;-1:-1:-1;;;;;905:53:4;;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;:::i;:::-;4665:12:0::1;::::0;4641:67:::1;::::0;-1:-1:-1;;;;;4665:12:0::1;4680:16:::0;4698:9;4641:15:::1;:67::i;:::-;4736:14;::::0;4712:71:::1;::::0;-1:-1:-1;;;;;4736:14:0::1;4753:18:::0;4773:9;4712:15:::1;:71::i;:::-;4811:19;::::0;4787:81:::1;::::0;-1:-1:-1;;;;;4811:19:0::1;4833:23:::0;4858:9;4787:15:::1;:81::i;:::-;4877:287;4890:9:::0;-1:-1:-1;;;;;4904:30:0;::::1;::::0;:73:::1;;4961:16;4904:73;;;4945:12;::::0;-1:-1:-1;;;;;4945:12:0::1;4904:73;-1:-1:-1::0;;;;;4982:32:0;::::1;::::0;:79:::1;;5043:18;4982:79;;;5025:14;::::0;-1:-1:-1;;;;;5025:14:0::1;4982:79;-1:-1:-1::0;;;;;5066:37:0;::::1;::::0;:94:::1;;5137:23;5066:94;;;5114:19;::::0;-1:-1:-1;;;;;5114:19:0::1;5066:94;4877:287;;;;;;;;;:::i;:::-;;;;;;;;5181:10;5168:24;7975:612:::0;1346:7:17;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;8095:22:0::1;;:::i;:::-;8120:14;::::0;:45:::1;::::0;-1:-1:-1;;;8120:45:0;;-1:-1:-1;;;;;8120:14:0;;::::1;::::0;:33:::1;::::0;:45:::1;::::0;8154:10;;8120:45:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8095:70;;8177:46;8193:10;8205:7;:17;;;8177:15;:46::i;:::-;8169:80;;;;-1:-1:-1::0;;;8169:80:0::1;;;;;;;:::i;:::-;8261:20;:10;:18;:20::i;:::-;8253:50;;;;-1:-1:-1::0;;;8253:50:0::1;;;;;;;:::i;:::-;8316:27;:10;:25;:27::i;:::-;8315:28;:57;;;;8347:25;8361:10;8347:13;:25::i;:::-;8307:116;;;;-1:-1:-1::0;;;8307:116:0::1;;;;;;;:::i;:::-;8427:14;::::0;:54:::1;::::0;-1:-1:-1;;;8427:54:0;;-1:-1:-1;;;;;8427:14:0;;::::1;::::0;:30:::1;::::0;:54:::1;::::0;8458:10;;8470;;8427:54:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8536:47;8560:10;8572;8536:47;;;;;;;:::i;6422:195::-:0;6520:4;6537:27;:10;:25;:27::i;:::-;:76;;6593:20;6604:8;6593:10;:20::i;:::-;6537:76;;;6567:23;6581:8;6567:13;:23::i;:::-;6530:83;;6422:195;;;;;:::o;2302:134::-;2384:25;;:48;;-1:-1:-1;;;2384:48:0;;2367:4;;-1:-1:-1;;;;;2384:25:0;;:38;;:48;;2423:8;;2384:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2377:55;;2302:134;;;;:::o;2294:416:9:-;2370:4;2384:21;2394:10;2384:9;:21::i;:::-;2380:105;;;2462:10;:18;;;2435:21;2445:10;2435:9;:21::i;:::-;-1:-1:-1;;;;;2419:39:9;:61;2412:68;;;;2380:105;2492:20;2501:10;2492:8;:20::i;:::-;2488:94;;;2559:10;:18;;;2534:20;2543:10;2534:8;:20::i;:::-;-1:-1:-1;;;;;2526:29:9;:51;2519:58;;;;2488:94;2589:26;2604:10;2589:14;:26::i;:::-;2585:106;;;2668:10;:18;;;2637:26;2652:10;2637:14;:26::i;:::-;2629:35;;:57;2622:64;;;;2585:106;-1:-1:-1;2701:5:9;2294:416;;;:::o;5893:526:0:-;5995:4;6009:22;:10;:20;:22::i;:::-;6005:411;;;6057:22;:10;:20;:22::i;:::-;-1:-1:-1;;;;;6045:34:0;:8;-1:-1:-1;;;;;6045:34:0;;6038:41;;;;6005:411;6096:21;:10;:19;:21::i;:::-;6092:324;;;6131:16;;-1:-1:-1;;;;;6131:16:0;:35;6167:8;6177:21;:10;:19;:21::i;:::-;6131:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6124:75;;;;6092:324;6216:27;:10;:25;:27::i;:::-;6212:204;;;6307:25;;:50;;-1:-1:-1;;;6307:50:0;;-1:-1:-1;;;;;6307:25:0;;;;:38;;:50;;6346:10;;6307:50;;;:::i;6212:204::-;6375:13;2042:117:17;1610:7;;-1:-1:-1;;;1610:7:17;;;;1602:40;;;;-1:-1:-1;;;1602:40:17;;;;;;;:::i;:::-;2110:5:::1;2100:15:::0;;-1:-1:-1;;;;2100:15:17::1;::::0;;2130:22:::1;2139:12;:10;:12::i;:::-;2130:22;;;;;;:::i;:::-;;;;;;;;2042:117::o:0;6620:191:0:-;6780:4;6620:191;;;;;:::o;1795:115:17:-;1346:7;;-1:-1:-1;;;1346:7:17;;;;1345:8;1337:37;;;;-1:-1:-1;;;1337:37:17;;;;;;;:::i;:::-;1854:7:::1;:14:::0;;-1:-1:-1;;;;1854:14:17::1;-1:-1:-1::0;;;1854:14:17::1;::::0;;1883:20:::1;1890:12;:10;:12::i;5199:348:0:-:0;5497:46;;-1:-1:-1;;;5497:46:0;;5474:18;;-1:-1:-1;;;;;5497:28:0;;;;;:46;;5526:16;;5497:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5199:348;;;;:::o;1425:168:9:-;1508:4;1559:29;1553:36;1525:64;;:10;:24;;;:64;;;1518:71;;1425:168;;;:::o;2439:323:0:-;2710:25;;:48;;-1:-1:-1;;;2710:48:0;;2501:4;;-1:-1:-1;;;;;2710:25:0;;:35;;:48;;2746:8;;2501:4;;2710:48;;;:::i;1105:158:9:-;1183:4;;1228:31;;1596:234;1674:7;1699:21;1709:10;1699:9;:21::i;:::-;1687:92;;;;-1:-1:-1;;;1687:92:9;;;;;;;:::i;:::-;-1:-1:-1;1806:18:9;;;;1596:234::o;1266:156::-;1343:4;1394:23;1388:30;;1833:219;1910:6;1934:20;1943:10;1934:8;:20::i;:::-;1922:89;;;;-1:-1:-1;;;1922:89:9;;;;;;;:::i;2055:236::-;2138:6;2162:26;2177:10;2162:14;:26::i;:::-;2150:100;;;;-1:-1:-1;;;2150:100:9;;;;;;;:::i;590:104:13:-;677:10;590:104;:::o;-1:-1:-1:-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;303:777::-;;453:3;446:4;438:6;434:17;430:27;420:2;;-1:-1;;461:12;420:2;495:20;;-1:-1;;;;;50658:30;;50655:2;;;-1:-1;;50691:12;50655:2;50736:4;530:113;50736:4;;50728:6;50724:17;50789:15;530:113;:::i;:::-;671:21;;;521:122;-1:-1;728:14;;;703:17;;;823:1;808:266;833:6;830:1;827:13;808:266;;;916:3;903:17;707:6;891:30;1231:3;1212:17;891:30;1212:17;1208:27;1198:2;;823:1;;1239:12;1198:2;1292:88;51043:17;1292:88;:::i;:::-;1386:16;50736:4;891:30;;823:1;1474:243;1273:4;1496:1;1493:13;1474:243;;;1606:47;1649:3;50736:4;1582:3;1569:17;891:30;1557;;1606:47;:::i;:::-;1594:60;;1668:14;;;;1696;;;;855:1;1514:9;1474:243;;;-1:-1;;928:83;;-1:-1;;1025:14;;;;1053;;;;855:1;848:9;808:266;;;812:14;;;;;413:667;;;;:::o;1731:128::-;1806:13;;53285;;53278:21;55672:32;;55662:2;;55718:1;;55708:12;1867:442;;1969:3;1962:4;1954:6;1950:17;1946:27;1936:2;;-1:-1;;1977:12;1936:2;2011:20;;-1:-1;;;;;51215:30;;51212:2;;;-1:-1;;51248:12;51212:2;2046:65;51321:9;51302:17;;-1:-1;;51298:33;51389:4;51379:15;2046:65;:::i;:::-;2037:74;;2131:6;2124:5;2117:21;2235:3;51389:4;2226:6;2159;2217:16;;2214:25;2211:2;;;2252:1;;2242:12;2211:2;55038:6;51389:4;2159:6;2155:17;51389:4;2193:5;2189:16;55015:30;55094:1;55076:16;;;51389:4;55076:16;55069:27;2193:5;1929:380;-1:-1;;1929:380::o;2347:486::-;;2470:4;2458:9;2453:3;2449:19;2445:30;2442:2;;;-1:-1;;2478:12;2442:2;2506:20;2470:4;2506:20;:::i;:::-;2497:29;;6544:6;6531:20;6556:31;6581:5;6556:31;:::i;:::-;2617:47;2599:16;2592:73;;2729:2;2787:9;2783:22;5707:20;2729:2;2748:5;2744:16;2737:75;2436:397;;;;:::o;6736:263::-;;6851:2;6839:9;6830:7;6826:23;6822:32;6819:2;;;-1:-1;;6857:12;6819:2;226:6;220:13;238:33;265:5;238:33;:::i;:::-;6909:74;6813:186;-1:-1;;;6813:186::o;7006:617::-;;;;;7161:3;7149:9;7140:7;7136:23;7132:33;7129:2;;;-1:-1;;7168:12;7129:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;7220:63;-1:-1;7320:2;7359:22;;72:20;97:33;72:20;97:33;:::i;:::-;7328:63;-1:-1;7428:2;7467:22;;72:20;97:33;72:20;97:33;:::i;:::-;7436:63;-1:-1;7536:2;7575:22;;72:20;97:33;72:20;97:33;:::i;:::-;7123:500;;;;-1:-1;7123:500;;-1:-1;;7123:500::o;7630:257::-;;7742:2;7730:9;7721:7;7717:23;7713:32;7710:2;;;-1:-1;;7748:12;7710:2;1812:6;1806:13;55697:5;53285:13;53278:21;55675:5;55672:32;55662:2;;-1:-1;;55708:12;7894:636;;;8107:2;8095:9;8086:7;8082:23;8078:32;8075:2;;;-1:-1;;8113:12;8075:2;8175:87;8254:7;8230:22;8175:87;:::i;:::-;8165:97;-1:-1;8327:2;8312:18;;8299:32;-1:-1;;;;;8340:30;;8337:2;;;-1:-1;;8373:12;8337:2;8403:111;8506:7;8497:6;8486:9;8482:22;8403:111;:::i;:::-;8393:121;;;8069:461;;;;;:::o;8537:314::-;;8665:9;8656:7;8652:23;8677:3;8652:23;8648:33;8645:2;;;-1:-1;;8684:12;8645:2;3578:20;3593:4;3578:20;:::i;:::-;3004:4;2983:19;2979:30;2976:2;;;-1:-1;;3012:12;2976:2;3040:20;3004:4;3040:20;:::i;:::-;3031:29;;6681:6;6675:13;6693:31;6718:5;6693:31;:::i;:::-;3126:84;;3274:2;3339:22;;;5855:13;3289:16;;;3282:86;3660:120;;;3878:57;3931:3;3004:4;3907:22;;3878:57;:::i;:::-;3274:2;3864:5;3860:16;3853:83;4003:2;4071:9;4067:22;6130:13;6121:22;;6148:32;6174:5;6148:32;:::i;:::-;4036:59;3004:4;4022:5;4018:16;4011:85;4197:57;4250:3;3593:4;4230:9;4226:22;4197:57;:::i;:::-;4003:2;4179:16;;4172:83;4183:5;8639:212;-1:-1;;;;8639:212::o;8858:309::-;;8996:2;8984:9;8975:7;8971:23;8967:32;8964:2;;;-1:-1;;9002:12;8964:2;4461:20;8996:2;4461:20;:::i;:::-;4569:57;4622:3;4598:22;4569:57;:::i;:::-;4551:16;4544:83;4697:2;4765:9;4761:22;6130:13;6148:32;6174:5;6148:32;:::i;:::-;4697:2;4712:16;;4705:85;4716:5;8958:209;-1:-1;;;8958:209::o;9174:309::-;;9312:2;9300:9;9291:7;9287:23;9283:32;9280:2;;;-1:-1;;9318:12;9280:2;4996:20;9312:2;4996:20;:::i;:::-;6410:6;6404:13;6422:32;6448:5;6422:32;:::i;:::-;5078:85;;5261:57;5314:3;5228:2;5290:22;;5261:57;:::i;:::-;5228:2;5247:5;5243:16;5236:83;5419:57;5472:3;5386:2;5452:9;5448:22;5419:57;:::i;:::-;5386:2;5401:16;;5394:83;5405:5;9274:209;-1:-1;;;9274:209::o;9490:239::-;;9593:2;9581:9;9572:7;9568:23;9564:32;9561:2;;;-1:-1;;9599:12;9561:2;5584:6;5571:20;5596:32;5622:5;5596:32;:::i;9736:239::-;;9839:2;9827:9;9818:7;9814:23;9810:32;9807:2;;;-1:-1;;9845:12;9807:2;5997:6;5984:20;6009:32;6035:5;6009:32;:::i;9982:261::-;;10096:2;10084:9;10075:7;10071:23;10067:32;10064:2;;;-1:-1;;10102:12;10064:2;6136:6;6130:13;6148:32;6174:5;6148:32;:::i;10250:239::-;;10353:2;10341:9;10332:7;10328:23;10324:32;10321:2;;;-1:-1;;10359:12;10321:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;10496:261::-;;10610:2;10598:9;10589:7;10585:23;10581:32;10578:2;;;-1:-1;;10616:12;10578:2;6410:6;6404:13;6422:32;6448:5;6422:32;:::i;10764:566::-;;;10942:2;10930:9;10921:7;10917:23;10913:32;10910:2;;;-1:-1;;10948:12;10910:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;11000:62;-1:-1;11127:2;11112:18;;11099:32;-1:-1;;;;;11140:30;;11137:2;;;-1:-1;;11173:12;11337:470;;;11467:2;11455:9;11446:7;11442:23;11438:32;11435:2;;;-1:-1;;11473:12;11435:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;11525:62;-1:-1;11652:2;11637:18;;11624:32;-1:-1;;;;;11665:30;;11662:2;;;-1:-1;;11698:12;11662:2;11728:63;11783:7;11774:6;11763:9;11759:22;11728:63;:::i;11814:432::-;;;11968:2;11956:9;11947:7;11943:23;11939:32;11936:2;;;-1:-1;;11974:12;11936:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;12026:62;-1:-1;12143:87;12222:7;12125:2;12198:22;;12143:87;:::i;:::-;12133:97;;11930:316;;;;;:::o;12253:362::-;;;12372:2;12360:9;12351:7;12347:23;12343:32;12340:2;;;-1:-1;;12378:12;12340:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;12430:62;-1:-1;12529:2;12567:22;;5571:20;5596:32;5571:20;5596:32;:::i;:::-;12537:62;;;;12334:281;;;;;:::o;12622:362::-;;;12741:2;12729:9;12720:7;12716:23;12712:32;12709:2;;;-1:-1;;12747:12;12709:2;6271:6;6258:20;6283:32;6309:5;6283:32;:::i;:::-;12799:62;-1:-1;12898:2;12936:22;;5984:20;6009:32;5984:20;6009:32;:::i;13791:1112::-;;14083:5;51852:12;52582:6;52577:3;52570:19;52619:4;;52614:3;52610:14;14095:126;;;;52619:4;14278:6;14274:17;14269:3;14265:27;14253:39;;52619:4;14396:5;51559:14;-1:-1;14435:429;14460:6;14457:1;14454:13;14435:429;;;14512:20;;;14500:33;;14561:13;;14516:4;15305:17;15296:27;;-1:-1;15441:358;51997:4;15463:1;15460:13;15441:358;;;15528:9;15522:4;15518:20;15513:3;15506:33;13407:66;13469:3;15573:6;15567:13;13407:66;:::i;:::-;52269:14;;;;15778;;;;15587:92;-1:-1;14482:1;15481:9;15441:358;;;-1:-1;14843:14;;;;14581:138;-1:-1;;;52269:14;;;;14482:1;14475:9;14435:429;;;-1:-1;14887:10;;13981:922;-1:-1;;;;;;;13981:922::o;16299:327::-;;16434:5;51852:12;52582:6;52577:3;52570:19;-1:-1;55183:101;55197:6;55194:1;55191:13;55183:101;;;52619:4;55264:11;;;;;55258:18;55245:11;;;;;55238:39;55212:10;55183:101;;;55299:6;55296:1;55293:13;55290:2;;;-1:-1;52619:4;55355:6;52614:3;55346:16;;55339:27;55290:2;-1:-1;51321:9;55455:14;-1:-1;;55451:28;16582:39;;;;52619:4;16582:39;;16381:245;-1:-1;;16381:245::o;28052:502::-;28288:23;;53878:4;53867:16;29339:35;;28458:4;28447:16;;;28441:23;28518:14;;28870:37;28186:368::o;29500:222::-;-1:-1;;;;;53464:54;;;;13707:37;;29627:2;29612:18;;29598:124::o;29974:556::-;-1:-1;;;;;53464:54;;;13707:37;;53464:54;;;30350:2;30335:18;;13707:37;53464:54;;;30433:2;30418:18;;13707:37;53464:54;;;30516:2;30501:18;;13707:37;30185:3;30170:19;;30156:374::o;30537:347::-;-1:-1;;;;;53464:54;;;;13707:37;;-1:-1;;;;;53765:30;30870:2;30855:18;;16230:57;30699:2;30684:18;;30670:214::o;31227:210::-;53285:13;;53278:21;15911:34;;31348:2;31333:18;;31319:118::o;31735:416::-;31935:2;31949:47;;;17212:2;31920:18;;;52570:19;-1:-1;;;52610:14;;;17228:43;17290:12;;;31906:245::o;32158:416::-;32358:2;32372:47;;;17541:2;32343:18;;;52570:19;17577:34;52610:14;;;17557:55;-1:-1;;;17632:12;;;17625:30;17674:12;;;32329:245::o;32581:416::-;32781:2;32795:47;;;17925:2;32766:18;;;52570:19;17961:34;52610:14;;;17941:55;-1:-1;;;18016:12;;;18009:39;18067:12;;;32752:245::o;33004:416::-;33204:2;33218:47;;;18318:2;33189:18;;;52570:19;18354:34;52610:14;;;18334:55;-1:-1;;;18409:12;;;18402:38;18459:12;;;33175:245::o;33427:416::-;33627:2;33641:47;;;18710:2;33612:18;;;52570:19;18746:34;52610:14;;;18726:55;-1:-1;;;18801:12;;;18794:43;18856:12;;;33598:245::o;33850:416::-;34050:2;34064:47;;;19107:2;34035:18;;;52570:19;19143:33;52610:14;;;19123:54;19196:12;;;34021:245::o;34273:416::-;34473:2;34487:47;;;19447:2;34458:18;;;52570:19;-1:-1;;;52610:14;;;19463:40;19522:12;;;34444:245::o;34696:416::-;34896:2;34910:47;;;19773:2;34881:18;;;52570:19;-1:-1;;;52610:14;;;19789:48;19856:12;;;34867:245::o;35119:416::-;35319:2;35333:47;;;20107:2;35304:18;;;52570:19;-1:-1;;;52610:14;;;20123:43;20185:12;;;35290:245::o;35542:416::-;35742:2;35756:47;;;20436:2;35727:18;;;52570:19;20472:34;52610:14;;;20452:55;-1:-1;;;20527:12;;;20520:28;20567:12;;;35713:245::o;35965:416::-;36165:2;36179:47;;;20818:2;36150:18;;;52570:19;20854:34;52610:14;;;20834:55;-1:-1;;;20909:12;;;20902:38;20959:12;;;36136:245::o;36388:416::-;36588:2;36602:47;;;21210:2;36573:18;;;52570:19;-1:-1;;;52610:14;;;21226:39;21284:12;;;36559:245::o;36811:416::-;37011:2;37025:47;;;21535:2;36996:18;;;52570:19;-1:-1;;;52610:14;;;21551:48;21618:12;;;36982:245::o;37234:416::-;37434:2;37448:47;;;21869:2;37419:18;;;52570:19;-1:-1;;;52610:14;;;21885:50;21954:12;;;37405:245::o;37657:416::-;37857:2;37871:47;;;22205:2;37842:18;;;52570:19;-1:-1;;;52610:14;;;22221:46;22286:12;;;37828:245::o;38080:416::-;38280:2;38294:47;;;22537:2;38265:18;;;52570:19;22573:34;52610:14;;;22553:55;-1:-1;;;22628:12;;;22621:47;22687:12;;;38251:245::o;38503:416::-;38703:2;38717:47;;;22938:2;38688:18;;;52570:19;22974:34;52610:14;;;22954:55;-1:-1;;;23029:12;;;23022:51;23092:12;;;38674:245::o;38926:416::-;39126:2;39140:47;;;23343:2;39111:18;;;52570:19;23379:34;52610:14;;;23359:55;-1:-1;;;23434:12;;;23427:50;23496:12;;;39097:245::o;39349:416::-;39549:2;39563:47;;;23747:2;39534:18;;;52570:19;23783:33;52610:14;;;23763:54;23836:12;;;39520:245::o;39772:416::-;39972:2;39986:47;;;24087:2;39957:18;;;52570:19;24123:34;52610:14;;;24103:55;-1:-1;;;24178:12;;;24171:40;24230:12;;;39943:245::o;40195:416::-;40395:2;40409:47;;;24481:2;40380:18;;;52570:19;-1:-1;;;52610:14;;;24497:44;24560:12;;;40366:245::o;40618:416::-;40818:2;40832:47;;;24811:2;40803:18;;;52570:19;24847:34;52610:14;;;24827:55;24916:34;24902:12;;;24895:56;-1:-1;;;24971:12;;;24964:46;25029:12;;;40789:245::o;41041:416::-;41241:2;41255:47;;;25280:2;41226:18;;;52570:19;25316:34;52610:14;;;25296:55;-1:-1;;;25371:12;;;25364:39;25422:12;;;41212:245::o;41464:416::-;41664:2;41678:47;;;25673:2;41649:18;;;52570:19;-1:-1;;;52610:14;;;25689:50;25758:12;;;41635:245::o;41887:416::-;42087:2;42101:47;;;26009:2;42072:18;;;52570:19;-1:-1;;;52610:14;;;26025:51;26095:12;;;42058:245::o;42310:416::-;42510:2;42524:47;;;26346:2;42495:18;;;52570:19;-1:-1;;;52610:14;;;26362:45;26426:12;;;42481:245::o;42733:416::-;42933:2;42947:47;;;26677:2;42918:18;;;52570:19;-1:-1;;;52610:14;;;26693:36;26748:12;;;42904:245::o;43156:416::-;43356:2;43370:47;;;26999:2;43341:18;;;52570:19;27035:34;52610:14;;;27015:55;-1:-1;;;27090:12;;;27083:28;27130:12;;;43327:245::o;43579:416::-;43779:2;43793:47;;;27381:2;43764:18;;;52570:19;27417:34;52610:14;;;27397:55;27486:34;27472:12;;;27465:56;-1:-1;;;27541:12;;;27534:35;27588:12;;;43750:245::o;44002:416::-;44202:2;44216:47;;;27839:2;44187:18;;;52570:19;27875:34;52610:14;;;27855:55;-1:-1;;;27930:12;;;27923:27;27969:12;;;44173:245::o;44425:358::-;44620:2;44605:18;;44634:139;44609:9;44746:6;44634:139;:::i;44790:218::-;53383:6;53372:18;;;;28630:36;;44915:2;44900:18;;44886:122::o;45015:218::-;53681:10;53670:22;;;;28988:36;;45140:2;45125:18;;45111:122::o;45240:218::-;-1:-1;;;;;53765:30;;;;29234:36;;45365:2;45350:18;;45336:122::o;45465:609::-;-1:-1;;;;;53765:30;;29234:36;;50669:18;45850:2;45835:18;;45828:48;;;45465:609;;45890:174;;45719:18;;46050:6;45890:174;:::i;:::-;45882:182;45705:369;-1:-1;;;;45705:369::o;46081:317::-;-1:-1;;;;;53765:30;;;;29234:36;;53285:13;53278:21;46384:2;46369:18;;15911:34;46228:2;46213:18;;46199:199::o;46405:417::-;-1:-1;;;;;53765:30;;29234:36;;50669:18;46694:2;46679:18;;46672:48;;;46405:417;;46734:78;;46563:18;;46798:6;46734:78;:::i;46829:465::-;-1:-1;;;;;53765:30;;29234:36;;47050:2;47035:18;;47144:140;47280:2;47265:18;;47256:6;47144:140;:::i;47301:857::-;-1:-1;;;;;53765:30;;29234:36;;47301:857;47761:140;47897:2;47882:18;;47873:6;47761:140;:::i;:::-;47666:3;47934:2;47923:9;47919:18;47912:48;47974:174;47666:3;47655:9;47651:19;48134:6;47974:174;:::i;:::-;47966:182;47637:521;-1:-1;;;;;47637:521::o;48165:325::-;-1:-1;;;;;53765:30;;;;29234:36;;53383:6;53372:18;48476:2;48461:18;;28630:36;48316:2;48301:18;;48287:203::o;48497:325::-;-1:-1;;;;;53765:30;;;;29234:36;;53681:10;53670:22;48808:2;48793:18;;28988:36;48648:2;48633:18;;48619:203::o;49161:716::-;-1:-1;;;;;53765:30;;;29234:36;;53765:30;;49616:2;49601:18;;29234:36;49456:2;50669:18;49638;;49631:48;;;49161:716;;49693:174;;49441:18;;49853:6;49693:174;:::i;49884:323::-;53878:4;53867:16;;;;29339:35;;53383:6;53372:18;50193:2;50178:18;;28748:49;50034:2;50019:18;;50005:202::o;50214:256::-;50276:2;50270:9;50302:17;;;-1:-1;;;;;50362:34;;50398:22;;;50359:62;50356:2;;;50434:1;;50424:12;50356:2;50276;50443:22;50254:216;;-1:-1;50254:216::o;55492:117::-;-1:-1;;;;;53464:54;;55551:35;;55541:2;;55600:1;;55590:12;55541:2;55535:74;:::o;55734:115::-;53383:6;55819:5;53372:18;55795:5;55792:34;55782:2;;55840:1;;55830:12;55980:115;53681:10;56065:5;53670:22;56041:5;56038:34;56028:2;;56086:1;;56076:12;56102:115;-1:-1;;;;;53765:30;;56160:34;;56150:2;;56208:1;;56198:12;56224:113;53878:4;56307:5;53867:16;56284:5;56281:33;56271:2;;56328:1;;56318:12", - "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\n// TODO: Use interfaces?\nimport \"./storage/ChannelStorage.sol\";\nimport \"./storage/CuratorGroupStorage.sol\";\nimport \"./storage/VideoStorage.sol\";\n\nimport \"./bridge/MembershipBridge.sol\";\nimport \"./bridge/ContentWorkingGroupBridge.sol\";\nimport \"./bridge/auth.sol\";\n\nimport \"../node_modules/@openzeppelin/contracts/utils/Pausable.sol\";\nimport \"../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\n\nimport \"./types.sol\";\n\ncontract ContentDirectory is RuntimeManageable, Pausable {\n // Storage contracts\n ChannelStorage channelStorage;\n VideoStorage videoStorage;\n CuratorGroupStorage curatorGroupStorage;\n\t// \"Bridge\" contracts\n\tMembershipBridge membershipBridge;\n\tContentWorkingGroupBridge contentWorkingGroupBridge;\n\n \t// Limits\n // (they can me \"migrated\" just be setting a default value here, so no need to keep them in a separate storage)\n uint64 channelInstancesLimit = 10;\n uint32 videosPerChannelDefaultLimit = 5;\n uint32 videosPerChannelMaxLimit = 1000;\n\n\tevent ChannelInstancesLimitUpdated(uint64 _newLimit);\n\tevent VideosPerChannelDefaultLimitUpdated(uint32 _newLimit);\n\tevent VideosPerChannelMaxLimitUpdated(uint32 _newLimit);\n\n\tevent Migrated(address _logic, address _videoStorage, address _channelStorage, address _curatorGroupStorage);\n\n\t// Channels\n\tevent ChannelCreated(uint64 _id, ChannelOwnership _ownership, string[2][] _metadata);\n\tevent ChannelMetadataUpdated(uint64 _id, string[2][] _metadata);\n\tevent ChannelOwnershipUpdated(uint64 _id, ChannelOwnership _ownership);\n\tevent ChannelVideoLimitUpdated(uint64 _id, uint64 _newLimit);\n\tevent ChannelDeactivated(uint64 _id, string _reason);\n\tevent ChannelReactivated(uint64 _id);\n\t// Curator Groups\n\tevent CuratorAddedToGroup(uint64 _curatorId, uint16 _groupId);\n\tevent CuratorRemovedFromGroup(uint64 _curatorId, uint16 _groupId);\n\tevent CuratorRemovedFromAllGroups(uint64 _curatorId);\n\t// Videos\n\tevent VideoAdded(uint64 _id, uint64 _channelId, string[2][] _metadata);\n\tevent VideoMetadataUpdated(uint64 _id, string[2][] _metadata);\n\tevent VideoRemoved(uint64 _id);\n\tevent VideoRemovedByCurator(uint64 _id, string _reason);\n\tevent VideoDeactivated(uint64 _id, string _reason);\n\tevent VideoReactivated(uint64 _id);\n\n\t// Common modifiers/helpers\n\tfunction _isActiveLead (address _address) internal view returns (bool) {\n\t\treturn contentWorkingGroupBridge.isActiveLead(_address);\n\t}\n\n\tfunction _isCurator (address _address) internal view returns (bool) {\n\t\t// FIXME: We either:\n\t\t// - need to provide curatorId\n\t\t// - have a separate address => curatorId[] map\n\t\t// - wait until the bridge alternative is implemented (with special address format)\n\t\treturn contentWorkingGroupBridge.isCurator(_address, 0);\n\t}\n\n\tmodifier onlyLead() {\n\t\trequire(_isActiveLead(msg.sender), \"Active lead access required!\");\n\t\t_;\n\t}\n\n\t// Limit setters that can be called via proposal module\n function setChannelInstancesLimit (uint64 _newLimit) public onlyCouncil {\n\t\tchannelInstancesLimit = _newLimit;\n\t\temit ChannelInstancesLimitUpdated(_newLimit);\n\t}\n\n function setVideosPerChannelDefaultLimit (uint32 _newLimit) public onlyCouncil {\n\t\trequire(\n\t\t\t_newLimit <= videosPerChannelMaxLimit,\n\t\t\t\"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"\n\t\t);\n\t\tvideosPerChannelDefaultLimit = _newLimit;\n\t\temit VideosPerChannelDefaultLimitUpdated(_newLimit);\n\t}\n\n function setVideosPerChannelMaxLimit (uint32 _newLimit) public onlyCouncil {\n\t\trequire(\n\t\t\t_newLimit >= videosPerChannelDefaultLimit,\n\t\t\t\"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"\n\t\t);\n\t\tvideosPerChannelMaxLimit = _newLimit;\n\t\temit VideosPerChannelMaxLimitUpdated(_newLimit);\n\t}\n\n\t// Pause/unpause contract (through proposals)\n\tfunction pause() public onlyCouncil {\n\t\t_pause();\n\t}\n\n\tfunction unpause() public onlyCouncil {\n\t\t_unpause();\n\t}\n\n\tconstructor (\n\t\tRuntimeAddressProvider _provider,\n\t\tMembershipBridge _membershipBridge,\n\t\tContentWorkingGroupBridge _contentWorkingGroupBridge,\n\t\tChannelStorage _channelStorage,\n\t\tVideoStorage _videoStorage,\n\t\tCuratorGroupStorage _curatorGroupStorage\n\t) public RuntimeManageable(_provider) {\n\t\tmembershipBridge = _membershipBridge;\n\t\tcontentWorkingGroupBridge = _contentWorkingGroupBridge;\n\t\tchannelStorage = _channelStorage;\n\t\tvideoStorage = _videoStorage;\n\t\tcuratorGroupStorage = _curatorGroupStorage;\n\t}\n\n\t// Faciliates migration to new logic contract\n\tfunction migrate (\n\t\taddress _newLogic,\n address _newVideoStorage,\n address _newChannelStorage,\n address _newCuratorGroupStorage\n\t) public onlyCouncil {\n\t\t_migrateStorage(address(videoStorage), _newVideoStorage, _newLogic);\n\t\t_migrateStorage(address(channelStorage), _newChannelStorage, _newLogic);\n\t\t_migrateStorage(address(curatorGroupStorage), _newCuratorGroupStorage, _newLogic);\n\t\temit Migrated(\n\t\t\t_newLogic,\n\t\t\t_newVideoStorage == address(0) ? address(videoStorage) : _newVideoStorage,\n\t\t\t_newChannelStorage == address(0) ? address(channelStorage) : _newChannelStorage,\n\t\t\t_newCuratorGroupStorage == address(0) ? address(curatorGroupStorage) : _newCuratorGroupStorage\n\t\t);\n\t\tselfdestruct(msg.sender);\n\t}\n\n\tfunction _migrateStorage (\n\t\taddress _oldStorageAddress,\n\t\taddress _newStorageAddress,\n\t\taddress _newLogicAddress\n\t) internal {\n\t\tif (_newStorageAddress != address(0)) {\n\t\t\t// TODO: Destroy old contract?\n\t\t\t// TODO: Set new contract owner?\n\t\t}\n\t\tOwnable oldStorage = Ownable(_oldStorageAddress);\n\t\toldStorage.transferOwnership(_newLogicAddress);\n\t}\n\n\t// CHANNELS\n\tusing ChannelOwnershipDecoder for ChannelOwnership;\n\n\tfunction _validateOwnership(ChannelOwnership memory _ownership) internal view returns (bool) {\n\t\trequire(_ownership.isValid(), \"Invalid ownership data\");\n\t\t// TODO: Check if member / group exists\n\t\t// (note that member check would be impossible without bridge contracts)\n\t}\n\n\tfunction _hasOwnerAccess(address _address, ChannelOwnership memory _ownership) internal view returns (bool) {\n\t\tif (_ownership.isAddress()) {\n\t\t\treturn _address == _ownership.asAddress();\n\t\t}\n\t\telse if (_ownership.isMember()) {\n\t\t\treturn membershipBridge.isMemberController(_address, _ownership.asMember());\n\t\t}\n\t\telse if (_ownership.isCuratorGroup()) {\n\t\t\t// Only lead can act as owner of group channel\n\t\t\treturn contentWorkingGroupBridge.isActiveLead(msg.sender);\n\t\t}\n\t\telse {\n\t\t\tassert(false); // Should never happen\n\t\t}\n\t}\n\n\tfunction _canCurate (address _address, ChannelOwnership memory _ownership) internal view returns (bool) {\n\t\treturn _ownership.isCuratorGroup() ? _isActiveLead(_address) : _isCurator(_address);\n\t}\n\n\tfunction _hasGroupAccessToOperation (\n\t\taddress _address,\n\t\tChannelOwnership memory _ownership,\n\t\tContentDirectoryOperation _operation\n\t) internal view returns(bool) {\n\t\t// TODO: Implement\n\t}\n\n\tfunction createChannel (\n\t\tChannelOwnership memory _ownership,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\trequire(_ownership.isValid(), \"Invalid ownership\");\n\t\trequire(channelStorage.nextChannelId() <= channelInstancesLimit, \"Channel instances limit reached\");\n\t\trequire(_hasOwnerAccess(msg.sender, _ownership), \"Access denied under provided ownership\");\n\t\tuint64 channelId = channelStorage.addChannel(_ownership); // TODO: Some additional call-related checks?\n\t\temit ChannelCreated(channelId, _ownership, _metadata);\n\t}\n\n\tfunction updateChannelMetadata (\n\t\tuint64 _channelId,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_canCurate(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.UpdateChannelMetadata),\n\t\t\t\"Access denied\"\n\t\t);\n\t\t// TODO: Shouldn't curator/owner be able update deactivated channel?\n\t\trequire(channel.isActive, \"This channel is deactivated\");\n\t\temit ChannelMetadataUpdated(_channelId, _metadata);\n\t}\n\n\tfunction updateChannelOwnership (\n\t\tuint64 _channelId,\n\t\tChannelOwnership memory _ownership\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(_hasOwnerAccess(msg.sender, channel.ownership), \"Owner access required\");\n\t\trequire(_ownership.isValid(), \"Invalid ownership\");\n\t\trequire(!_ownership.isCuratorGroup() || _isActiveLead(msg.sender), \"Only lead can update ownership to CuratorGroup\");\n\t\tchannelStorage.updateOwnership(_channelId, _ownership); // TODO: Some additional call-related checks?\n\t\temit ChannelOwnershipUpdated(_channelId, _ownership);\n\t}\n\n\tfunction updateChannelVideoLimit (\n\t\tuint64 _channelId,\n\t\tuint32 _limit // Note that \"0\" here means \"use currently default limit\"\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\t// FIXME: We either need curatorId or wait until the bridge alternative is implemented\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(_limit <= videosPerChannelMaxLimit, \"The limit cannot exceed global videosPerChannelMaxLimit\");\n\t\tchannelStorage.setChannelVideoLimit(_channelId, _limit); // TODO: Some additional call-related checks?\n\t\temit ChannelVideoLimitUpdated(_channelId, _limit);\n\t}\n\n function deactivateChannel (\n\t\tuint64 _channelId,\n\t\tstring memory _reason\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(channel.isActive, \"Channel already deactivated\");\n\t\trequire(bytes(_reason).length >= 2, \"The reason should be at least 2 characters long\");\n\t\tchannelStorage.updateStatus(_channelId, false);\n\t\temit ChannelDeactivated(_channelId, _reason);\n\t}\n\n function activateChannel (\n\t\tuint64 _channelId\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\t// FIXME: We either need curatorId or wait until the bridge alternative is implemented\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(!channel.isActive, \"Channel already active\");\n\t\tchannelStorage.updateStatus(_channelId, true);\n\t\temit ChannelReactivated(_channelId);\n\t}\n\n\t// CURATOR GROUPS\n\tfunction addCuratorToGroup(\n\t\tuint64 _curatorId,\n\t\tuint16 _groupId\n\t) public whenNotPaused onlyLead {\n\t\trequire(contentWorkingGroupBridge.curatorExists(_curatorId), \"Curator id not recognized\");\n\t\trequire(curatorGroupStorage.groupExists(_groupId), \"Group id not recognized\");\n\t\trequire(curatorGroupStorage.isCuratorInGroup(_curatorId, _groupId) == false, \"Curator is already in the group\");\n\t\tcuratorGroupStorage.addCuratorToGroup(_curatorId, _groupId);\n\t\temit CuratorAddedToGroup(_curatorId, _groupId);\n\t}\n\n\tfunction removeCuratorFromGroup(\n\t\tuint64 _curatorId,\n\t\tuint16 _groupId\n\t) public whenNotPaused onlyLead {\n\t\t// We don't validate if curator exists here, it's enough to check that isCuratorInGroup == true\n\t\trequire(curatorGroupStorage.groupExists(_groupId), \"Group id not recognized\");\n\t\trequire(curatorGroupStorage.isCuratorInGroup(_curatorId, _groupId) == true, \"Curator is already not in the group\");\n\t\tcuratorGroupStorage.removeCuratorFromGroup(_curatorId, _groupId);\n\t\temit CuratorRemovedFromGroup(_curatorId, _groupId);\n\t}\n\n\tfunction removeCuratorFromAllGroups(\n\t\tuint64 _curatorId\n\t) public whenNotPaused onlyLead {\n\t\trequire(contentWorkingGroupBridge.curatorExists(_curatorId), \"Curator id not recognized\");\n\t\tcuratorGroupStorage.removeCuratorFromAllGroups(_curatorId);\n\t\temit CuratorRemovedFromAllGroups(_curatorId);\n\t\t// TODO: Alternatively iterate here and execute \"removeCuratorFromGroup\" sending multiple events\n\t\t// The gas cost can get much higher, but perhaps that simplify handling events?\n\t}\n\n\tfunction removeCuratorGroup(\n\t\tuint16 _groupId\n\t) public whenNotPaused onlyLead {\n\t\tGroup memory group = curatorGroupStorage.getExistingGroup(_groupId);\n\t\trequire(group.curatorsCount == 0, \"Group's curators count needs to be 0\");\n\t\trequire(\n\t\t\tchannelStorage.channelCountByOwnership(uint8(ChannelOwnerType.CuratorGroup), _groupId) == 0,\n\t\t\t\"Group's channels count needs to be 0\"\n\t\t);\n\t\tcuratorGroupStorage.removeGroup(_groupId);\n\t}\n\n\t// VIDEOS\n\tfunction addVideo(\n\t\tuint64 _channelId,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\tChannel memory channel = channelStorage.getExistingChannel(_channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.AddVideo),\n\t\t\t\"Access denied\"\n\t\t);\n\t\trequire(channel.isActive, \"Cannot add video to a channel that isn't active\");\n\t\tuint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit;\n\t\trequire(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit);\n\t\tuint64 videoId = videoStorage.addVideo(_channelId);\n\t\temit VideoAdded(videoId, _channelId, _metadata);\n\t}\n\n\tfunction updateVideoMetadata(\n\t\tuint64 _videoId,\n\t\tstring[2][] memory _metadata\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.UpdateVideoMetadata) ||\n\t\t\t_canCurate(msg.sender, channel.ownership),\n\t\t\t\"Access denied\"\n\t\t);\n\t\t// TODO: Curator can still update?\n\t\trequire(channel.isActive, \"Cannot update video metadata when the channel is not active\");\n\t\temit VideoMetadataUpdated(_videoId, _metadata);\n\t}\n\n\tfunction removeVideo(\n\t\tuint64 _videoId\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(\n\t\t\t_hasOwnerAccess(msg.sender, channel.ownership) ||\n\t\t\t_hasGroupAccessToOperation(msg.sender, channel.ownership, ContentDirectoryOperation.RemoveVideo),\n\t\t\t\"Access denied\"\n\t\t);\n\t\tvideoStorage.removeVideo(_videoId);\n\t\temit VideoRemoved(_videoId);\n\t}\n\n\tfunction removeVideoAsCurator(\n\t\tuint64 _videoId,\n\t\tstring memory _reason\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(bytes(_reason).length > 2, \"The reason should be at least 2 characters long\");\n\t\tvideoStorage.removeVideo(_videoId);\n\t\temit VideoRemovedByCurator(_videoId, _reason);\n\t}\n\n function deactivateVideo (\n\t\tuint64 _videoId,\n\t\tstring memory _reason\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(video.isActive, \"Video already deactivated\");\n\t\trequire(bytes(_reason).length >= 2, \"The reason should be at least 2 characters long\");\n\t\tvideoStorage.updateStatus(_videoId, false);\n\t\temit VideoDeactivated(_videoId, _reason);\n\t}\n\n function activateVideo (\n\t\tuint64 _videoId\n\t) public whenNotPaused {\n\t\tVideo memory video = videoStorage.getExistingVideo(_videoId);\n\t\tChannel memory channel = channelStorage.getExistingChannel(video.channelId);\n\t\trequire(_canCurate(msg.sender, channel.ownership), \"Access denied\");\n\t\trequire(!video.isActive, \"Video already active\");\n\t\tvideoStorage.updateStatus(_videoId, true);\n\t\temit VideoReactivated(_videoId);\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol", - "exportedSymbols": { - "ContentDirectory": [ - 1377 - ] - }, - "id": 1378, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "id": 2, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:0" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "file": "./storage/ChannelStorage.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 2876, - "src": "84:38:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", - "file": "./storage/CuratorGroupStorage.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3115, - "src": "123:43:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", - "file": "./storage/VideoStorage.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3264, - "src": "167:36:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", - "file": "./bridge/MembershipBridge.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 1614, - "src": "205:39:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", - "file": "./bridge/ContentWorkingGroupBridge.sol", - "id": 7, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 1546, - "src": "245:48:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "file": "./bridge/auth.sol", - "id": 8, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 1678, - "src": "294:27:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "file": "../node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "id": 9, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 4144, - "src": "323:68:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 10, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3403, - "src": "392:68:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/types.sol", - "file": "./types.sol", - "id": 11, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3271, - "src": "462:21:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 12, - "name": "RuntimeManageable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1677, - "src": "514:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeManageable_$1677", - "typeString": "contract RuntimeManageable" - } - }, - "id": 13, - "nodeType": "InheritanceSpecifier", - "src": "514:17:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 14, - "name": "Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4143, - "src": "533:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4143", - "typeString": "contract Pausable" - } - }, - "id": 15, - "nodeType": "InheritanceSpecifier", - "src": "533:8:0" - } - ], - "contractDependencies": [ - 1677, - 3293, - 4143 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1377, - "linearizedBaseContracts": [ - 1377, - 4143, - 3293, - 1677 - ], - "name": "ContentDirectory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17, - "mutability": "mutable", - "name": "channelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "573:29:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - }, - "typeName": { - "contractScope": null, - "id": 16, - "name": "ChannelStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2875, - "src": "573:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19, - "mutability": "mutable", - "name": "videoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "608:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - }, - "typeName": { - "contractScope": null, - "id": 18, - "name": "VideoStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3263, - "src": "608:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "curatorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "639:39:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - }, - "typeName": { - "contractScope": null, - "id": 20, - "name": "CuratorGroupStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3114, - "src": "639:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 23, - "mutability": "mutable", - "name": "membershipBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "704:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - }, - "typeName": { - "contractScope": null, - "id": 22, - "name": "MembershipBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1613, - "src": "704:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "mutability": "mutable", - "name": "contentWorkingGroupBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "740:51:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - }, - "typeName": { - "contractScope": null, - "id": 24, - "name": "ContentWorkingGroupBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1545, - "src": "740:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 28, - "mutability": "mutable", - "name": "channelInstancesLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "927:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 26, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "927:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130", - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "958:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "videosPerChannelDefaultLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "966:39:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 29, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "966:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "35", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1004:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34, - "mutability": "mutable", - "name": "videosPerChannelMaxLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "1011:38:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 32, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1011:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030", - "id": 33, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1045:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000_by_1", - "typeString": "int_const 1000" - }, - "value": "1000" - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 38, - "name": "ChannelInstancesLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 37, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 38, - "src": "1088:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1088:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1087:18:0" - }, - "src": "1053:53:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "VideosPerChannelDefaultLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 40, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 42, - "src": "1150:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 39, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1150:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1149:18:0" - }, - "src": "1108:60:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 46, - "name": "VideosPerChannelMaxLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 45, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 46, - "src": "1208:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 43, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1208:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:18:0" - }, - "src": "1170:56:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 56, - "name": "Migrated", - "nodeType": "EventDefinition", - "parameters": { - "id": 55, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "indexed": false, - "mutability": "mutable", - "name": "_logic", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1244:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1244:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 50, - "indexed": false, - "mutability": "mutable", - "name": "_videoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1260:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 49, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1260:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 52, - "indexed": false, - "mutability": "mutable", - "name": "_channelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1283:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1283:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 54, - "indexed": false, - "mutability": "mutable", - "name": "_curatorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1308:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1308:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1243:94:0" - }, - "src": "1229:109:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 67, - "name": "ChannelCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 66, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 58, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 67, - "src": "1375:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 57, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1375:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "indexed": false, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 67, - "src": "1387:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 59, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1387:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 65, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 67, - "src": "1416:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 61, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1416:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 63, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1423:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "1416:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 64, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1416:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1374:64:0" - }, - "src": "1354:85:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 76, - "name": "ChannelMetadataUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 75, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 69, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 76, - "src": "1470:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 68, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1470:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 76, - "src": "1482:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 70, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1482:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 72, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1489:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "1482:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 73, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1482:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1469:35:0" - }, - "src": "1441:64:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 82, - "name": "ChannelOwnershipUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 82, - "src": "1537:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 77, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1537:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 80, - "indexed": false, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 82, - "src": "1549:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 79, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1549:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1536:41:0" - }, - "src": "1507:71:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 88, - "name": "ChannelVideoLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 88, - "src": "1611:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 83, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1611:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 88, - "src": "1623:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 85, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1623:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1610:30:0" - }, - "src": "1580:61:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 94, - "name": "ChannelDeactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 93, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 90, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 94, - "src": "1668:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 89, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1668:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 92, - "indexed": false, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 94, - "src": "1680:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 91, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1680:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1667:28:0" - }, - "src": "1643:53:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 98, - "name": "ChannelReactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 97, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 96, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 98, - "src": "1723:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 95, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1723:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1722:12:0" - }, - "src": "1698:37:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 104, - "name": "CuratorAddedToGroup", - "nodeType": "EventDefinition", - "parameters": { - "id": 103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "indexed": false, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 104, - "src": "1782:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 99, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1782:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 102, - "indexed": false, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 104, - "src": "1801:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 101, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1801:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1781:36:0" - }, - "src": "1756:62:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 110, - "name": "CuratorRemovedFromGroup", - "nodeType": "EventDefinition", - "parameters": { - "id": 109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 106, - "indexed": false, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 110, - "src": "1850:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 105, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1850:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 108, - "indexed": false, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 110, - "src": "1869:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 107, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1869:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1849:36:0" - }, - "src": "1820:66:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 114, - "name": "CuratorRemovedFromAllGroups", - "nodeType": "EventDefinition", - "parameters": { - "id": 113, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 112, - "indexed": false, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 114, - "src": "1922:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 111, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1922:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1921:19:0" - }, - "src": "1888:53:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 125, - "name": "VideoAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 124, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 116, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "1971:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 115, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1971:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "indexed": false, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "1983:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 117, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1983:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 123, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "2002:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 119, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2002:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 121, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2009:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "2002:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 122, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2002:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1970:54:0" - }, - "src": "1954:71:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 134, - "name": "VideoMetadataUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "2054:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 126, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2054:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 132, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "2066:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 128, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2066:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 130, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2073:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "2066:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 131, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2066:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2053:35:0" - }, - "src": "2027:62:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 138, - "name": "VideoRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 138, - "src": "2110:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 135, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2110:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2109:12:0" - }, - "src": "2091:31:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 144, - "name": "VideoRemovedByCurator", - "nodeType": "EventDefinition", - "parameters": { - "id": 143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 140, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 144, - "src": "2152:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 139, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2152:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 142, - "indexed": false, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 144, - "src": "2164:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 141, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2164:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2151:28:0" - }, - "src": "2124:56:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 150, - "name": "VideoDeactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 146, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 150, - "src": "2205:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 145, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2205:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 148, - "indexed": false, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 150, - "src": "2217:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 147, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2217:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2204:28:0" - }, - "src": "2182:51:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 154, - "name": "VideoReactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 152, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 154, - "src": "2258:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 151, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2258:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:12:0" - }, - "src": "2235:35:0" - }, - { - "body": { - "id": 166, - "nodeType": "Block", - "src": "2373:63:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 163, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2423:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 161, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2384:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveLead", - "nodeType": "MemberAccess", - "referencedDeclaration": 1544, - "src": "2384:38:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2384:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 160, - "id": 165, - "nodeType": "Return", - "src": "2377:55:0" - } - ] - }, - "documentation": null, - "id": 167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isActiveLead", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 156, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "2326:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2326:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2325:18:0" - }, - "returnParameters": { - "id": 160, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 159, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "2367:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 158, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2367:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2366:6:0" - }, - "scope": 1377, - "src": "2302:134:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 180, - "nodeType": "Block", - "src": "2507:255:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 176, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2746:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2756:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 174, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2710:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCurator", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "2710:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", - "typeString": "function (address,uint64) view external returns (bool)" - } - }, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2710:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 173, - "id": 179, - "nodeType": "Return", - "src": "2703:55:0" - } - ] - }, - "documentation": null, - "id": 181, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isCurator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 169, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 181, - "src": "2460:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2460:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:18:0" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 181, - "src": "2501:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 171, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2501:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2500:6:0" - }, - "scope": 1377, - "src": "2439:323:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 192, - "nodeType": "Block", - "src": "2785:79:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 185, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2811:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2811:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 184, - "name": "_isActiveLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2797:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2797:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "416374697665206c6561642061636365737320726571756972656421", - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2824:30:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", - "typeString": "literal_string \"Active lead access required!\"" - }, - "value": "Active lead access required!" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", - "typeString": "literal_string \"Active lead access required!\"" - } - ], - "id": 183, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2789:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2789:66:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "2789:66:0" - }, - { - "id": 191, - "nodeType": "PlaceholderStatement", - "src": "2859:1:0" - } - ] - }, - "documentation": null, - "id": 193, - "name": "onlyLead", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 182, - "nodeType": "ParameterList", - "parameters": [], - "src": "2782:2:0" - }, - "src": "2765:99:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 208, - "nodeType": "Block", - "src": "2999:89:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 200, - "name": "channelInstancesLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "3003:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 201, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "3027:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "3003:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 203, - "nodeType": "ExpressionStatement", - "src": "3003:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 205, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "3074:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 204, - "name": "ChannelInstancesLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "3045:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3045:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 207, - "nodeType": "EmitStatement", - "src": "3040:44:0" - } - ] - }, - "documentation": null, - "functionSelector": "72c95f83", - "id": 209, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 198, - "modifierName": { - "argumentTypes": null, - "id": 197, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "2987:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2987:11:0" - } - ], - "name": "setChannelInstancesLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 195, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 209, - "src": "2962:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 194, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2962:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2961:18:0" - }, - "returnParameters": { - "id": 199, - "nodeType": "ParameterList", - "parameters": [], - "src": "2999:0:0" - }, - "scope": 1377, - "src": "2927:161:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 231, - "nodeType": "Block", - "src": "3173:242:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 217, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "3189:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 218, - "name": "videosPerChannelMaxLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "3202:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3189:37:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766964656f735065724368616e6e656c44656661756c744c696d69742063616e6e6f74206578636565642063757272656e7420766964656f735065724368616e6e656c4d61784c696d6974", - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3231:77:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", - "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" - }, - "value": "videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", - "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" - } - ], - "id": 216, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3177:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3177:135:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "3177:135:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 223, - "name": "videosPerChannelDefaultLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "3316:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 224, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "3347:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3316:40:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 226, - "nodeType": "ExpressionStatement", - "src": "3316:40:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 228, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "3401:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 227, - "name": "VideosPerChannelDefaultLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "3365:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3365:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 230, - "nodeType": "EmitStatement", - "src": "3360:51:0" - } - ] - }, - "documentation": null, - "functionSelector": "ae90430a", - "id": 232, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 214, - "modifierName": { - "argumentTypes": null, - "id": 213, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3161:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3161:11:0" - } - ], - "name": "setVideosPerChannelDefaultLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 232, - "src": "3136:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 210, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3136:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3135:18:0" - }, - "returnParameters": { - "id": 215, - "nodeType": "ParameterList", - "parameters": [], - "src": "3173:0:0" - }, - "scope": 1377, - "src": "3094:321:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 254, - "nodeType": "Block", - "src": "3496:249:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 240, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3512:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 241, - "name": "videosPerChannelDefaultLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "3525:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3512:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766964656f735065724368616e6e656c4d61784c696d6974206d7573742062652067726561746572207468616e206f7220657175616c20746f20766964656f735065724368616e6e656c44656661756c744c696d6974", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3558:88:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", - "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" - }, - "value": "videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", - "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" - } - ], - "id": 239, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3500:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3500:150:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "3500:150:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 246, - "name": "videosPerChannelMaxLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "3654:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 247, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3681:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3654:36:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 249, - "nodeType": "ExpressionStatement", - "src": "3654:36:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 251, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3731:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 250, - "name": "VideosPerChannelMaxLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "3699:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3699:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 253, - "nodeType": "EmitStatement", - "src": "3694:47:0" - } - ] - }, - "documentation": null, - "functionSelector": "9da9f335", - "id": 255, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 237, - "modifierName": { - "argumentTypes": null, - "id": 236, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3484:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3484:11:0" - } - ], - "name": "setVideosPerChannelMaxLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 234, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 255, - "src": "3459:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 233, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3459:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3458:18:0" - }, - "returnParameters": { - "id": 238, - "nodeType": "ParameterList", - "parameters": [], - "src": "3496:0:0" - }, - "scope": 1377, - "src": "3421:324:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 263, - "nodeType": "Block", - "src": "3831:16:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 260, - "name": "_pause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4126, - "src": "3835:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3835:8:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 262, - "nodeType": "ExpressionStatement", - "src": "3835:8:0" - } - ] - }, - "documentation": null, - "functionSelector": "8456cb59", - "id": 264, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 258, - "modifierName": { - "argumentTypes": null, - "id": 257, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3819:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3819:11:0" - } - ], - "name": "pause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 256, - "nodeType": "ParameterList", - "parameters": [], - "src": "3809:2:0" - }, - "returnParameters": { - "id": 259, - "nodeType": "ParameterList", - "parameters": [], - "src": "3831:0:0" - }, - "scope": 1377, - "src": "3795:52:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 272, - "nodeType": "Block", - "src": "3888:18:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 269, - "name": "_unpause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4142, - "src": "3892:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3892:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 271, - "nodeType": "ExpressionStatement", - "src": "3892:10:0" - } - ] - }, - "documentation": null, - "functionSelector": "3f4ba83a", - "id": 273, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 267, - "modifierName": { - "argumentTypes": null, - "id": 266, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3876:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3876:11:0" - } - ], - "name": "unpause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 265, - "nodeType": "ParameterList", - "parameters": [], - "src": "3866:2:0" - }, - "returnParameters": { - "id": 268, - "nodeType": "ParameterList", - "parameters": [], - "src": "3888:0:0" - }, - "scope": 1377, - "src": "3850:56:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 311, - "nodeType": "Block", - "src": "4199:216:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 291, - "name": "membershipBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "4203:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 292, - "name": "_membershipBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "4222:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "src": "4203:36:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "id": 294, - "nodeType": "ExpressionStatement", - "src": "4203:36:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 295, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "4243:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 296, - "name": "_contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4271:26:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "src": "4243:54:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "4243:54:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 299, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "4301:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 300, - "name": "_channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "4318:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "src": "4301:32:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 302, - "nodeType": "ExpressionStatement", - "src": "4301:32:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 303, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4337:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 304, - "name": "_videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "4352:13:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "src": "4337:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 306, - "nodeType": "ExpressionStatement", - "src": "4337:28:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 307, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "4369:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 308, - "name": "_curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "4391:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "src": "4369:42:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 310, - "nodeType": "ExpressionStatement", - "src": "4369:42:0" - } - ] - }, - "documentation": null, - "id": 312, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 288, - "name": "_provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 275, - "src": "4188:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - } - ], - "id": 289, - "modifierName": { - "argumentTypes": null, - "id": 287, - "name": "RuntimeManageable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "4170:17:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", - "typeString": "type(contract RuntimeManageable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4170:28:0" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 275, - "mutability": "mutable", - "name": "_provider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "3925:32:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 274, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "3925:22:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 277, - "mutability": "mutable", - "name": "_membershipBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "3961:34:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - }, - "typeName": { - "contractScope": null, - "id": 276, - "name": "MembershipBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1613, - "src": "3961:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 279, - "mutability": "mutable", - "name": "_contentWorkingGroupBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "3999:52:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - }, - "typeName": { - "contractScope": null, - "id": 278, - "name": "ContentWorkingGroupBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1545, - "src": "3999:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 281, - "mutability": "mutable", - "name": "_channelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "4055:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - }, - "typeName": { - "contractScope": null, - "id": 280, - "name": "ChannelStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2875, - "src": "4055:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 283, - "mutability": "mutable", - "name": "_videoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "4089:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - }, - "typeName": { - "contractScope": null, - "id": 282, - "name": "VideoStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3263, - "src": "4089:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "mutability": "mutable", - "name": "_curatorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "4119:40:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - }, - "typeName": { - "contractScope": null, - "id": 284, - "name": "CuratorGroupStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3114, - "src": "4119:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:241:0" - }, - "returnParameters": { - "id": 290, - "nodeType": "ParameterList", - "parameters": [], - "src": "4199:0:0" - }, - "scope": 1377, - "src": "3909:506:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 397, - "nodeType": "Block", - "src": "4637:559:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 328, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4665:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - ], - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4657:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4657:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4657:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 330, - "name": "_newVideoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "4680:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 331, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4698:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 325, - "name": "_migrateStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4641:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4641:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "4641:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 337, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "4736:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - ], - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4728:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4728:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 339, - "name": "_newChannelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 318, - "src": "4753:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 340, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4773:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 334, - "name": "_migrateStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4712:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4712:71:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 342, - "nodeType": "ExpressionStatement", - "src": "4712:71:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 346, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "4811:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - ], - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4803:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4803:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4803:28:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 348, - "name": "_newCuratorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "4833:23:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 349, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4858:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 343, - "name": "_migrateStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4787:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4787:81:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 351, - "nodeType": "ExpressionStatement", - "src": "4787:81:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 353, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4890:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 354, - "name": "_newVideoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "4904:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4932:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4924:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 355, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4924:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4924:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4904:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 364, - "name": "_newVideoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "4961:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4904:73:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 362, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4945:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - ], - "id": 361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4937:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4937:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4937:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 366, - "name": "_newChannelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 318, - "src": "4982:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5012:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5004:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5004:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5004:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4982:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 376, - "name": "_newChannelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 318, - "src": "5043:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4982:79:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 374, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "5025:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - ], - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5017:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5017:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5017:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 378, - "name": "_newCuratorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "5066:23:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5093:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5093:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5066:37:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 388, - "name": "_newCuratorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "5137:23:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5066:94:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 386, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "5114:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - ], - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5106:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 384, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5106:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5106:28:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 352, - "name": "Migrated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4877:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address,address)" - } - }, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4877:287:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 391, - "nodeType": "EmitStatement", - "src": "4872:292:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 393, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5181:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5181:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 392, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -21, - "src": "5168:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", - "typeString": "function (address payable)" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 396, - "nodeType": "ExpressionStatement", - "src": "5168:24:0" - } - ] - }, - "documentation": null, - "functionSelector": "e30ac74e", - "id": 398, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 323, - "modifierName": { - "argumentTypes": null, - "id": 322, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "4625:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4625:11:0" - } - ], - "name": "migrate", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 314, - "mutability": "mutable", - "name": "_newLogic", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4486:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4486:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 316, - "mutability": "mutable", - "name": "_newVideoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4513:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 315, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4513:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 318, - "mutability": "mutable", - "name": "_newChannelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4547:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 317, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4547:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 320, - "mutability": "mutable", - "name": "_newCuratorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4583:31:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 319, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4583:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4482:135:0" - }, - "returnParameters": { - "id": 324, - "nodeType": "ParameterList", - "parameters": [], - "src": "4637:0:0" - }, - "scope": 1377, - "src": "4465:731:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "5325:222:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 407, - "name": "_newStorageAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 402, - "src": "5333:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5363:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5355:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 408, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5355:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5355:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5333:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 414, - "nodeType": "IfStatement", - "src": "5329:113:0", - "trueBody": { - "id": 413, - "nodeType": "Block", - "src": "5367:75:0", - "statements": [] - } - }, - { - "assignments": [ - 416 - ], - "declarations": [ - { - "constant": false, - "id": 416, - "mutability": "mutable", - "name": "oldStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 427, - "src": "5445:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - }, - "typeName": { - "contractScope": null, - "id": 415, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "5445:7:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 420, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 418, - "name": "_oldStorageAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "5474:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 417, - "name": "Ownable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3402, - "src": "5466:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Ownable_$3402_$", - "typeString": "type(contract Ownable)" - } - }, - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5466:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5445:48:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 424, - "name": "_newLogicAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "5526:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "oldStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "5497:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 3401, - "src": "5497:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5497:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "5497:46:0" - } - ] - }, - "documentation": null, - "id": 428, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_migrateStorage", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 400, - "mutability": "mutable", - "name": "_oldStorageAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 428, - "src": "5228:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 399, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5228:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 402, - "mutability": "mutable", - "name": "_newStorageAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 428, - "src": "5258:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5258:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 404, - "mutability": "mutable", - "name": "_newLogicAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 428, - "src": "5288:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5288:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5224:91:0" - }, - "returnParameters": { - "id": 406, - "nodeType": "ParameterList", - "parameters": [], - "src": "5325:0:0" - }, - "scope": 1377, - "src": "5199:348:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 431, - "libraryName": { - "contractScope": null, - "id": 429, - "name": "ChannelOwnershipDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2658, - "src": "5569:23:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelOwnershipDecoder_$2658", - "typeString": "library ChannelOwnershipDecoder" - } - }, - "nodeType": "UsingForDirective", - "src": "5563:51:0", - "typeName": { - "contractScope": null, - "id": 430, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "5597:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - } - }, - { - "body": { - "id": 445, - "nodeType": "Block", - "src": "5710:180:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 439, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "5722:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isValid", - "nodeType": "MemberAccess", - "referencedDeclaration": 2657, - "src": "5722:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5722:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e6572736869702064617461", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5744:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", - "typeString": "literal_string \"Invalid ownership data\"" - }, - "value": "Invalid ownership data" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", - "typeString": "literal_string \"Invalid ownership data\"" - } - ], - "id": 438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5714:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5714:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 444, - "nodeType": "ExpressionStatement", - "src": "5714:55:0" - } - ] - }, - "documentation": null, - "id": 446, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_validateOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 433, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 446, - "src": "5645:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 432, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "5645:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5644:36:0" - }, - "returnParameters": { - "id": 437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 436, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 446, - "src": "5704:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 435, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5704:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5703:6:0" - }, - "scope": 1377, - "src": "5617:273:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 495, - "nodeType": "Block", - "src": "6001:418:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 455, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6009:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 456, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "6009:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6009:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 465, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6096:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "6096:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6096:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 477, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6216:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 478, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2533, - "src": "6216:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6216:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 491, - "nodeType": "Block", - "src": "6370:46:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6382:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 487, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "6375:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6375:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 490, - "nodeType": "ExpressionStatement", - "src": "6375:13:0" - } - ] - }, - "id": 492, - "nodeType": "IfStatement", - "src": "6212:204:0", - "trueBody": { - "id": 486, - "nodeType": "Block", - "src": "6245:117:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 482, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6346:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6346:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 480, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "6307:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveLead", - "nodeType": "MemberAccess", - "referencedDeclaration": 1544, - "src": "6307:38:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6307:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 454, - "id": 485, - "nodeType": "Return", - "src": "6300:57:0" - } - ] - } - }, - "id": 493, - "nodeType": "IfStatement", - "src": "6092:324:0", - "trueBody": { - "id": 476, - "nodeType": "Block", - "src": "6119:85:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 470, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 448, - "src": "6167:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 471, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6177:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 472, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "asMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 2578, - "src": "6177:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6177:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 468, - "name": "membershipBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "6131:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isMemberController", - "nodeType": "MemberAccess", - "referencedDeclaration": 1595, - "src": "6131:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", - "typeString": "function (address,uint64) view external returns (bool)" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6131:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 454, - "id": 475, - "nodeType": "Return", - "src": "6124:75:0" - } - ] - } - }, - "id": 494, - "nodeType": "IfStatement", - "src": "6005:411:0", - "trueBody": { - "id": 464, - "nodeType": "Block", - "src": "6033:51:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 458, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 448, - "src": "6045:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 459, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6057:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 460, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "asAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 2557, - "src": "6057:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (address)" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6057:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6045:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 454, - "id": 463, - "nodeType": "Return", - "src": "6038:41:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 496, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hasOwnerAccess", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 448, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 496, - "src": "5918:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5918:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 450, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 496, - "src": "5936:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 449, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "5936:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5917:54:0" - }, - "returnParameters": { - "id": 454, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 453, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 496, - "src": "5995:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 452, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5995:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5994:6:0" - }, - "scope": 1377, - "src": "5893:526:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 516, - "nodeType": "Block", - "src": "6526:91:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 505, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6537:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 506, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2533, - "src": "6537:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6537:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 512, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6604:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 511, - "name": "_isCurator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "6593:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6593:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6537:76:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 509, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6581:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 508, - "name": "_isActiveLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "6567:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6567:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 504, - "id": 515, - "nodeType": "Return", - "src": "6530:83:0" - } - ] - }, - "documentation": null, - "id": 517, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_canCurate", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 498, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 517, - "src": "6443:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 497, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6443:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 500, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 517, - "src": "6461:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 499, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "6461:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6442:54:0" - }, - "returnParameters": { - "id": 504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 503, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 517, - "src": "6520:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 502, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6520:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6519:6:0" - }, - "scope": 1377, - "src": "6422:195:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 528, - "nodeType": "Block", - "src": "6786:25:0", - "statements": [] - }, - "documentation": null, - "id": 529, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hasGroupAccessToOperation", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 519, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6660:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6660:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 521, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6680:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 520, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "6680:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 523, - "mutability": "mutable", - "name": "_operation", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6718:36:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - }, - "typeName": { - "contractScope": null, - "id": 522, - "name": "ContentDirectoryOperation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3270, - "src": "6718:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6656:101:0" - }, - "returnParameters": { - "id": 527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 526, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6780:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 525, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6780:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6779:6:0" - }, - "scope": 1377, - "src": "6620:191:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 579, - "nodeType": "Block", - "src": "6932:418:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 542, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "6944:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 543, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isValid", - "nodeType": "MemberAccess", - "referencedDeclaration": 2657, - "src": "6944:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657273686970", - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6966:19:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - }, - "value": "Invalid ownership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - } - ], - "id": 541, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6936:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6936:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 547, - "nodeType": "ExpressionStatement", - "src": "6936:50:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 549, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "6998:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "nextChannelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2673, - "src": "6998:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", - "typeString": "function () view external returns (uint64)" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6998:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 552, - "name": "channelInstancesLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "7032:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "6998:55:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4368616e6e656c20696e7374616e636573206c696d69742072656163686564", - "id": 554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7055:33:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", - "typeString": "literal_string \"Channel instances limit reached\"" - }, - "value": "Channel instances limit reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", - "typeString": "literal_string \"Channel instances limit reached\"" - } - ], - "id": 548, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6990:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:99:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "6990:99:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 559, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7117:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7117:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 561, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "7129:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 558, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "7101:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7101:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e69656420756e6465722070726f7669646564206f776e657273686970", - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7142:40:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", - "typeString": "literal_string \"Access denied under provided ownership\"" - }, - "value": "Access denied under provided ownership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", - "typeString": "literal_string \"Access denied under provided ownership\"" - } - ], - "id": 557, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7093:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7093:90:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 565, - "nodeType": "ExpressionStatement", - "src": "7093:90:0" - }, - { - "assignments": [ - 567 - ], - "declarations": [ - { - "constant": false, - "id": 567, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 579, - "src": "7187:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 566, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7187:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 572, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 570, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "7232:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 568, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "7206:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2757, - "src": "7206:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (struct ChannelOwnership memory) external returns (uint64)" - } - }, - "id": 571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7206:37:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7187:56:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 574, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "7313:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 575, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "7324:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "id": 576, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 536, - "src": "7336:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 573, - "name": "ChannelCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7298:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,struct ChannelOwnership memory,string memory[2] memory[] memory)" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7298:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 578, - "nodeType": "EmitStatement", - "src": "7293:53:0" - } - ] - }, - "documentation": null, - "functionSelector": "13c6e4ed", - "id": 580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 539, - "modifierName": { - "argumentTypes": null, - "id": 538, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "6918:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6918:13:0" - } - ], - "name": "createChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 531, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 580, - "src": "6841:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 530, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "6841:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 536, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 580, - "src": "6879:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 532, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6879:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 534, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6886:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "6879:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 535, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6879:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6837:73:0" - }, - "returnParameters": { - "id": 540, - "nodeType": "ParameterList", - "parameters": [], - "src": "6932:0:0" - }, - "scope": 1377, - "src": "6814:536:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 636, - "nodeType": "Block", - "src": "7462:510:0", - "statements": [ - { - "assignments": [ - 593 - ], - "declarations": [ - { - "constant": false, - "id": 593, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 636, - "src": "7466:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 592, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "7466:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 598, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 596, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "7525:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 594, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "7491:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "7491:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7491:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7466:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 601, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7568:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7568:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 603, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7580:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "7580:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 600, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "7552:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7552:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 607, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7616:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7616:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 609, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7628:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 610, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "7628:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 606, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "7605:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7605:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7552:94:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 614, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7680:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7680:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 616, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7692:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 617, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "7692:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 618, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "7711:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "UpdateChannelMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7711:47:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 613, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "7653:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7653:106:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7552:207:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7764:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 599, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7540:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7540:243:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 624, - "nodeType": "ExpressionStatement", - "src": "7540:243:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 626, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7866:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 627, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "7866:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686973206368616e6e656c206973206465616374697661746564", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7884:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", - "typeString": "literal_string \"This channel is deactivated\"" - }, - "value": "This channel is deactivated" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", - "typeString": "literal_string \"This channel is deactivated\"" - } - ], - "id": 625, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7858:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7858:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 630, - "nodeType": "ExpressionStatement", - "src": "7858:56:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 632, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "7946:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 633, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "7958:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 631, - "name": "ChannelMetadataUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "7923:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory[2] memory[] memory)" - } - }, - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7923:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 635, - "nodeType": "EmitStatement", - "src": "7918:50:0" - } - ] - }, - "documentation": null, - "functionSelector": "c251e585", - "id": 637, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 590, - "modifierName": { - "argumentTypes": null, - "id": 589, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "7448:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7448:13:0" - } - ], - "name": "updateChannelMetadata", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 582, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 637, - "src": "7388:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 581, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7388:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 587, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 637, - "src": "7409:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 583, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7409:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 585, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7416:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "7409:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 586, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7409:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7384:56:0" - }, - "returnParameters": { - "id": 591, - "nodeType": "ParameterList", - "parameters": [], - "src": "7462:0:0" - }, - "scope": 1377, - "src": "7353:619:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 695, - "nodeType": "Block", - "src": "8091:496:0", - "statements": [ - { - "assignments": [ - 647 - ], - "declarations": [ - { - "constant": false, - "id": 647, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 695, - "src": "8095:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 646, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "8095:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 652, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 650, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8154:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 648, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "8120:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "8120:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8120:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8095:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 655, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8193:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8193:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 657, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "8205:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "8205:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 654, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "8177:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8177:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e657220616363657373207265717569726564", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8225:23:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", - "typeString": "literal_string \"Owner access required\"" - }, - "value": "Owner access required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", - "typeString": "literal_string \"Owner access required\"" - } - ], - "id": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8169:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8169:80:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "8169:80:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 664, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8261:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 665, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isValid", - "nodeType": "MemberAccess", - "referencedDeclaration": 2657, - "src": "8261:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8261:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657273686970", - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8283:19:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - }, - "value": "Invalid ownership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8253:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8253:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 669, - "nodeType": "ExpressionStatement", - "src": "8253:50:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8315:28:0", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 671, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8316:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2533, - "src": "8316:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8316:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 676, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8361:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8361:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 675, - "name": "_isActiveLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "8347:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8347:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8315:57:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f6e6c79206c6561642063616e20757064617465206f776e65727368697020746f2043757261746f7247726f7570", - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8374:48:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", - "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" - }, - "value": "Only lead can update ownership to CuratorGroup" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", - "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" - } - ], - "id": 670, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8307:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8307:116:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 682, - "nodeType": "ExpressionStatement", - "src": "8307:116:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 686, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8458:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 687, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8470:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 683, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "8427:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2810, - "src": "8427:30:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (uint64,struct ChannelOwnership memory) external" - } - }, - "id": 688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8427:54:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 689, - "nodeType": "ExpressionStatement", - "src": "8427:54:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 691, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8560:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 692, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8572:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 690, - "name": "ChannelOwnershipUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "8536:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (uint64,struct ChannelOwnership memory)" - } - }, - "id": 693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8536:47:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 694, - "nodeType": "EmitStatement", - "src": "8531:52:0" - } - ] - }, - "documentation": null, - "functionSelector": "eb1762d7", - "id": 696, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 644, - "modifierName": { - "argumentTypes": null, - "id": 643, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "8077:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8077:13:0" - } - ], - "name": "updateChannelOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 642, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 639, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 696, - "src": "8011:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 638, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8011:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 641, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 696, - "src": "8032:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 640, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "8032:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8007:62:0" - }, - "returnParameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [], - "src": "8091:0:0" - }, - "scope": 1377, - "src": "7975:612:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 741, - "nodeType": "Block", - "src": "8744:502:0", - "statements": [ - { - "assignments": [ - 706 - ], - "declarations": [ - { - "constant": false, - "id": 706, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 741, - "src": "8748:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 705, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "8748:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 711, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 709, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8807:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 707, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "8773:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "8773:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8773:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8748:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 714, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8930:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8930:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 716, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 706, - "src": "8942:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 717, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "8942:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 713, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "8919:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8919:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8962:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 712, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8911:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8911:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 721, - "nodeType": "ExpressionStatement", - "src": "8911:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 723, - "name": "_limit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "8990:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 724, - "name": "videosPerChannelMaxLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "9000:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "8990:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766964656f735065724368616e6e656c4d61784c696d6974", - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9026:57:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", - "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" - }, - "value": "The limit cannot exceed global videosPerChannelMaxLimit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", - "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" - } - ], - "id": 722, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8982:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8982:102:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 728, - "nodeType": "ExpressionStatement", - "src": "8982:102:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 732, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "9124:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 733, - "name": "_limit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "9136:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 729, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9088:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setChannelVideoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2854, - "src": "9088:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint32_$returns$__$", - "typeString": "function (uint64,uint32) external" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9088:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 735, - "nodeType": "ExpressionStatement", - "src": "9088:55:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 737, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "9223:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 738, - "name": "_limit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "9235:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 736, - "name": "ChannelVideoLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "9198:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", - "typeString": "function (uint64,uint64)" - } - }, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9198:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 740, - "nodeType": "EmitStatement", - "src": "9193:49:0" - } - ] - }, - "documentation": null, - "functionSelector": "0333f536", - "id": 742, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 703, - "modifierName": { - "argumentTypes": null, - "id": 702, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "8730:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8730:13:0" - } - ], - "name": "updateChannelVideoLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 701, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 698, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 742, - "src": "8627:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 697, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8627:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 700, - "mutability": "mutable", - "name": "_limit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 742, - "src": "8648:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 699, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "8648:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8623:99:0" - }, - "returnParameters": { - "id": 704, - "nodeType": "ParameterList", - "parameters": [], - "src": "8744:0:0" - }, - "scope": 1377, - "src": "8590:656:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 797, - "nodeType": "Block", - "src": "9350:397:0", - "statements": [ - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 797, - "src": "9354:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 751, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "9354:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 757, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 755, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "9413:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 753, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9379:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "9379:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9379:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9354:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 760, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9447:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9447:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 762, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "9459:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 763, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "9459:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 759, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "9436:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9436:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9479:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 758, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9428:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9428:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 767, - "nodeType": "ExpressionStatement", - "src": "9428:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 769, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "9507:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 770, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "9507:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4368616e6e656c20616c7265616479206465616374697661746564", - "id": 771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9525:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", - "typeString": "literal_string \"Channel already deactivated\"" - }, - "value": "Channel already deactivated" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", - "typeString": "literal_string \"Channel already deactivated\"" - } - ], - "id": 768, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9499:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9499:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 773, - "nodeType": "ExpressionStatement", - "src": "9499:56:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 746, - "src": "9573:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9567:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 775, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9567:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9567:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9567:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9592:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9567:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9595:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - }, - "value": "The reason should be at least 2 characters long" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - } - ], - "id": 774, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9559:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 784, - "nodeType": "ExpressionStatement", - "src": "9559:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 788, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "9677:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9689:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 785, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9649:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 2832, - "src": "9649:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9649:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 791, - "nodeType": "ExpressionStatement", - "src": "9649:46:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "9723:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 746, - "src": "9735:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 792, - "name": "ChannelDeactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "9704:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory)" - } - }, - "id": 795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9704:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 796, - "nodeType": "EmitStatement", - "src": "9699:44:0" - } - ] - }, - "documentation": null, - "functionSelector": "44ff3e81", - "id": 798, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 749, - "modifierName": { - "argumentTypes": null, - "id": 748, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "9336:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9336:13:0" - } - ], - "name": "deactivateChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 744, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 798, - "src": "9283:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 743, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "9283:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 746, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 798, - "src": "9304:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 745, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9304:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9279:49:0" - }, - "returnParameters": { - "id": 750, - "nodeType": "ParameterList", - "parameters": [], - "src": "9350:0:0" - }, - "scope": 1377, - "src": "9252:495:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 840, - "nodeType": "Block", - "src": "9824:382:0", - "statements": [ - { - "assignments": [ - 806 - ], - "declarations": [ - { - "constant": false, - "id": 806, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 840, - "src": "9828:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 805, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "9828:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 811, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 809, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "9887:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 807, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9853:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "9853:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9853:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9828:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10010:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10010:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 816, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "10022:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 817, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "10022:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 813, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "9999:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9999:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10042:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 812, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9991:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9991:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 821, - "nodeType": "ExpressionStatement", - "src": "9991:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10070:17:0", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 823, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "10071:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 824, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "10071:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4368616e6e656c20616c726561647920616374697665", - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10089:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", - "typeString": "literal_string \"Channel already active\"" - }, - "value": "Channel already active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", - "typeString": "literal_string \"Channel already active\"" - } - ], - "id": 822, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10062:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10062:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 828, - "nodeType": "ExpressionStatement", - "src": "10062:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 832, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "10146:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10158:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "10118:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 2832, - "src": "10118:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10118:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 835, - "nodeType": "ExpressionStatement", - "src": "10118:45:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 837, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "10191:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 836, - "name": "ChannelReactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "10172:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10172:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 839, - "nodeType": "EmitStatement", - "src": "10167:35:0" - } - ] - }, - "documentation": null, - "functionSelector": "75ef1f1e", - "id": 841, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 803, - "modifierName": { - "argumentTypes": null, - "id": 802, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "9810:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9810:13:0" - } - ], - "name": "activateChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 800, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 841, - "src": "9782:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 799, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "9782:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9778:24:0" - }, - "returnParameters": { - "id": 804, - "nodeType": "ParameterList", - "parameters": [], - "src": "9824:0:0" - }, - "scope": 1377, - "src": "9753:453:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 891, - "nodeType": "Block", - "src": "10328:406:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 855, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10380:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 853, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "10340:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 1530, - "src": "10340:39:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", - "typeString": "function (uint64) view external returns (bool)" - } - }, - "id": 856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10340:51:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", - "id": 857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10393:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - }, - "value": "Curator id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - } - ], - "id": 852, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10332:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10332:89:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 859, - "nodeType": "ExpressionStatement", - "src": "10332:89:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 863, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10465:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 861, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10433:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "groupExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 2994, - "src": "10433:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint16) view external returns (bool)" - } - }, - "id": 864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10433:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10476:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - }, - "value": "Group id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - } - ], - "id": 860, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10425:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10425:77:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 867, - "nodeType": "ExpressionStatement", - "src": "10425:77:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10551:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 872, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10563:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 869, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10514:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorInGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2904, - "src": "10514:36:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint64,uint16) view external returns (bool)" - } - }, - "id": 873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10514:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10576:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "10514:67:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f7220697320616c726561647920696e207468652067726f7570", - "id": 876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10583:33:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", - "typeString": "literal_string \"Curator is already in the group\"" - }, - "value": "Curator is already in the group" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", - "typeString": "literal_string \"Curator is already in the group\"" - } - ], - "id": 868, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10506:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10506:111:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "10506:111:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 882, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10659:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 883, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10671:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 879, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10621:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addCuratorToGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3040, - "src": "10621:37:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16) external" - } - }, - "id": 884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10621:59:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 885, - "nodeType": "ExpressionStatement", - "src": "10621:59:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 887, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10709:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 888, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10721:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 886, - "name": "CuratorAddedToGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "10689:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16)" - } - }, - "id": 889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10689:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 890, - "nodeType": "EmitStatement", - "src": "10684:46:0" - } - ] - }, - "documentation": null, - "functionSelector": "d8b457fc", - "id": 892, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 848, - "modifierName": { - "argumentTypes": null, - "id": 847, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "10305:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10305:13:0" - }, - { - "arguments": null, - "id": 850, - "modifierName": { - "argumentTypes": null, - "id": 849, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "10319:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10319:8:0" - } - ], - "name": "addCuratorToGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 843, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 892, - "src": "10258:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 842, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "10258:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 845, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 892, - "src": "10279:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 844, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10279:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10254:43:0" - }, - "returnParameters": { - "id": 851, - "nodeType": "ParameterList", - "parameters": [], - "src": "10328:0:0" - }, - "scope": 1377, - "src": "10228:506:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 934, - "nodeType": "Block", - "src": "10842:423:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 906, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "10984:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 904, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10952:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "groupExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 2994, - "src": "10952:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint16) view external returns (bool)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10952:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10995:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - }, - "value": "Group id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - } - ], - "id": 903, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10944:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10944:77:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 910, - "nodeType": "ExpressionStatement", - "src": "10944:77:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 914, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "11070:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 915, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "11082:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 912, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11033:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorInGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2904, - "src": "11033:36:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint64,uint16) view external returns (bool)" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11033:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11095:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11033:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f7220697320616c7265616479206e6f7420696e207468652067726f7570", - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11101:37:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", - "typeString": "literal_string \"Curator is already not in the group\"" - }, - "value": "Curator is already not in the group" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", - "typeString": "literal_string \"Curator is already not in the group\"" - } - ], - "id": 911, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11025:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11025:114:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 921, - "nodeType": "ExpressionStatement", - "src": "11025:114:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 925, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "11186:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 926, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "11198:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 922, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11143:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeCuratorFromGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3066, - "src": "11143:42:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16) external" - } - }, - "id": 927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11143:64:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 928, - "nodeType": "ExpressionStatement", - "src": "11143:64:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 930, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "11240:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 931, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "11252:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 929, - "name": "CuratorRemovedFromGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "11216:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16)" - } - }, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11216:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 933, - "nodeType": "EmitStatement", - "src": "11211:50:0" - } - ] - }, - "documentation": null, - "functionSelector": "be16b353", - "id": 935, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 899, - "modifierName": { - "argumentTypes": null, - "id": 898, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "10819:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10819:13:0" - }, - { - "arguments": null, - "id": 901, - "modifierName": { - "argumentTypes": null, - "id": 900, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "10833:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10833:8:0" - } - ], - "name": "removeCuratorFromGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 894, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 935, - "src": "10772:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 893, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "10772:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 896, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 935, - "src": "10793:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 895, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10793:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10768:43:0" - }, - "returnParameters": { - "id": 902, - "nodeType": "ParameterList", - "parameters": [], - "src": "10842:0:0" - }, - "scope": 1377, - "src": "10737:528:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 962, - "nodeType": "Block", - "src": "11358:388:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 947, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "11410:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 945, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "11370:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 1530, - "src": "11370:39:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", - "typeString": "function (uint64) view external returns (bool)" - } - }, - "id": 948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11370:51:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11423:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - }, - "value": "Curator id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - } - ], - "id": 944, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11362:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11362:89:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 951, - "nodeType": "ExpressionStatement", - "src": "11362:89:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 955, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "11502:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 952, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11455:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeCuratorFromAllGroups", - "nodeType": "MemberAccess", - "referencedDeclaration": 3100, - "src": "11455:46:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64) external" - } - }, - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11455:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 957, - "nodeType": "ExpressionStatement", - "src": "11455:58:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 959, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "11550:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 958, - "name": "CuratorRemovedFromAllGroups", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "11522:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11522:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 961, - "nodeType": "EmitStatement", - "src": "11517:44:0" - } - ] - }, - "documentation": null, - "functionSelector": "96cbd61b", - "id": 963, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 940, - "modifierName": { - "argumentTypes": null, - "id": 939, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "11335:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11335:13:0" - }, - { - "arguments": null, - "id": 942, - "modifierName": { - "argumentTypes": null, - "id": 941, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "11349:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11349:8:0" - } - ], - "name": "removeCuratorFromAllGroups", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 938, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 937, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 963, - "src": "11307:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 936, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "11307:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11303:24:0" - }, - "returnParameters": { - "id": 943, - "nodeType": "ParameterList", - "parameters": [], - "src": "11358:0:0" - }, - "scope": 1377, - "src": "11268:478:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "11829:351:0", - "statements": [ - { - "assignments": [ - 973 - ], - "declarations": [ - { - "constant": false, - "id": 973, - "mutability": "mutable", - "name": "group", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1008, - "src": "11833:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group" - }, - "typeName": { - "contractScope": null, - "id": 972, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "11833:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 978, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 976, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "11891:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 974, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11854:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3014, - "src": "11854:36:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_struct$_Group_$2887_memory_ptr_$", - "typeString": "function (uint16) view external returns (struct Group memory)" - } - }, - "id": 977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11854:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11833:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 980, - "name": "group", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "11912:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group memory" - } - }, - "id": 981, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2886, - "src": "11912:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11935:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11912:24:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f757027732063757261746f727320636f756e74206e6565647320746f2062652030", - "id": 984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11938:38:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", - "typeString": "literal_string \"Group's curators count needs to be 0\"" - }, - "value": "Group's curators count needs to be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", - "typeString": "literal_string \"Group's curators count needs to be 0\"" - } - ], - "id": 979, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11904:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11904:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 986, - "nodeType": "ExpressionStatement", - "src": "11904:73:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 992, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "12038:16:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12038:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12032:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 990, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "12032:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12032:36:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 995, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "12070:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 988, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "11993:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "channelCountByOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2670, - "src": "11993:38:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$", - "typeString": "function (uint8,uint256) view external returns (uint32)" - } - }, - "id": 996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11993:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12083:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11993:91:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f75702773206368616e6e656c7320636f756e74206e6565647320746f2062652030", - "id": 999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12089:38:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", - "typeString": "literal_string \"Group's channels count needs to be 0\"" - }, - "value": "Group's channels count needs to be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", - "typeString": "literal_string \"Group's channels count needs to be 0\"" - } - ], - "id": 987, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11981:150:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "11981:150:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1005, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "12167:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 1002, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "12135:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 1004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3113, - "src": "12135:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$", - "typeString": "function (uint16) external" - } - }, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12135:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "12135:41:0" - } - ] - }, - "documentation": null, - "functionSelector": "0d00a78f", - "id": 1009, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 968, - "modifierName": { - "argumentTypes": null, - "id": 967, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "11806:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11806:13:0" - }, - { - "arguments": null, - "id": 970, - "modifierName": { - "argumentTypes": null, - "id": 969, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "11820:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11820:8:0" - } - ], - "name": "removeCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 965, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1009, - "src": "11780:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 964, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11780:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11776:22:0" - }, - "returnParameters": { - "id": 971, - "nodeType": "ParameterList", - "parameters": [], - "src": "11829:0:0" - }, - "scope": 1377, - "src": "11749:431:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1086, - "nodeType": "Block", - "src": "12289:634:0", - "statements": [ - { - "assignments": [ - 1022 - ], - "declarations": [ - { - "constant": false, - "id": 1022, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1086, - "src": "12293:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1021, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "12293:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1027, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1025, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12352:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1023, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "12318:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "12318:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12318:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12293:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1030, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12395:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12395:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1032, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12407:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1033, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "12407:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1029, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "12379:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12379:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1036, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12459:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12459:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1038, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12471:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "12471:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1040, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "12490:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 1041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "AddVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12490:34:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 1035, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "12432:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12432:93:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12379:146:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12530:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1028, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12367:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12367:182:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1046, - "nodeType": "ExpressionStatement", - "src": "12367:182:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1048, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12561:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1049, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "12561:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746861742069736e277420616374697665", - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12579:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", - "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" - }, - "value": "Cannot add video to a channel that isn't active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", - "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" - } - ], - "id": 1047, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12553:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12553:76:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1052, - "nodeType": "ExpressionStatement", - "src": "12553:76:0" - }, - { - "assignments": [ - 1054 - ], - "declarations": [ - { - "constant": false, - "id": 1054, - "mutability": "mutable", - "name": "channelVideoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1086, - "src": "12633:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1053, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12633:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1063, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1055, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12660:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1056, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "12660:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12682:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12660:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 1061, - "name": "videosPerChannelDefaultLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "12707:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12660:75:0", - "trueExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1059, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12686:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "12686:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12633:102:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 1070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1067, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12782:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1065, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "12747:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "videoCountByChannelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3139, - "src": "12747:34:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_uint64_$", - "typeString": "function (uint64) view external returns (uint64)" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12747:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1069, - "name": "channelVideoLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1054, - "src": "12796:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "12747:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1064, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12739:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12739:75:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1072, - "nodeType": "ExpressionStatement", - "src": "12739:75:0" - }, - { - "assignments": [ - 1074 - ], - "declarations": [ - { - "constant": false, - "id": 1074, - "mutability": "mutable", - "name": "videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1086, - "src": "12818:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1073, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12818:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1079, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12857:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1075, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "12835:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3195, - "src": "12835:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$_t_uint64_$", - "typeString": "function (uint64) external returns (uint64)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12835:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12818:50:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1081, - "name": "videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "12888:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1082, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12897:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1083, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "12909:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 1080, - "name": "VideoAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "12877:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,uint64,string memory[2] memory[] memory)" - } - }, - "id": 1084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12877:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1085, - "nodeType": "EmitStatement", - "src": "12872:47:0" - } - ] - }, - "documentation": null, - "functionSelector": "4d70d709", - "id": 1087, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1019, - "modifierName": { - "argumentTypes": null, - "id": 1018, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "12275:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12275:13:0" - } - ], - "name": "addVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1017, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1011, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1087, - "src": "12215:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1010, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12215:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1016, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1087, - "src": "12236:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1012, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12236:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 1014, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 1013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12243:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "12236:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 1015, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12236:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12211:56:0" - }, - "returnParameters": { - "id": 1020, - "nodeType": "ParameterList", - "parameters": [], - "src": "12289:0:0" - }, - "scope": 1377, - "src": "12194:729:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "13030:571:0", - "statements": [ - { - "assignments": [ - 1100 - ], - "declarations": [ - { - "constant": false, - "id": 1100, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1151, - "src": "13034:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1099, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "13034:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1103, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "13085:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1101, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "13055:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "13055:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13055:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13034:60:0" - }, - { - "assignments": [ - 1107 - ], - "declarations": [ - { - "constant": false, - "id": 1107, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1151, - "src": "13098:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1106, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "13098:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1113, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1110, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1100, - "src": "13157:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1111, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "13157:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1108, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "13123:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "13123:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13123:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13098:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13205:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13205:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1118, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13217:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13217:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1115, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "13189:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13189:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1122, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13269:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13269:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1124, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13281:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1125, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13281:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1126, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "13300:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 1127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "UpdateVideoMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13300:45:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 1121, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "13242:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 1128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13242:104:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13189:157:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1131, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13364:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13364:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1133, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13376:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1134, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13376:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1130, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "13353:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13353:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13189:205:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13399:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1114, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13177:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13177:241:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1139, - "nodeType": "ExpressionStatement", - "src": "13177:241:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1141, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13467:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1142, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "13467:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616e6e6f742075706461746520766964656f206d65746164617461207768656e20746865206368616e6e656c206973206e6f7420616374697665", - "id": 1143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13485:61:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", - "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" - }, - "value": "Cannot update video metadata when the channel is not active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", - "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" - } - ], - "id": 1140, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13459:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13459:88:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1145, - "nodeType": "ExpressionStatement", - "src": "13459:88:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1147, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "13577:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1148, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "13587:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 1146, - "name": "VideoMetadataUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "13556:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory[2] memory[] memory)" - } - }, - "id": 1149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13556:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1150, - "nodeType": "EmitStatement", - "src": "13551:46:0" - } - ] - }, - "documentation": null, - "functionSelector": "b94c9c9d", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1097, - "modifierName": { - "argumentTypes": null, - "id": 1096, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "13016:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13016:13:0" - } - ], - "name": "updateVideoMetadata", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1089, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1152, - "src": "12958:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1088, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12958:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1094, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1152, - "src": "12977:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1090, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12977:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 1092, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 1091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12984:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "12977:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 1093, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12977:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12954:54:0" - }, - "returnParameters": { - "id": 1098, - "nodeType": "ParameterList", - "parameters": [], - "src": "13030:0:0" - }, - "scope": 1377, - "src": "12926:675:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1203, - "nodeType": "Block", - "src": "13668:405:0", - "statements": [ - { - "assignments": [ - 1160 - ], - "declarations": [ - { - "constant": false, - "id": 1160, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1203, - "src": "13672:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1159, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "13672:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1165, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1163, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "13723:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1161, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "13693:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "13693:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13693:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13672:60:0" - }, - { - "assignments": [ - 1167 - ], - "declarations": [ - { - "constant": false, - "id": 1167, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1203, - "src": "13736:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1166, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "13736:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1173, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1170, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "13795:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "13795:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1168, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "13761:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "13761:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13761:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13736:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1176, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13843:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13843:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1178, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "13855:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1179, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13855:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1175, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "13827:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13827:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1182, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13907:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13907:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "13919:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13919:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1186, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "13938:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 1187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "RemoveVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13938:37:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 1181, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "13880:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 1188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13880:96:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13827:149:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13981:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13815:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13815:185:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1192, - "nodeType": "ExpressionStatement", - "src": "13815:185:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1196, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "14029:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1193, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14004:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3262, - "src": "14004:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64) external" - } - }, - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14004:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1198, - "nodeType": "ExpressionStatement", - "src": "14004:34:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1200, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "14060:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 1199, - "name": "VideoRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "14047:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14047:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1202, - "nodeType": "EmitStatement", - "src": "14042:27:0" - } - ] - }, - "documentation": null, - "functionSelector": "9a055bbf", - "id": 1204, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1157, - "modifierName": { - "argumentTypes": null, - "id": 1156, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "13654:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13654:13:0" - } - ], - "name": "removeVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1155, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1204, - "src": "13628:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1153, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13628:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13624:22:0" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "13668:0:0" - }, - "scope": 1377, - "src": "13604:469:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1260, - "nodeType": "Block", - "src": "14174:394:0", - "statements": [ - { - "assignments": [ - 1214 - ], - "declarations": [ - { - "constant": false, - "id": 1214, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1260, - "src": "14178:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1213, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "14178:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1219, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1217, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "14229:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1215, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14199:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "14199:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14199:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14178:60:0" - }, - { - "assignments": [ - 1221 - ], - "declarations": [ - { - "constant": false, - "id": 1221, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1260, - "src": "14242:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1220, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "14242:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1227, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1224, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1214, - "src": "14301:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "14301:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1222, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "14267:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "14267:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14267:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14242:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1230, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14340:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14340:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1232, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "14352:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "14352:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1229, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "14329:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14329:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14372:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14321:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14321:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1237, - "nodeType": "ExpressionStatement", - "src": "14321:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1241, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1208, - "src": "14406:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14400:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 1239, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14400:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14400:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14400:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14424:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14400:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", - "id": 1246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14427:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - }, - "value": "The reason should be at least 2 characters long" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - } - ], - "id": 1238, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14392:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14392:85:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1248, - "nodeType": "ExpressionStatement", - "src": "14392:85:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1252, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "14506:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1249, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14481:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3262, - "src": "14481:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64) external" - } - }, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14481:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1254, - "nodeType": "ExpressionStatement", - "src": "14481:34:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1256, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "14546:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1257, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1208, - "src": "14556:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1255, - "name": "VideoRemovedByCurator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "14524:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory)" - } - }, - "id": 1258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14524:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1259, - "nodeType": "EmitStatement", - "src": "14519:45:0" - } - ] - }, - "documentation": null, - "functionSelector": "8edaea6e", - "id": 1261, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1211, - "modifierName": { - "argumentTypes": null, - "id": 1210, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "14160:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14160:13:0" - } - ], - "name": "removeVideoAsCurator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1206, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1261, - "src": "14109:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1205, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "14109:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1208, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1261, - "src": "14128:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1207, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14128:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14105:47:0" - }, - "returnParameters": { - "id": 1212, - "nodeType": "ParameterList", - "parameters": [], - "src": "14174:0:0" - }, - "scope": 1377, - "src": "14076:492:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1324, - "nodeType": "Block", - "src": "14668:454:0", - "statements": [ - { - "assignments": [ - 1271 - ], - "declarations": [ - { - "constant": false, - "id": 1271, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1324, - "src": "14672:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1270, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "14672:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1274, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "14723:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1272, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14693:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "14693:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14693:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14672:60:0" - }, - { - "assignments": [ - 1278 - ], - "declarations": [ - { - "constant": false, - "id": 1278, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1324, - "src": "14736:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1277, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "14736:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1284, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1281, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "14795:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "14795:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1279, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "14761:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "14761:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14761:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14736:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1287, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14834:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14834:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1278, - "src": "14846:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1290, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "14846:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1286, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "14823:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14823:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14866:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1285, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14815:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14815:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1294, - "nodeType": "ExpressionStatement", - "src": "14815:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1296, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "14894:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1297, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "14894:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "566964656f20616c7265616479206465616374697661746564", - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14910:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", - "typeString": "literal_string \"Video already deactivated\"" - }, - "value": "Video already deactivated" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", - "typeString": "literal_string \"Video already deactivated\"" - } - ], - "id": 1295, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14886:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14886:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1300, - "nodeType": "ExpressionStatement", - "src": "14886:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1304, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1265, - "src": "14956:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14950:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 1302, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14950:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14950:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14950:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14975:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14950:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", - "id": 1309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14978:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - }, - "value": "The reason should be at least 2 characters long" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - } - ], - "id": 1301, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14942:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14942:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1311, - "nodeType": "ExpressionStatement", - "src": "14942:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1315, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "15058:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15068:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 1312, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "15032:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 3239, - "src": "15032:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15032:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1318, - "nodeType": "ExpressionStatement", - "src": "15032:42:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1320, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "15100:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1321, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1265, - "src": "15110:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1319, - "name": "VideoDeactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "15083:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory)" - } - }, - "id": 1322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15083:35:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1323, - "nodeType": "EmitStatement", - "src": "15078:40:0" - } - ] - }, - "documentation": null, - "functionSelector": "a51a83f2", - "id": 1325, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1268, - "modifierName": { - "argumentTypes": null, - "id": 1267, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "14654:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14654:13:0" - } - ], - "name": "deactivateVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1263, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1325, - "src": "14603:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1262, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "14603:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1265, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1325, - "src": "14622:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1264, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14622:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14599:47:0" - }, - "returnParameters": { - "id": 1269, - "nodeType": "ParameterList", - "parameters": [], - "src": "14668:0:0" - }, - "scope": 1377, - "src": "14574:548:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1375, - "nodeType": "Block", - "src": "15195:350:0", - "statements": [ - { - "assignments": [ - 1333 - ], - "declarations": [ - { - "constant": false, - "id": 1333, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1375, - "src": "15199:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1332, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "15199:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1338, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1336, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1327, - "src": "15250:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1334, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "15220:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "15220:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15220:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15199:60:0" - }, - { - "assignments": [ - 1340 - ], - "declarations": [ - { - "constant": false, - "id": 1340, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1375, - "src": "15263:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1339, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "15263:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1346, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1343, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1333, - "src": "15322:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1344, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "15322:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1341, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "15288:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "15288:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15288:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15263:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1349, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "15361:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15361:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1351, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1340, - "src": "15373:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "15373:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1348, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "15350:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15350:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15393:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1347, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15342:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1356, - "nodeType": "ExpressionStatement", - "src": "15342:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15421:15:0", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1358, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1333, - "src": "15422:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1359, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "15422:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "566964656f20616c726561647920616374697665", - "id": 1361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15438:22:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", - "typeString": "literal_string \"Video already active\"" - }, - "value": "Video already active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", - "typeString": "literal_string \"Video already active\"" - } - ], - "id": 1357, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15413:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15413:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1363, - "nodeType": "ExpressionStatement", - "src": "15413:48:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1367, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1327, - "src": "15491:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15501:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 1364, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "15465:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 3239, - "src": "15465:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 1369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15465:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1370, - "nodeType": "ExpressionStatement", - "src": "15465:41:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1372, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1327, - "src": "15532:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 1371, - "name": "VideoReactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "15515:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15515:26:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1374, - "nodeType": "EmitStatement", - "src": "15510:31:0" - } - ] - }, - "documentation": null, - "functionSelector": "11ff105e", - "id": 1376, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1330, - "modifierName": { - "argumentTypes": null, - "id": 1329, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "15181:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15181:13:0" - } - ], - "name": "activateVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1327, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1376, - "src": "15155:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1326, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15155:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15151:22:0" - }, - "returnParameters": { - "id": 1331, - "nodeType": "ParameterList", - "parameters": [], - "src": "15195:0:0" - }, - "scope": 1377, - "src": "15128:417:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1378, - "src": "485:15062:0" - } - ], - "src": "0:15548:0" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/ContentDirectory.sol", - "exportedSymbols": { - "ContentDirectory": [ - 1377 - ] - }, - "id": 1378, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "id": 2, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:0" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/ChannelStorage.sol", - "file": "./storage/ChannelStorage.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 2876, - "src": "84:38:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", - "file": "./storage/CuratorGroupStorage.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3115, - "src": "123:43:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", - "file": "./storage/VideoStorage.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3264, - "src": "167:36:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", - "file": "./bridge/MembershipBridge.sol", - "id": 6, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 1614, - "src": "205:39:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", - "file": "./bridge/ContentWorkingGroupBridge.sol", - "id": 7, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 1546, - "src": "245:48:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "file": "./bridge/auth.sol", - "id": 8, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 1678, - "src": "294:27:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "file": "../node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "id": 9, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 4144, - "src": "323:68:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 10, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3403, - "src": "392:68:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/types.sol", - "file": "./types.sol", - "id": 11, - "nodeType": "ImportDirective", - "scope": 1378, - "sourceUnit": 3271, - "src": "462:21:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 12, - "name": "RuntimeManageable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1677, - "src": "514:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeManageable_$1677", - "typeString": "contract RuntimeManageable" - } - }, - "id": 13, - "nodeType": "InheritanceSpecifier", - "src": "514:17:0" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 14, - "name": "Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4143, - "src": "533:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Pausable_$4143", - "typeString": "contract Pausable" - } - }, - "id": 15, - "nodeType": "InheritanceSpecifier", - "src": "533:8:0" - } - ], - "contractDependencies": [ - 1677, - 3293, - 4143 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1377, - "linearizedBaseContracts": [ - 1377, - 4143, - 3293, - 1677 - ], - "name": "ContentDirectory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 17, - "mutability": "mutable", - "name": "channelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "573:29:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - }, - "typeName": { - "contractScope": null, - "id": 16, - "name": "ChannelStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2875, - "src": "573:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 19, - "mutability": "mutable", - "name": "videoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "608:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - }, - "typeName": { - "contractScope": null, - "id": 18, - "name": "VideoStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3263, - "src": "608:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 21, - "mutability": "mutable", - "name": "curatorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "639:39:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - }, - "typeName": { - "contractScope": null, - "id": 20, - "name": "CuratorGroupStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3114, - "src": "639:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 23, - "mutability": "mutable", - "name": "membershipBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "704:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - }, - "typeName": { - "contractScope": null, - "id": 22, - "name": "MembershipBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1613, - "src": "704:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "mutability": "mutable", - "name": "contentWorkingGroupBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "740:51:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - }, - "typeName": { - "contractScope": null, - "id": 24, - "name": "ContentWorkingGroupBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1545, - "src": "740:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 28, - "mutability": "mutable", - "name": "channelInstancesLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "927:33:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 26, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "927:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130", - "id": 27, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "958:2:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "videosPerChannelDefaultLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "966:39:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 29, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "966:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "35", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1004:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_5_by_1", - "typeString": "int_const 5" - }, - "value": "5" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 34, - "mutability": "mutable", - "name": "videosPerChannelMaxLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1377, - "src": "1011:38:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 32, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1011:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31303030", - "id": 33, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1045:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000_by_1", - "typeString": "int_const 1000" - }, - "value": "1000" - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 38, - "name": "ChannelInstancesLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 37, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 36, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 38, - "src": "1088:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 35, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1088:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1087:18:0" - }, - "src": "1053:53:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 42, - "name": "VideosPerChannelDefaultLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 41, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 40, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 42, - "src": "1150:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 39, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1150:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1149:18:0" - }, - "src": "1108:60:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 46, - "name": "VideosPerChannelMaxLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 45, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 46, - "src": "1208:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 43, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1208:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1207:18:0" - }, - "src": "1170:56:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 56, - "name": "Migrated", - "nodeType": "EventDefinition", - "parameters": { - "id": 55, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 48, - "indexed": false, - "mutability": "mutable", - "name": "_logic", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1244:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1244:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 50, - "indexed": false, - "mutability": "mutable", - "name": "_videoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1260:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 49, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1260:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 52, - "indexed": false, - "mutability": "mutable", - "name": "_channelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1283:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 51, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1283:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 54, - "indexed": false, - "mutability": "mutable", - "name": "_curatorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 56, - "src": "1308:28:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 53, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1308:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1243:94:0" - }, - "src": "1229:109:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 67, - "name": "ChannelCreated", - "nodeType": "EventDefinition", - "parameters": { - "id": 66, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 58, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 67, - "src": "1375:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 57, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1375:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 60, - "indexed": false, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 67, - "src": "1387:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 59, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1387:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 65, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 67, - "src": "1416:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 61, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1416:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 63, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1423:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "1416:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 64, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1416:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1374:64:0" - }, - "src": "1354:85:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 76, - "name": "ChannelMetadataUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 75, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 69, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 76, - "src": "1470:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 68, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1470:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 74, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 76, - "src": "1482:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 70, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1482:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 72, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 71, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1489:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "1482:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 73, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1482:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1469:35:0" - }, - "src": "1441:64:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 82, - "name": "ChannelOwnershipUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 81, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 78, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 82, - "src": "1537:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 77, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1537:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 80, - "indexed": false, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 82, - "src": "1549:27:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 79, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "1549:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1536:41:0" - }, - "src": "1507:71:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 88, - "name": "ChannelVideoLimitUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 87, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 88, - "src": "1611:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 83, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1611:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 86, - "indexed": false, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 88, - "src": "1623:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 85, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1623:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1610:30:0" - }, - "src": "1580:61:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 94, - "name": "ChannelDeactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 93, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 90, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 94, - "src": "1668:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 89, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1668:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 92, - "indexed": false, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 94, - "src": "1680:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 91, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1680:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1667:28:0" - }, - "src": "1643:53:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 98, - "name": "ChannelReactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 97, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 96, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 98, - "src": "1723:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 95, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1723:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1722:12:0" - }, - "src": "1698:37:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 104, - "name": "CuratorAddedToGroup", - "nodeType": "EventDefinition", - "parameters": { - "id": 103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 100, - "indexed": false, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 104, - "src": "1782:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 99, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1782:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 102, - "indexed": false, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 104, - "src": "1801:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 101, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1801:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1781:36:0" - }, - "src": "1756:62:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 110, - "name": "CuratorRemovedFromGroup", - "nodeType": "EventDefinition", - "parameters": { - "id": 109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 106, - "indexed": false, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 110, - "src": "1850:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 105, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1850:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 108, - "indexed": false, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 110, - "src": "1869:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 107, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1869:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1849:36:0" - }, - "src": "1820:66:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 114, - "name": "CuratorRemovedFromAllGroups", - "nodeType": "EventDefinition", - "parameters": { - "id": 113, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 112, - "indexed": false, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 114, - "src": "1922:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 111, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1922:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1921:19:0" - }, - "src": "1888:53:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 125, - "name": "VideoAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 124, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 116, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "1971:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 115, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1971:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 118, - "indexed": false, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "1983:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 117, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1983:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 123, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "2002:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 119, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2002:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 121, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2009:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "2002:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 122, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2002:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1970:54:0" - }, - "src": "1954:71:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 134, - "name": "VideoMetadataUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 127, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "2054:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 126, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2054:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 132, - "indexed": false, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 134, - "src": "2066:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 128, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2066:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 130, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 129, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2073:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "2066:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 131, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2066:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2053:35:0" - }, - "src": "2027:62:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 138, - "name": "VideoRemoved", - "nodeType": "EventDefinition", - "parameters": { - "id": 137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 136, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 138, - "src": "2110:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 135, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2110:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2109:12:0" - }, - "src": "2091:31:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 144, - "name": "VideoRemovedByCurator", - "nodeType": "EventDefinition", - "parameters": { - "id": 143, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 140, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 144, - "src": "2152:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 139, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2152:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 142, - "indexed": false, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 144, - "src": "2164:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 141, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2164:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2151:28:0" - }, - "src": "2124:56:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 150, - "name": "VideoDeactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 146, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 150, - "src": "2205:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 145, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2205:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 148, - "indexed": false, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 150, - "src": "2217:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 147, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2217:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2204:28:0" - }, - "src": "2182:51:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 154, - "name": "VideoReactivated", - "nodeType": "EventDefinition", - "parameters": { - "id": 153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 152, - "indexed": false, - "mutability": "mutable", - "name": "_id", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 154, - "src": "2258:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 151, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2258:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:12:0" - }, - "src": "2235:35:0" - }, - { - "body": { - "id": 166, - "nodeType": "Block", - "src": "2373:63:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 163, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 156, - "src": "2423:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 161, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2384:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveLead", - "nodeType": "MemberAccess", - "referencedDeclaration": 1544, - "src": "2384:38:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2384:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 160, - "id": 165, - "nodeType": "Return", - "src": "2377:55:0" - } - ] - }, - "documentation": null, - "id": 167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isActiveLead", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 157, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 156, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "2326:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2326:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2325:18:0" - }, - "returnParameters": { - "id": 160, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 159, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 167, - "src": "2367:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 158, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2367:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2366:6:0" - }, - "scope": 1377, - "src": "2302:134:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 180, - "nodeType": "Block", - "src": "2507:255:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 176, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 169, - "src": "2746:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2756:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 174, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "2710:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCurator", - "nodeType": "MemberAccess", - "referencedDeclaration": 1513, - "src": "2710:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", - "typeString": "function (address,uint64) view external returns (bool)" - } - }, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2710:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 173, - "id": 179, - "nodeType": "Return", - "src": "2703:55:0" - } - ] - }, - "documentation": null, - "id": 181, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_isCurator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 169, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 181, - "src": "2460:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2460:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2459:18:0" - }, - "returnParameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 172, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 181, - "src": "2501:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 171, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2501:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2500:6:0" - }, - "scope": 1377, - "src": "2439:323:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 192, - "nodeType": "Block", - "src": "2785:79:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 185, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2811:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2811:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 184, - "name": "_isActiveLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "2797:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2797:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "416374697665206c6561642061636365737320726571756972656421", - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2824:30:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", - "typeString": "literal_string \"Active lead access required!\"" - }, - "value": "Active lead access required!" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d0dc269020709b37798b3a7c4a2fc568368b6cc5ed2f38f5ee7283c94de6f8e3", - "typeString": "literal_string \"Active lead access required!\"" - } - ], - "id": 183, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2789:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2789:66:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "2789:66:0" - }, - { - "id": 191, - "nodeType": "PlaceholderStatement", - "src": "2859:1:0" - } - ] - }, - "documentation": null, - "id": 193, - "name": "onlyLead", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 182, - "nodeType": "ParameterList", - "parameters": [], - "src": "2782:2:0" - }, - "src": "2765:99:0", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 208, - "nodeType": "Block", - "src": "2999:89:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 200, - "name": "channelInstancesLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "3003:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 201, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "3027:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "3003:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 203, - "nodeType": "ExpressionStatement", - "src": "3003:33:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 205, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 195, - "src": "3074:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 204, - "name": "ChannelInstancesLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "3045:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3045:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 207, - "nodeType": "EmitStatement", - "src": "3040:44:0" - } - ] - }, - "documentation": null, - "functionSelector": "72c95f83", - "id": 209, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 198, - "modifierName": { - "argumentTypes": null, - "id": 197, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "2987:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2987:11:0" - } - ], - "name": "setChannelInstancesLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 195, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 209, - "src": "2962:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 194, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2962:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2961:18:0" - }, - "returnParameters": { - "id": 199, - "nodeType": "ParameterList", - "parameters": [], - "src": "2999:0:0" - }, - "scope": 1377, - "src": "2927:161:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 231, - "nodeType": "Block", - "src": "3173:242:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 217, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "3189:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 218, - "name": "videosPerChannelMaxLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "3202:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3189:37:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766964656f735065724368616e6e656c44656661756c744c696d69742063616e6e6f74206578636565642063757272656e7420766964656f735065724368616e6e656c4d61784c696d6974", - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3231:77:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", - "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" - }, - "value": "videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f00a02b63058f986e79a5d1c3d6dc043ae061f14ebfcb3b988b5f1dae3ddd4fc", - "typeString": "literal_string \"videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit\"" - } - ], - "id": 216, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3177:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3177:135:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 222, - "nodeType": "ExpressionStatement", - "src": "3177:135:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 225, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 223, - "name": "videosPerChannelDefaultLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "3316:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 224, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "3347:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3316:40:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 226, - "nodeType": "ExpressionStatement", - "src": "3316:40:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 228, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 211, - "src": "3401:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 227, - "name": "VideosPerChannelDefaultLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 42, - "src": "3365:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3365:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 230, - "nodeType": "EmitStatement", - "src": "3360:51:0" - } - ] - }, - "documentation": null, - "functionSelector": "ae90430a", - "id": 232, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 214, - "modifierName": { - "argumentTypes": null, - "id": 213, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3161:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3161:11:0" - } - ], - "name": "setVideosPerChannelDefaultLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 211, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 232, - "src": "3136:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 210, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3136:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3135:18:0" - }, - "returnParameters": { - "id": 215, - "nodeType": "ParameterList", - "parameters": [], - "src": "3173:0:0" - }, - "scope": 1377, - "src": "3094:321:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 254, - "nodeType": "Block", - "src": "3496:249:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 240, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3512:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 241, - "name": "videosPerChannelDefaultLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "3525:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3512:41:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766964656f735065724368616e6e656c4d61784c696d6974206d7573742062652067726561746572207468616e206f7220657175616c20746f20766964656f735065724368616e6e656c44656661756c744c696d6974", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3558:88:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", - "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" - }, - "value": "videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ab16e5a71ba7c8d9cd090dc2b7682b7b52eb1121ce5cf3cf42c6b483de3fd268", - "typeString": "literal_string \"videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit\"" - } - ], - "id": 239, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3500:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3500:150:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 245, - "nodeType": "ExpressionStatement", - "src": "3500:150:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 246, - "name": "videosPerChannelMaxLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "3654:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 247, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3681:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3654:36:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 249, - "nodeType": "ExpressionStatement", - "src": "3654:36:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 251, - "name": "_newLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3731:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 250, - "name": "VideosPerChannelMaxLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "3699:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3699:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 253, - "nodeType": "EmitStatement", - "src": "3694:47:0" - } - ] - }, - "documentation": null, - "functionSelector": "9da9f335", - "id": 255, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 237, - "modifierName": { - "argumentTypes": null, - "id": 236, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3484:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3484:11:0" - } - ], - "name": "setVideosPerChannelMaxLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 235, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 234, - "mutability": "mutable", - "name": "_newLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 255, - "src": "3459:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 233, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3459:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3458:18:0" - }, - "returnParameters": { - "id": 238, - "nodeType": "ParameterList", - "parameters": [], - "src": "3496:0:0" - }, - "scope": 1377, - "src": "3421:324:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 263, - "nodeType": "Block", - "src": "3831:16:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 260, - "name": "_pause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4126, - "src": "3835:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3835:8:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 262, - "nodeType": "ExpressionStatement", - "src": "3835:8:0" - } - ] - }, - "documentation": null, - "functionSelector": "8456cb59", - "id": 264, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 258, - "modifierName": { - "argumentTypes": null, - "id": 257, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3819:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3819:11:0" - } - ], - "name": "pause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 256, - "nodeType": "ParameterList", - "parameters": [], - "src": "3809:2:0" - }, - "returnParameters": { - "id": 259, - "nodeType": "ParameterList", - "parameters": [], - "src": "3831:0:0" - }, - "scope": 1377, - "src": "3795:52:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 272, - "nodeType": "Block", - "src": "3888:18:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 269, - "name": "_unpause", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4142, - "src": "3892:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3892:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 271, - "nodeType": "ExpressionStatement", - "src": "3892:10:0" - } - ] - }, - "documentation": null, - "functionSelector": "3f4ba83a", - "id": 273, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 267, - "modifierName": { - "argumentTypes": null, - "id": 266, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "3876:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3876:11:0" - } - ], - "name": "unpause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 265, - "nodeType": "ParameterList", - "parameters": [], - "src": "3866:2:0" - }, - "returnParameters": { - "id": 268, - "nodeType": "ParameterList", - "parameters": [], - "src": "3888:0:0" - }, - "scope": 1377, - "src": "3850:56:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 311, - "nodeType": "Block", - "src": "4199:216:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 291, - "name": "membershipBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "4203:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 292, - "name": "_membershipBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 277, - "src": "4222:17:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "src": "4203:36:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "id": 294, - "nodeType": "ExpressionStatement", - "src": "4203:36:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 295, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "4243:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 296, - "name": "_contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 279, - "src": "4271:26:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "src": "4243:54:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "4243:54:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 299, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "4301:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 300, - "name": "_channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 281, - "src": "4318:15:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "src": "4301:32:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 302, - "nodeType": "ExpressionStatement", - "src": "4301:32:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 303, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4337:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 304, - "name": "_videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "4352:13:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "src": "4337:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 306, - "nodeType": "ExpressionStatement", - "src": "4337:28:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 307, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "4369:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 308, - "name": "_curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "4391:20:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "src": "4369:42:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 310, - "nodeType": "ExpressionStatement", - "src": "4369:42:0" - } - ] - }, - "documentation": null, - "id": 312, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 288, - "name": "_provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 275, - "src": "4188:9:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - } - ], - "id": 289, - "modifierName": { - "argumentTypes": null, - "id": 287, - "name": "RuntimeManageable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "4170:17:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", - "typeString": "type(contract RuntimeManageable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "4170:28:0" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 275, - "mutability": "mutable", - "name": "_provider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "3925:32:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 274, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "3925:22:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 277, - "mutability": "mutable", - "name": "_membershipBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "3961:34:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - }, - "typeName": { - "contractScope": null, - "id": 276, - "name": "MembershipBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1613, - "src": "3961:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 279, - "mutability": "mutable", - "name": "_contentWorkingGroupBridge", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "3999:52:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - }, - "typeName": { - "contractScope": null, - "id": 278, - "name": "ContentWorkingGroupBridge", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1545, - "src": "3999:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 281, - "mutability": "mutable", - "name": "_channelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "4055:30:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - }, - "typeName": { - "contractScope": null, - "id": 280, - "name": "ChannelStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2875, - "src": "4055:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 283, - "mutability": "mutable", - "name": "_videoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "4089:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - }, - "typeName": { - "contractScope": null, - "id": 282, - "name": "VideoStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3263, - "src": "4089:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "mutability": "mutable", - "name": "_curatorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 312, - "src": "4119:40:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - }, - "typeName": { - "contractScope": null, - "id": 284, - "name": "CuratorGroupStorage", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3114, - "src": "4119:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:241:0" - }, - "returnParameters": { - "id": 290, - "nodeType": "ParameterList", - "parameters": [], - "src": "4199:0:0" - }, - "scope": 1377, - "src": "3909:506:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 397, - "nodeType": "Block", - "src": "4637:559:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 328, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4665:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - ], - "id": 327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4657:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 326, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4657:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4657:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 330, - "name": "_newVideoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "4680:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 331, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4698:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 325, - "name": "_migrateStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4641:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4641:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 333, - "nodeType": "ExpressionStatement", - "src": "4641:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 337, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "4736:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - ], - "id": 336, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4728:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4728:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4728:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 339, - "name": "_newChannelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 318, - "src": "4753:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 340, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4773:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 334, - "name": "_migrateStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4712:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4712:71:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 342, - "nodeType": "ExpressionStatement", - "src": "4712:71:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 346, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "4811:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - ], - "id": 345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4803:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4803:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4803:28:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 348, - "name": "_newCuratorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "4833:23:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 349, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4858:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 343, - "name": "_migrateStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 428, - "src": "4787:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4787:81:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 351, - "nodeType": "ExpressionStatement", - "src": "4787:81:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 353, - "name": "_newLogic", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "4890:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 354, - "name": "_newVideoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "4904:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4932:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4924:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 355, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4924:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4924:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4904:30:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 364, - "name": "_newVideoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "4961:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4904:73:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 362, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "4945:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - ], - "id": 361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4937:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 360, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4937:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4937:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 366, - "name": "_newChannelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 318, - "src": "4982:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5012:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5004:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5004:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 370, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5004:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4982:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 376, - "name": "_newChannelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 318, - "src": "5043:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "4982:79:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 374, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "5025:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - ], - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5017:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5017:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5017:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 378, - "name": "_newCuratorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "5066:23:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5101:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5093:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5093:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5093:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5066:37:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 388, - "name": "_newCuratorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 320, - "src": "5137:23:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "5066:94:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 386, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "5114:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - ], - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5106:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 384, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5106:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5106:28:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 352, - "name": "Migrated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4877:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address,address)" - } - }, - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4877:287:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 391, - "nodeType": "EmitStatement", - "src": "4872:292:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 393, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "5181:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5181:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 392, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -21, - "src": "5168:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", - "typeString": "function (address payable)" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:24:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 396, - "nodeType": "ExpressionStatement", - "src": "5168:24:0" - } - ] - }, - "documentation": null, - "functionSelector": "e30ac74e", - "id": 398, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 323, - "modifierName": { - "argumentTypes": null, - "id": 322, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "4625:11:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4625:11:0" - } - ], - "name": "migrate", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 321, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 314, - "mutability": "mutable", - "name": "_newLogic", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4486:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 313, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4486:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 316, - "mutability": "mutable", - "name": "_newVideoStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4513:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 315, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4513:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 318, - "mutability": "mutable", - "name": "_newChannelStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4547:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 317, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4547:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 320, - "mutability": "mutable", - "name": "_newCuratorGroupStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 398, - "src": "4583:31:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 319, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4583:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4482:135:0" - }, - "returnParameters": { - "id": 324, - "nodeType": "ParameterList", - "parameters": [], - "src": "4637:0:0" - }, - "scope": 1377, - "src": "4465:731:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "5325:222:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 407, - "name": "_newStorageAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 402, - "src": "5333:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5363:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5355:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 408, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5355:7:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5355:10:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5333:32:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 414, - "nodeType": "IfStatement", - "src": "5329:113:0", - "trueBody": { - "id": 413, - "nodeType": "Block", - "src": "5367:75:0", - "statements": [] - } - }, - { - "assignments": [ - 416 - ], - "declarations": [ - { - "constant": false, - "id": 416, - "mutability": "mutable", - "name": "oldStorage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 427, - "src": "5445:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - }, - "typeName": { - "contractScope": null, - "id": 415, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "5445:7:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 420, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 418, - "name": "_oldStorageAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 400, - "src": "5474:18:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 417, - "name": "Ownable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3402, - "src": "5466:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Ownable_$3402_$", - "typeString": "type(contract Ownable)" - } - }, - "id": 419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5466:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5445:48:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 424, - "name": "_newLogicAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 404, - "src": "5526:16:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "oldStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 416, - "src": "5497:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 3401, - "src": "5497:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5497:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "5497:46:0" - } - ] - }, - "documentation": null, - "id": 428, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_migrateStorage", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 400, - "mutability": "mutable", - "name": "_oldStorageAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 428, - "src": "5228:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 399, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5228:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 402, - "mutability": "mutable", - "name": "_newStorageAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 428, - "src": "5258:26:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5258:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 404, - "mutability": "mutable", - "name": "_newLogicAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 428, - "src": "5288:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5288:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5224:91:0" - }, - "returnParameters": { - "id": 406, - "nodeType": "ParameterList", - "parameters": [], - "src": "5325:0:0" - }, - "scope": 1377, - "src": "5199:348:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 431, - "libraryName": { - "contractScope": null, - "id": 429, - "name": "ChannelOwnershipDecoder", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2658, - "src": "5569:23:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelOwnershipDecoder_$2658", - "typeString": "library ChannelOwnershipDecoder" - } - }, - "nodeType": "UsingForDirective", - "src": "5563:51:0", - "typeName": { - "contractScope": null, - "id": 430, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "5597:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - } - }, - { - "body": { - "id": 445, - "nodeType": "Block", - "src": "5710:180:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 439, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "5722:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 440, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isValid", - "nodeType": "MemberAccess", - "referencedDeclaration": 2657, - "src": "5722:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5722:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e6572736869702064617461", - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5744:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", - "typeString": "literal_string \"Invalid ownership data\"" - }, - "value": "Invalid ownership data" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ba2e985cd9fb523023ae989243ded37472949c411b9f7fef728832286c2b2553", - "typeString": "literal_string \"Invalid ownership data\"" - } - ], - "id": 438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5714:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5714:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 444, - "nodeType": "ExpressionStatement", - "src": "5714:55:0" - } - ] - }, - "documentation": null, - "id": 446, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_validateOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 434, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 433, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 446, - "src": "5645:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 432, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "5645:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5644:36:0" - }, - "returnParameters": { - "id": 437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 436, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 446, - "src": "5704:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 435, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5704:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5703:6:0" - }, - "scope": 1377, - "src": "5617:273:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 495, - "nodeType": "Block", - "src": "6001:418:0", - "statements": [ - { - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 455, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6009:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 456, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 2499, - "src": "6009:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6009:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 465, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6096:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "6096:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6096:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 477, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6216:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 478, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2533, - "src": "6216:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6216:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 491, - "nodeType": "Block", - "src": "6370:46:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6382:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 487, - "name": "assert", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -3, - "src": "6375:6:0", - "typeDescriptions": { - "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6375:13:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 490, - "nodeType": "ExpressionStatement", - "src": "6375:13:0" - } - ] - }, - "id": 492, - "nodeType": "IfStatement", - "src": "6212:204:0", - "trueBody": { - "id": 486, - "nodeType": "Block", - "src": "6245:117:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 482, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "6346:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6346:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 480, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "6307:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isActiveLead", - "nodeType": "MemberAccess", - "referencedDeclaration": 1544, - "src": "6307:38:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6307:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 454, - "id": 485, - "nodeType": "Return", - "src": "6300:57:0" - } - ] - } - }, - "id": 493, - "nodeType": "IfStatement", - "src": "6092:324:0", - "trueBody": { - "id": 476, - "nodeType": "Block", - "src": "6119:85:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 470, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 448, - "src": "6167:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 471, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6177:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 472, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "asMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 2578, - "src": "6177:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (uint64)" - } - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6177:21:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 468, - "name": "membershipBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "6131:16:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MembershipBridge_$1613", - "typeString": "contract MembershipBridge" - } - }, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isMemberController", - "nodeType": "MemberAccess", - "referencedDeclaration": 1595, - "src": "6131:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_uint64_$returns$_t_bool_$", - "typeString": "function (address,uint64) view external returns (bool)" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6131:68:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 454, - "id": 475, - "nodeType": "Return", - "src": "6124:75:0" - } - ] - } - }, - "id": 494, - "nodeType": "IfStatement", - "src": "6005:411:0", - "trueBody": { - "id": 464, - "nodeType": "Block", - "src": "6033:51:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 458, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 448, - "src": "6045:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 459, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 450, - "src": "6057:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 460, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "asAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 2557, - "src": "6057:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (address)" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6057:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6045:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 454, - "id": 463, - "nodeType": "Return", - "src": "6038:41:0" - } - ] - } - } - ] - }, - "documentation": null, - "id": 496, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hasOwnerAccess", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 448, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 496, - "src": "5918:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 447, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5918:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 450, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 496, - "src": "5936:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 449, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "5936:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5917:54:0" - }, - "returnParameters": { - "id": 454, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 453, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 496, - "src": "5995:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 452, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5995:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5994:6:0" - }, - "scope": 1377, - "src": "5893:526:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 516, - "nodeType": "Block", - "src": "6526:91:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 505, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6537:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 506, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2533, - "src": "6537:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6537:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 512, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6604:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 511, - "name": "_isCurator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 181, - "src": "6593:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6593:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "6537:76:0", - "trueExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 509, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6581:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 508, - "name": "_isActiveLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "6567:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6567:23:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 504, - "id": 515, - "nodeType": "Return", - "src": "6530:83:0" - } - ] - }, - "documentation": null, - "id": 517, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_canCurate", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 501, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 498, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 517, - "src": "6443:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 497, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6443:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 500, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 517, - "src": "6461:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 499, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "6461:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6442:54:0" - }, - "returnParameters": { - "id": 504, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 503, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 517, - "src": "6520:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 502, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6520:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6519:6:0" - }, - "scope": 1377, - "src": "6422:195:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 528, - "nodeType": "Block", - "src": "6786:25:0", - "statements": [] - }, - "documentation": null, - "id": 529, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_hasGroupAccessToOperation", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 519, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6660:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 518, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6660:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 521, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6680:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 520, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "6680:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 523, - "mutability": "mutable", - "name": "_operation", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6718:36:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - }, - "typeName": { - "contractScope": null, - "id": 522, - "name": "ContentDirectoryOperation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3270, - "src": "6718:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6656:101:0" - }, - "returnParameters": { - "id": 527, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 526, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 529, - "src": "6780:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 525, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6780:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6779:6:0" - }, - "scope": 1377, - "src": "6620:191:0", - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 579, - "nodeType": "Block", - "src": "6932:418:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 542, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "6944:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 543, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isValid", - "nodeType": "MemberAccess", - "referencedDeclaration": 2657, - "src": "6944:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6944:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657273686970", - "id": 545, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6966:19:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - }, - "value": "Invalid ownership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - } - ], - "id": 541, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6936:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6936:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 547, - "nodeType": "ExpressionStatement", - "src": "6936:50:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 549, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "6998:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "nextChannelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 2673, - "src": "6998:28:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint64_$", - "typeString": "function () view external returns (uint64)" - } - }, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6998:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 552, - "name": "channelInstancesLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "7032:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "6998:55:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4368616e6e656c20696e7374616e636573206c696d69742072656163686564", - "id": 554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7055:33:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", - "typeString": "literal_string \"Channel instances limit reached\"" - }, - "value": "Channel instances limit reached" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3e42082e0acf5b78de926696c2f818255095e40170dd736a530ff06f0d8fd9c9", - "typeString": "literal_string \"Channel instances limit reached\"" - } - ], - "id": 548, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "6990:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6990:99:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "6990:99:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 559, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7117:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7117:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 561, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "7129:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 558, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "7101:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7101:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e69656420756e6465722070726f7669646564206f776e657273686970", - "id": 563, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7142:40:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", - "typeString": "literal_string \"Access denied under provided ownership\"" - }, - "value": "Access denied under provided ownership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0f9c7bab847ff797c0cf314a389ac7dca18bfc8d3aae377fc0025b5c97514bd2", - "typeString": "literal_string \"Access denied under provided ownership\"" - } - ], - "id": 557, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7093:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7093:90:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 565, - "nodeType": "ExpressionStatement", - "src": "7093:90:0" - }, - { - "assignments": [ - 567 - ], - "declarations": [ - { - "constant": false, - "id": 567, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 579, - "src": "7187:16:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 566, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7187:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 572, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 570, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "7232:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 568, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "7206:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2757, - "src": "7206:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (struct ChannelOwnership memory) external returns (uint64)" - } - }, - "id": 571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7206:37:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7187:56:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 574, - "name": "channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 567, - "src": "7313:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 575, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 531, - "src": "7324:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "id": 576, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 536, - "src": "7336:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 573, - "name": "ChannelCreated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7298:14:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,struct ChannelOwnership memory,string memory[2] memory[] memory)" - } - }, - "id": 577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7298:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 578, - "nodeType": "EmitStatement", - "src": "7293:53:0" - } - ] - }, - "documentation": null, - "functionSelector": "13c6e4ed", - "id": 580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 539, - "modifierName": { - "argumentTypes": null, - "id": 538, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "6918:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6918:13:0" - } - ], - "name": "createChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 537, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 531, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 580, - "src": "6841:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 530, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "6841:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 536, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 580, - "src": "6879:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 532, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6879:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 534, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 533, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6886:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "6879:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 535, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6879:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6837:73:0" - }, - "returnParameters": { - "id": 540, - "nodeType": "ParameterList", - "parameters": [], - "src": "6932:0:0" - }, - "scope": 1377, - "src": "6814:536:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 636, - "nodeType": "Block", - "src": "7462:510:0", - "statements": [ - { - "assignments": [ - 593 - ], - "declarations": [ - { - "constant": false, - "id": 593, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 636, - "src": "7466:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 592, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "7466:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 598, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 596, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "7525:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 594, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "7491:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "7491:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7491:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7466:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 601, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7568:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7568:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 603, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7580:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "7580:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 600, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "7552:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7552:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 607, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7616:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7616:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 609, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7628:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 610, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "7628:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 606, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "7605:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7605:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7552:94:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 614, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "7680:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7680:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 616, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7692:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 617, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "7692:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 618, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "7711:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "UpdateChannelMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7711:47:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 613, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "7653:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7653:106:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "7552:207:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7764:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 599, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7540:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7540:243:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 624, - "nodeType": "ExpressionStatement", - "src": "7540:243:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 626, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 593, - "src": "7866:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 627, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "7866:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686973206368616e6e656c206973206465616374697661746564", - "id": 628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7884:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", - "typeString": "literal_string \"This channel is deactivated\"" - }, - "value": "This channel is deactivated" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_77919475efb911f6801fcc8020c9153934f94997c3ded7eaf04c0dddb710cda3", - "typeString": "literal_string \"This channel is deactivated\"" - } - ], - "id": 625, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "7858:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7858:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 630, - "nodeType": "ExpressionStatement", - "src": "7858:56:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 632, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 582, - "src": "7946:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 633, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "7958:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 631, - "name": "ChannelMetadataUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "7923:22:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory[2] memory[] memory)" - } - }, - "id": 634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7923:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 635, - "nodeType": "EmitStatement", - "src": "7918:50:0" - } - ] - }, - "documentation": null, - "functionSelector": "c251e585", - "id": 637, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 590, - "modifierName": { - "argumentTypes": null, - "id": 589, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "7448:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7448:13:0" - } - ], - "name": "updateChannelMetadata", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 582, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 637, - "src": "7388:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 581, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "7388:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 587, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 637, - "src": "7409:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 583, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7409:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 585, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7416:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "7409:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 586, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7409:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7384:56:0" - }, - "returnParameters": { - "id": 591, - "nodeType": "ParameterList", - "parameters": [], - "src": "7462:0:0" - }, - "scope": 1377, - "src": "7353:619:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 695, - "nodeType": "Block", - "src": "8091:496:0", - "statements": [ - { - "assignments": [ - 647 - ], - "declarations": [ - { - "constant": false, - "id": 647, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 695, - "src": "8095:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 646, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "8095:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 652, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 650, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8154:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 648, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "8120:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "8120:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8120:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8095:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 655, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8193:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8193:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 657, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "8205:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "8205:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 654, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "8177:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8177:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e657220616363657373207265717569726564", - "id": 660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8225:23:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", - "typeString": "literal_string \"Owner access required\"" - }, - "value": "Owner access required" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9fbe780f079cf24e15de7c0173d22e73a5fe9f9b8ccc11f8c92bf669611ac622", - "typeString": "literal_string \"Owner access required\"" - } - ], - "id": 653, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8169:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8169:80:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 662, - "nodeType": "ExpressionStatement", - "src": "8169:80:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 664, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8261:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 665, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isValid", - "nodeType": "MemberAccess", - "referencedDeclaration": 2657, - "src": "8261:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8261:20:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "496e76616c6964206f776e657273686970", - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8283:19:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - }, - "value": "Invalid ownership" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_547557edc2880b5a50a8d43af0e26af166a3716df8d0070116bd53e8544926e6", - "typeString": "literal_string \"Invalid ownership\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8253:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8253:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 669, - "nodeType": "ExpressionStatement", - "src": "8253:50:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "8315:28:0", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 671, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8316:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - "id": 672, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2533, - "src": "8316:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$bound_to$_t_struct$_ChannelOwnership_$2469_memory_ptr_$", - "typeString": "function (struct ChannelOwnership memory) pure returns (bool)" - } - }, - "id": 673, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8316:27:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 676, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8361:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8361:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 675, - "name": "_isActiveLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 167, - "src": "8347:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8347:25:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "8315:57:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f6e6c79206c6561642063616e20757064617465206f776e65727368697020746f2043757261746f7247726f7570", - "id": 680, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8374:48:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", - "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" - }, - "value": "Only lead can update ownership to CuratorGroup" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_655be215c14ad928b9154fc3d0f89ed28e9f91b81680dc4b58649b70ec67185d", - "typeString": "literal_string \"Only lead can update ownership to CuratorGroup\"" - } - ], - "id": 670, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8307:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8307:116:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 682, - "nodeType": "ExpressionStatement", - "src": "8307:116:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 686, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8458:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 687, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8470:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 683, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "8427:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2810, - "src": "8427:30:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (uint64,struct ChannelOwnership memory) external" - } - }, - "id": 688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8427:54:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 689, - "nodeType": "ExpressionStatement", - "src": "8427:54:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 691, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 639, - "src": "8560:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 692, - "name": "_ownership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 641, - "src": "8572:10:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 690, - "name": "ChannelOwnershipUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 82, - "src": "8536:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$__$", - "typeString": "function (uint64,struct ChannelOwnership memory)" - } - }, - "id": 693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8536:47:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 694, - "nodeType": "EmitStatement", - "src": "8531:52:0" - } - ] - }, - "documentation": null, - "functionSelector": "eb1762d7", - "id": 696, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 644, - "modifierName": { - "argumentTypes": null, - "id": 643, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "8077:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8077:13:0" - } - ], - "name": "updateChannelOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 642, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 639, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 696, - "src": "8011:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 638, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8011:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 641, - "mutability": "mutable", - "name": "_ownership", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 696, - "src": "8032:34:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership" - }, - "typeName": { - "contractScope": null, - "id": 640, - "name": "ChannelOwnership", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2469, - "src": "8032:16:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_storage_ptr", - "typeString": "struct ChannelOwnership" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8007:62:0" - }, - "returnParameters": { - "id": 645, - "nodeType": "ParameterList", - "parameters": [], - "src": "8091:0:0" - }, - "scope": 1377, - "src": "7975:612:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 741, - "nodeType": "Block", - "src": "8744:502:0", - "statements": [ - { - "assignments": [ - 706 - ], - "declarations": [ - { - "constant": false, - "id": 706, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 741, - "src": "8748:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 705, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "8748:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 711, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 709, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8807:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 707, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "8773:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "8773:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 710, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8773:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8748:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 714, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "8930:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 715, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8930:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 716, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 706, - "src": "8942:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 717, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "8942:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 713, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "8919:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8919:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8962:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 712, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8911:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 720, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8911:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 721, - "nodeType": "ExpressionStatement", - "src": "8911:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 723, - "name": "_limit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "8990:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 724, - "name": "videosPerChannelMaxLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "9000:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "8990:34:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546865206c696d69742063616e6e6f742065786365656420676c6f62616c20766964656f735065724368616e6e656c4d61784c696d6974", - "id": 726, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9026:57:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", - "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" - }, - "value": "The limit cannot exceed global videosPerChannelMaxLimit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_82696afcfe4741e6ca986b19fda487958a2da9258b6e8cf540982aeabb2b6f02", - "typeString": "literal_string \"The limit cannot exceed global videosPerChannelMaxLimit\"" - } - ], - "id": 722, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "8982:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8982:102:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 728, - "nodeType": "ExpressionStatement", - "src": "8982:102:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 732, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "9124:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 733, - "name": "_limit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "9136:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "expression": { - "argumentTypes": null, - "id": 729, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9088:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setChannelVideoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2854, - "src": "9088:35:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint32_$returns$__$", - "typeString": "function (uint64,uint32) external" - } - }, - "id": 734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9088:55:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 735, - "nodeType": "ExpressionStatement", - "src": "9088:55:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 737, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "9223:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 738, - "name": "_limit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "9235:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 736, - "name": "ChannelVideoLimitUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 88, - "src": "9198:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", - "typeString": "function (uint64,uint64)" - } - }, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9198:44:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 740, - "nodeType": "EmitStatement", - "src": "9193:49:0" - } - ] - }, - "documentation": null, - "functionSelector": "0333f536", - "id": 742, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 703, - "modifierName": { - "argumentTypes": null, - "id": 702, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "8730:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "8730:13:0" - } - ], - "name": "updateChannelVideoLimit", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 701, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 698, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 742, - "src": "8627:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 697, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "8627:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 700, - "mutability": "mutable", - "name": "_limit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 742, - "src": "8648:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 699, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "8648:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8623:99:0" - }, - "returnParameters": { - "id": 704, - "nodeType": "ParameterList", - "parameters": [], - "src": "8744:0:0" - }, - "scope": 1377, - "src": "8590:656:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 797, - "nodeType": "Block", - "src": "9350:397:0", - "statements": [ - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 797, - "src": "9354:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 751, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "9354:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 757, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 755, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "9413:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 753, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9379:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "9379:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9379:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9354:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 760, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "9447:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9447:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 762, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "9459:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 763, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "9459:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 759, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "9436:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9436:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9479:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 758, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9428:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9428:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 767, - "nodeType": "ExpressionStatement", - "src": "9428:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 769, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "9507:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 770, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "9507:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4368616e6e656c20616c7265616479206465616374697661746564", - "id": 771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9525:29:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", - "typeString": "literal_string \"Channel already deactivated\"" - }, - "value": "Channel already deactivated" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c59c637c6a6c9f2c9cde38a95a4b0406f20f66f56478f963d802ef6cc63aa356", - "typeString": "literal_string \"Channel already deactivated\"" - } - ], - "id": 768, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9499:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9499:56:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 773, - "nodeType": "ExpressionStatement", - "src": "9499:56:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 777, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 746, - "src": "9573:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9567:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 775, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9567:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9567:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9567:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 780, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9592:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "9567:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", - "id": 782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9595:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - }, - "value": "The reason should be at least 2 characters long" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - } - ], - "id": 774, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9559:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9559:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 784, - "nodeType": "ExpressionStatement", - "src": "9559:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 788, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "9677:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 789, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9689:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 785, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9649:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 2832, - "src": "9649:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 790, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9649:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 791, - "nodeType": "ExpressionStatement", - "src": "9649:46:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 744, - "src": "9723:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 746, - "src": "9735:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 792, - "name": "ChannelDeactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 94, - "src": "9704:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory)" - } - }, - "id": 795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9704:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 796, - "nodeType": "EmitStatement", - "src": "9699:44:0" - } - ] - }, - "documentation": null, - "functionSelector": "44ff3e81", - "id": 798, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 749, - "modifierName": { - "argumentTypes": null, - "id": 748, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "9336:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9336:13:0" - } - ], - "name": "deactivateChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 744, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 798, - "src": "9283:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 743, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "9283:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 746, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 798, - "src": "9304:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 745, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9304:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9279:49:0" - }, - "returnParameters": { - "id": 750, - "nodeType": "ParameterList", - "parameters": [], - "src": "9350:0:0" - }, - "scope": 1377, - "src": "9252:495:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 840, - "nodeType": "Block", - "src": "9824:382:0", - "statements": [ - { - "assignments": [ - 806 - ], - "declarations": [ - { - "constant": false, - "id": 806, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 840, - "src": "9828:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 805, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "9828:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 811, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 809, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "9887:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 807, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "9853:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "9853:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9853:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9828:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 814, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "10010:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 815, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10010:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 816, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "10022:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 817, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "10022:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 813, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "9999:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 818, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9999:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10042:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 812, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "9991:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9991:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 821, - "nodeType": "ExpressionStatement", - "src": "9991:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "10070:17:0", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 823, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "10071:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 824, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "10071:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4368616e6e656c20616c726561647920616374697665", - "id": 826, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10089:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", - "typeString": "literal_string \"Channel already active\"" - }, - "value": "Channel already active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dde9032c02319ffc9e5a9658d888ce3488ed22b4f90c6fbc2bbf0c8a840fba7c", - "typeString": "literal_string \"Channel already active\"" - } - ], - "id": 822, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10062:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10062:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 828, - "nodeType": "ExpressionStatement", - "src": "10062:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 832, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "10146:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10158:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "10118:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 2832, - "src": "10118:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10118:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 835, - "nodeType": "ExpressionStatement", - "src": "10118:45:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 837, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "10191:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 836, - "name": "ChannelReactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "10172:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 838, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10172:30:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 839, - "nodeType": "EmitStatement", - "src": "10167:35:0" - } - ] - }, - "documentation": null, - "functionSelector": "75ef1f1e", - "id": 841, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 803, - "modifierName": { - "argumentTypes": null, - "id": 802, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "9810:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9810:13:0" - } - ], - "name": "activateChannel", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 801, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 800, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 841, - "src": "9782:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 799, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "9782:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9778:24:0" - }, - "returnParameters": { - "id": 804, - "nodeType": "ParameterList", - "parameters": [], - "src": "9824:0:0" - }, - "scope": 1377, - "src": "9753:453:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 891, - "nodeType": "Block", - "src": "10328:406:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 855, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10380:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 853, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "10340:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 1530, - "src": "10340:39:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", - "typeString": "function (uint64) view external returns (bool)" - } - }, - "id": 856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10340:51:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", - "id": 857, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10393:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - }, - "value": "Curator id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - } - ], - "id": 852, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10332:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 858, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10332:89:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 859, - "nodeType": "ExpressionStatement", - "src": "10332:89:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 863, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10465:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 861, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10433:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "groupExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 2994, - "src": "10433:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint16) view external returns (bool)" - } - }, - "id": 864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10433:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", - "id": 865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10476:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - }, - "value": "Group id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - } - ], - "id": 860, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10425:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10425:77:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 867, - "nodeType": "ExpressionStatement", - "src": "10425:77:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 871, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10551:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 872, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10563:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 869, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10514:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorInGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2904, - "src": "10514:36:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint64,uint16) view external returns (bool)" - } - }, - "id": 873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10514:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10576:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "10514:67:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f7220697320616c726561647920696e207468652067726f7570", - "id": 876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10583:33:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", - "typeString": "literal_string \"Curator is already in the group\"" - }, - "value": "Curator is already in the group" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c3f253873cc938ad74c4d6ba07aea7fdd2027fbca6643ce091cf6d0eaca312d", - "typeString": "literal_string \"Curator is already in the group\"" - } - ], - "id": 868, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10506:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10506:111:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "10506:111:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 882, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10659:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 883, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10671:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 879, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10621:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addCuratorToGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3040, - "src": "10621:37:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16) external" - } - }, - "id": 884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10621:59:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 885, - "nodeType": "ExpressionStatement", - "src": "10621:59:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 887, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 843, - "src": "10709:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 888, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 845, - "src": "10721:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 886, - "name": "CuratorAddedToGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 104, - "src": "10689:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16)" - } - }, - "id": 889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10689:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 890, - "nodeType": "EmitStatement", - "src": "10684:46:0" - } - ] - }, - "documentation": null, - "functionSelector": "d8b457fc", - "id": 892, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 848, - "modifierName": { - "argumentTypes": null, - "id": 847, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "10305:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10305:13:0" - }, - { - "arguments": null, - "id": 850, - "modifierName": { - "argumentTypes": null, - "id": 849, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "10319:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10319:8:0" - } - ], - "name": "addCuratorToGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 846, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 843, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 892, - "src": "10258:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 842, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "10258:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 845, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 892, - "src": "10279:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 844, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10279:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10254:43:0" - }, - "returnParameters": { - "id": 851, - "nodeType": "ParameterList", - "parameters": [], - "src": "10328:0:0" - }, - "scope": 1377, - "src": "10228:506:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 934, - "nodeType": "Block", - "src": "10842:423:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 906, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "10984:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 904, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "10952:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "groupExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 2994, - "src": "10952:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint16) view external returns (bool)" - } - }, - "id": 907, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10952:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f7570206964206e6f74207265636f676e697a6564", - "id": 908, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10995:25:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - }, - "value": "Group id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7fb9187b36b0693e25977a5db502d5b200a54d380edce5a0b0261ed47c251ee9", - "typeString": "literal_string \"Group id not recognized\"" - } - ], - "id": 903, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "10944:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10944:77:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 910, - "nodeType": "ExpressionStatement", - "src": "10944:77:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 914, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "11070:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 915, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "11082:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 912, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11033:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isCuratorInGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 2904, - "src": "11033:36:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint64,uint16) view external returns (bool)" - } - }, - "id": 916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11033:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11095:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "11033:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f7220697320616c7265616479206e6f7420696e207468652067726f7570", - "id": 919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11101:37:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", - "typeString": "literal_string \"Curator is already not in the group\"" - }, - "value": "Curator is already not in the group" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fe6a81253ba4e2f662fc108a3407bb34b6867ff1714e200daef43d33eba3dce2", - "typeString": "literal_string \"Curator is already not in the group\"" - } - ], - "id": 911, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11025:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11025:114:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 921, - "nodeType": "ExpressionStatement", - "src": "11025:114:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 925, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "11186:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 926, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "11198:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 922, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11143:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeCuratorFromGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3066, - "src": "11143:42:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16) external" - } - }, - "id": 927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11143:64:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 928, - "nodeType": "ExpressionStatement", - "src": "11143:64:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 930, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 894, - "src": "11240:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 931, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 896, - "src": "11252:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 929, - "name": "CuratorRemovedFromGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 110, - "src": "11216:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16)" - } - }, - "id": 932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11216:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 933, - "nodeType": "EmitStatement", - "src": "11211:50:0" - } - ] - }, - "documentation": null, - "functionSelector": "be16b353", - "id": 935, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 899, - "modifierName": { - "argumentTypes": null, - "id": 898, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "10819:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10819:13:0" - }, - { - "arguments": null, - "id": 901, - "modifierName": { - "argumentTypes": null, - "id": 900, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "10833:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10833:8:0" - } - ], - "name": "removeCuratorFromGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 897, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 894, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 935, - "src": "10772:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 893, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "10772:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 896, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 935, - "src": "10793:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 895, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "10793:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10768:43:0" - }, - "returnParameters": { - "id": 902, - "nodeType": "ParameterList", - "parameters": [], - "src": "10842:0:0" - }, - "scope": 1377, - "src": "10737:528:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 962, - "nodeType": "Block", - "src": "11358:388:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 947, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "11410:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 945, - "name": "contentWorkingGroupBridge", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "11370:25:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContentWorkingGroupBridge_$1545", - "typeString": "contract ContentWorkingGroupBridge" - } - }, - "id": 946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 1530, - "src": "11370:39:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_bool_$", - "typeString": "function (uint64) view external returns (bool)" - } - }, - "id": 948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11370:51:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43757261746f72206964206e6f74207265636f676e697a6564", - "id": 949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11423:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - }, - "value": "Curator id not recognized" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_725d48750d4351f99a80ee0575c915278249da81ef5df6507fec8f24d481ab5c", - "typeString": "literal_string \"Curator id not recognized\"" - } - ], - "id": 944, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11362:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11362:89:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 951, - "nodeType": "ExpressionStatement", - "src": "11362:89:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 955, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "11502:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 952, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11455:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeCuratorFromAllGroups", - "nodeType": "MemberAccess", - "referencedDeclaration": 3100, - "src": "11455:46:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64) external" - } - }, - "id": 956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11455:58:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 957, - "nodeType": "ExpressionStatement", - "src": "11455:58:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 959, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 937, - "src": "11550:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 958, - "name": "CuratorRemovedFromAllGroups", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "11522:27:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11522:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 961, - "nodeType": "EmitStatement", - "src": "11517:44:0" - } - ] - }, - "documentation": null, - "functionSelector": "96cbd61b", - "id": 963, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 940, - "modifierName": { - "argumentTypes": null, - "id": 939, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "11335:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11335:13:0" - }, - { - "arguments": null, - "id": 942, - "modifierName": { - "argumentTypes": null, - "id": 941, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "11349:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11349:8:0" - } - ], - "name": "removeCuratorFromAllGroups", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 938, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 937, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 963, - "src": "11307:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 936, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "11307:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11303:24:0" - }, - "returnParameters": { - "id": 943, - "nodeType": "ParameterList", - "parameters": [], - "src": "11358:0:0" - }, - "scope": 1377, - "src": "11268:478:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "11829:351:0", - "statements": [ - { - "assignments": [ - 973 - ], - "declarations": [ - { - "constant": false, - "id": 973, - "mutability": "mutable", - "name": "group", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1008, - "src": "11833:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group" - }, - "typeName": { - "contractScope": null, - "id": 972, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "11833:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 978, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 976, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "11891:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 974, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "11854:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3014, - "src": "11854:36:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_struct$_Group_$2887_memory_ptr_$", - "typeString": "function (uint16) view external returns (struct Group memory)" - } - }, - "id": 977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11854:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11833:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 980, - "name": "group", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 973, - "src": "11912:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group memory" - } - }, - "id": 981, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2886, - "src": "11912:19:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 982, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11935:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11912:24:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f757027732063757261746f727320636f756e74206e6565647320746f2062652030", - "id": 984, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11938:38:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", - "typeString": "literal_string \"Group's curators count needs to be 0\"" - }, - "value": "Group's curators count needs to be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eb27e01732bd7b9409c595edc23f4ba3d58512859e9c733f30d42b8deb73c6e1", - "typeString": "literal_string \"Group's curators count needs to be 0\"" - } - ], - "id": 979, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11904:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11904:73:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 986, - "nodeType": "ExpressionStatement", - "src": "11904:73:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 992, - "name": "ChannelOwnerType", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2482, - "src": "12038:16:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ChannelOwnerType_$2482_$", - "typeString": "type(enum ChannelOwnerType)" - } - }, - "id": 993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "CuratorGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12038:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_enum$_ChannelOwnerType_$2482", - "typeString": "enum ChannelOwnerType" - } - ], - "id": 991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12032:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": { - "id": 990, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "12032:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12032:36:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 995, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "12070:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 988, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "11993:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "channelCountByOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2670, - "src": "11993:38:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint8_$_t_uint256_$returns$_t_uint32_$", - "typeString": "function (uint8,uint256) view external returns (uint32)" - } - }, - "id": 996, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11993:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 997, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12083:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11993:91:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "47726f75702773206368616e6e656c7320636f756e74206e6565647320746f2062652030", - "id": 999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12089:38:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", - "typeString": "literal_string \"Group's channels count needs to be 0\"" - }, - "value": "Group's channels count needs to be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cb1d9eb8521c90eb6e716121bd7b7ac845a16a1cca38db9b5c7b79e3455fe42", - "typeString": "literal_string \"Group's channels count needs to be 0\"" - } - ], - "id": 987, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "11981:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1000, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11981:150:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1001, - "nodeType": "ExpressionStatement", - "src": "11981:150:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1005, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 965, - "src": "12167:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 1002, - "name": "curatorGroupStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 21, - "src": "12135:19:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 1004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeGroup", - "nodeType": "MemberAccess", - "referencedDeclaration": 3113, - "src": "12135:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint16_$returns$__$", - "typeString": "function (uint16) external" - } - }, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12135:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "12135:41:0" - } - ] - }, - "documentation": null, - "functionSelector": "0d00a78f", - "id": 1009, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 968, - "modifierName": { - "argumentTypes": null, - "id": 967, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "11806:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11806:13:0" - }, - { - "arguments": null, - "id": 970, - "modifierName": { - "argumentTypes": null, - "id": 969, - "name": "onlyLead", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 193, - "src": "11820:8:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11820:8:0" - } - ], - "name": "removeCuratorGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 966, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 965, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1009, - "src": "11780:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 964, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "11780:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11776:22:0" - }, - "returnParameters": { - "id": 971, - "nodeType": "ParameterList", - "parameters": [], - "src": "11829:0:0" - }, - "scope": 1377, - "src": "11749:431:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1086, - "nodeType": "Block", - "src": "12289:634:0", - "statements": [ - { - "assignments": [ - 1022 - ], - "declarations": [ - { - "constant": false, - "id": 1022, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1086, - "src": "12293:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1021, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "12293:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1027, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1025, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12352:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1023, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "12318:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "12318:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12318:45:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12293:70:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1043, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1030, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12395:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12395:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1032, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12407:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1033, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "12407:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1029, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "12379:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12379:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1036, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "12459:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12459:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1038, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12471:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "12471:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1040, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "12490:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 1041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "AddVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12490:34:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 1035, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "12432:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 1042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12432:93:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "12379:146:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1044, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12530:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1028, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12367:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1045, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12367:182:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1046, - "nodeType": "ExpressionStatement", - "src": "12367:182:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1048, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12561:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1049, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "12561:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616e6e6f742061646420766964656f20746f2061206368616e6e656c20746861742069736e277420616374697665", - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12579:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", - "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" - }, - "value": "Cannot add video to a channel that isn't active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c4ab299cae8d392863fc902ae2a4f88ae6a58ae7e2a75592a1fe910c0501a289", - "typeString": "literal_string \"Cannot add video to a channel that isn't active\"" - } - ], - "id": 1047, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12553:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12553:76:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1052, - "nodeType": "ExpressionStatement", - "src": "12553:76:0" - }, - { - "assignments": [ - 1054 - ], - "declarations": [ - { - "constant": false, - "id": 1054, - "mutability": "mutable", - "name": "channelVideoLimit", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1086, - "src": "12633:24:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1053, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "12633:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1063, - "initialValue": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1055, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12660:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1056, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "12660:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1057, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12682:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12660:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 1061, - "name": "videosPerChannelDefaultLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "12707:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "12660:75:0", - "trueExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1059, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "12686:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "videoLimit", - "nodeType": "MemberAccess", - "referencedDeclaration": 2475, - "src": "12686:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12633:102:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 1070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1067, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12782:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1065, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "12747:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "videoCountByChannelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3139, - "src": "12747:34:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_uint64_$", - "typeString": "function (uint64) view external returns (uint64)" - } - }, - "id": 1068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12747:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 1069, - "name": "channelVideoLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1054, - "src": "12796:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "12747:66:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1064, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "12739:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12739:75:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1072, - "nodeType": "ExpressionStatement", - "src": "12739:75:0" - }, - { - "assignments": [ - 1074 - ], - "declarations": [ - { - "constant": false, - "id": 1074, - "mutability": "mutable", - "name": "videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1086, - "src": "12818:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1073, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12818:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1079, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12857:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1075, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "12835:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3195, - "src": "12835:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$_t_uint64_$", - "typeString": "function (uint64) external returns (uint64)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12835:33:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12818:50:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1081, - "name": "videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1074, - "src": "12888:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1082, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1011, - "src": "12897:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1083, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "12909:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 1080, - "name": "VideoAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "12877:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,uint64,string memory[2] memory[] memory)" - } - }, - "id": 1084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12877:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1085, - "nodeType": "EmitStatement", - "src": "12872:47:0" - } - ] - }, - "documentation": null, - "functionSelector": "4d70d709", - "id": 1087, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1019, - "modifierName": { - "argumentTypes": null, - "id": 1018, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "12275:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12275:13:0" - } - ], - "name": "addVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1017, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1011, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1087, - "src": "12215:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1010, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12215:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1016, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1087, - "src": "12236:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1012, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12236:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 1014, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 1013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12243:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "12236:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 1015, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12236:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12211:56:0" - }, - "returnParameters": { - "id": 1020, - "nodeType": "ParameterList", - "parameters": [], - "src": "12289:0:0" - }, - "scope": 1377, - "src": "12194:729:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1151, - "nodeType": "Block", - "src": "13030:571:0", - "statements": [ - { - "assignments": [ - 1100 - ], - "declarations": [ - { - "constant": false, - "id": 1100, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1151, - "src": "13034:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1099, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "13034:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1103, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "13085:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1101, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "13055:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "13055:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13055:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13034:60:0" - }, - { - "assignments": [ - 1107 - ], - "declarations": [ - { - "constant": false, - "id": 1107, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1151, - "src": "13098:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1106, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "13098:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1113, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1110, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1100, - "src": "13157:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1111, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "13157:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1108, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "13123:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "13123:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13123:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13098:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1116, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13205:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13205:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1118, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13217:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13217:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1115, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "13189:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13189:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1122, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13269:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13269:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1124, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13281:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1125, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13281:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1126, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "13300:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 1127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "UpdateVideoMetadata", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13300:45:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 1121, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "13242:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 1128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13242:104:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13189:157:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1131, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13364:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13364:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1133, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13376:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1134, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13376:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1130, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "13353:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13353:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13189:205:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13399:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1114, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13177:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13177:241:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1139, - "nodeType": "ExpressionStatement", - "src": "13177:241:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1141, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1107, - "src": "13467:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1142, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 2473, - "src": "13467:16:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616e6e6f742075706461746520766964656f206d65746164617461207768656e20746865206368616e6e656c206973206e6f7420616374697665", - "id": 1143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13485:61:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", - "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" - }, - "value": "Cannot update video metadata when the channel is not active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8d0b485b4174fcd896ef0cbe53388307d3fb6a683032f42a8c4cf8ba0b75af6f", - "typeString": "literal_string \"Cannot update video metadata when the channel is not active\"" - } - ], - "id": 1140, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13459:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13459:88:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1145, - "nodeType": "ExpressionStatement", - "src": "13459:88:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1147, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1089, - "src": "13577:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1148, - "name": "_metadata", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1094, - "src": "13587:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string memory[2] memory[] memory" - } - ], - "id": 1146, - "name": "VideoMetadataUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 134, - "src": "13556:20:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory[2] memory[] memory)" - } - }, - "id": 1149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13556:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1150, - "nodeType": "EmitStatement", - "src": "13551:46:0" - } - ] - }, - "documentation": null, - "functionSelector": "b94c9c9d", - "id": 1152, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1097, - "modifierName": { - "argumentTypes": null, - "id": 1096, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "13016:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13016:13:0" - } - ], - "name": "updateVideoMetadata", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1089, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1152, - "src": "12958:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1088, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "12958:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1094, - "mutability": "mutable", - "name": "_metadata", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1152, - "src": "12977:28:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_memory_ptr_$2_memory_ptr_$dyn_memory_ptr", - "typeString": "string[2][]" - }, - "typeName": { - "baseType": { - "baseType": { - "id": 1090, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12977:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "id": 1092, - "length": { - "argumentTypes": null, - "hexValue": "32", - "id": 1091, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12984:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "nodeType": "ArrayTypeName", - "src": "12977:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_string_storage_$2_storage_ptr", - "typeString": "string[2]" - } - }, - "id": 1093, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12977:11:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_array$_t_string_storage_$2_storage_$dyn_storage_ptr", - "typeString": "string[2][]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12954:54:0" - }, - "returnParameters": { - "id": 1098, - "nodeType": "ParameterList", - "parameters": [], - "src": "13030:0:0" - }, - "scope": 1377, - "src": "12926:675:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1203, - "nodeType": "Block", - "src": "13668:405:0", - "statements": [ - { - "assignments": [ - 1160 - ], - "declarations": [ - { - "constant": false, - "id": 1160, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1203, - "src": "13672:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1159, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "13672:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1165, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1163, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "13723:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1161, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "13693:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "13693:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13693:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13672:60:0" - }, - { - "assignments": [ - 1167 - ], - "declarations": [ - { - "constant": false, - "id": 1167, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1203, - "src": "13736:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1166, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "13736:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1173, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1170, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "13795:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "13795:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1168, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "13761:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "13761:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13761:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13736:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1176, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13843:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13843:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1178, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "13855:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1179, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13855:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1175, - "name": "_hasOwnerAccess", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 496, - "src": "13827:15:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13827:46:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1182, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "13907:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13907:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1184, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "13919:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1185, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "13919:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1186, - "name": "ContentDirectoryOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3270, - "src": "13938:25:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ContentDirectoryOperation_$3270_$", - "typeString": "type(enum ContentDirectoryOperation)" - } - }, - "id": 1187, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "RemoveVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13938:37:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - }, - { - "typeIdentifier": "t_enum$_ContentDirectoryOperation_$3270", - "typeString": "enum ContentDirectoryOperation" - } - ], - "id": 1181, - "name": "_hasGroupAccessToOperation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "13880:26:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$_t_enum$_ContentDirectoryOperation_$3270_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory,enum ContentDirectoryOperation) view returns (bool)" - } - }, - "id": 1188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13880:96:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "13827:149:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1190, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13981:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "13815:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13815:185:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1192, - "nodeType": "ExpressionStatement", - "src": "13815:185:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1196, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "14029:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1193, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14004:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3262, - "src": "14004:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64) external" - } - }, - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14004:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1198, - "nodeType": "ExpressionStatement", - "src": "14004:34:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1200, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1154, - "src": "14060:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 1199, - "name": "VideoRemoved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 138, - "src": "14047:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14047:22:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1202, - "nodeType": "EmitStatement", - "src": "14042:27:0" - } - ] - }, - "documentation": null, - "functionSelector": "9a055bbf", - "id": 1204, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1157, - "modifierName": { - "argumentTypes": null, - "id": 1156, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "13654:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13654:13:0" - } - ], - "name": "removeVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1155, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1154, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1204, - "src": "13628:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1153, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "13628:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13624:22:0" - }, - "returnParameters": { - "id": 1158, - "nodeType": "ParameterList", - "parameters": [], - "src": "13668:0:0" - }, - "scope": 1377, - "src": "13604:469:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1260, - "nodeType": "Block", - "src": "14174:394:0", - "statements": [ - { - "assignments": [ - 1214 - ], - "declarations": [ - { - "constant": false, - "id": 1214, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1260, - "src": "14178:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1213, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "14178:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1219, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1217, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "14229:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1215, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14199:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "14199:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14199:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14178:60:0" - }, - { - "assignments": [ - 1221 - ], - "declarations": [ - { - "constant": false, - "id": 1221, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1260, - "src": "14242:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1220, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "14242:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1227, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1224, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1214, - "src": "14301:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "14301:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1222, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "14267:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "14267:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14267:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14242:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1230, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14340:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14340:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1232, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "14352:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "14352:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1229, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "14329:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14329:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14372:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14321:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14321:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1237, - "nodeType": "ExpressionStatement", - "src": "14321:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1241, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1208, - "src": "14406:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1240, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14400:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 1239, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14400:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14400:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1243, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14400:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14424:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14400:25:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", - "id": 1246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14427:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - }, - "value": "The reason should be at least 2 characters long" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - } - ], - "id": 1238, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14392:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14392:85:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1248, - "nodeType": "ExpressionStatement", - "src": "14392:85:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1252, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "14506:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1249, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14481:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3262, - "src": "14481:24:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64) external" - } - }, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14481:34:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1254, - "nodeType": "ExpressionStatement", - "src": "14481:34:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1256, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1206, - "src": "14546:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1257, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1208, - "src": "14556:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1255, - "name": "VideoRemovedByCurator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 144, - "src": "14524:21:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory)" - } - }, - "id": 1258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14524:40:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1259, - "nodeType": "EmitStatement", - "src": "14519:45:0" - } - ] - }, - "documentation": null, - "functionSelector": "8edaea6e", - "id": 1261, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1211, - "modifierName": { - "argumentTypes": null, - "id": 1210, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "14160:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14160:13:0" - } - ], - "name": "removeVideoAsCurator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1209, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1206, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1261, - "src": "14109:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1205, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "14109:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1208, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1261, - "src": "14128:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1207, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14128:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14105:47:0" - }, - "returnParameters": { - "id": 1212, - "nodeType": "ParameterList", - "parameters": [], - "src": "14174:0:0" - }, - "scope": 1377, - "src": "14076:492:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1324, - "nodeType": "Block", - "src": "14668:454:0", - "statements": [ - { - "assignments": [ - 1271 - ], - "declarations": [ - { - "constant": false, - "id": 1271, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1324, - "src": "14672:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1270, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "14672:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1276, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1274, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "14723:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1272, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "14693:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "14693:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1275, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14693:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14672:60:0" - }, - { - "assignments": [ - 1278 - ], - "declarations": [ - { - "constant": false, - "id": 1278, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1324, - "src": "14736:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1277, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "14736:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1284, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1281, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "14795:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "14795:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1279, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "14761:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "14761:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14761:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14736:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1287, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "14834:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14834:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1278, - "src": "14846:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1290, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "14846:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1286, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "14823:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14823:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14866:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1285, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14815:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14815:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1294, - "nodeType": "ExpressionStatement", - "src": "14815:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1296, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "14894:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1297, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "14894:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "566964656f20616c7265616479206465616374697661746564", - "id": 1298, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14910:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", - "typeString": "literal_string \"Video already deactivated\"" - }, - "value": "Video already deactivated" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b285ef43e7d4f919cbf4b8751b6192ac26897bcaa5390a59bb4b96be00f255e", - "typeString": "literal_string \"Video already deactivated\"" - } - ], - "id": 1295, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14886:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14886:52:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1300, - "nodeType": "ExpressionStatement", - "src": "14886:52:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1304, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1265, - "src": "14956:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14950:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", - "typeString": "type(bytes storage pointer)" - }, - "typeName": { - "id": 1302, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14950:5:0", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14950:14:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14950:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14975:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "14950:26:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "54686520726561736f6e2073686f756c64206265206174206c6561737420322063686172616374657273206c6f6e67", - "id": 1309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14978:49:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - }, - "value": "The reason should be at least 2 characters long" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1141b8e9638d38f1728c0f1e5b823eea2044ab5109c6c2c8f2371506f49f329f", - "typeString": "literal_string \"The reason should be at least 2 characters long\"" - } - ], - "id": 1301, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "14942:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14942:86:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1311, - "nodeType": "ExpressionStatement", - "src": "14942:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1315, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "15058:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1316, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15068:5:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 1312, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "15032:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 3239, - "src": "15032:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15032:42:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1318, - "nodeType": "ExpressionStatement", - "src": "15032:42:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1320, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1263, - "src": "15100:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 1321, - "name": "_reason", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1265, - "src": "15110:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1319, - "name": "VideoDeactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 150, - "src": "15083:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint64,string memory)" - } - }, - "id": 1322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15083:35:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1323, - "nodeType": "EmitStatement", - "src": "15078:40:0" - } - ] - }, - "documentation": null, - "functionSelector": "a51a83f2", - "id": 1325, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1268, - "modifierName": { - "argumentTypes": null, - "id": 1267, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "14654:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14654:13:0" - } - ], - "name": "deactivateVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1263, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1325, - "src": "14603:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1262, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "14603:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1265, - "mutability": "mutable", - "name": "_reason", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1325, - "src": "14622:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1264, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14622:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14599:47:0" - }, - "returnParameters": { - "id": 1269, - "nodeType": "ParameterList", - "parameters": [], - "src": "14668:0:0" - }, - "scope": 1377, - "src": "14574:548:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1375, - "nodeType": "Block", - "src": "15195:350:0", - "statements": [ - { - "assignments": [ - 1333 - ], - "declarations": [ - { - "constant": false, - "id": 1333, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1375, - "src": "15199:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 1332, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "15199:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1338, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1336, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1327, - "src": "15250:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1334, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "15220:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingVideo", - "nodeType": "MemberAccess", - "referencedDeclaration": 3217, - "src": "15220:29:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Video_$3126_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Video memory)" - } - }, - "id": 1337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15220:39:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15199:60:0" - }, - { - "assignments": [ - 1340 - ], - "declarations": [ - { - "constant": false, - "id": 1340, - "mutability": "mutable", - "name": "channel", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1375, - "src": "15263:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel" - }, - "typeName": { - "contractScope": null, - "id": 1339, - "name": "Channel", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2478, - "src": "15263:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_storage_ptr", - "typeString": "struct Channel" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1346, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1343, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1333, - "src": "15322:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1344, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "15322:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "expression": { - "argumentTypes": null, - "id": 1341, - "name": "channelStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 17, - "src": "15288:14:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ChannelStorage_$2875", - "typeString": "contract ChannelStorage" - } - }, - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getExistingChannel", - "nodeType": "MemberAccess", - "referencedDeclaration": 2779, - "src": "15288:33:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint64_$returns$_t_struct$_Channel_$2478_memory_ptr_$", - "typeString": "function (uint64) view external returns (struct Channel memory)" - } - }, - "id": 1345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15288:50:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15263:75:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1349, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "15361:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15361:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1351, - "name": "channel", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1340, - "src": "15373:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Channel_$2478_memory_ptr", - "typeString": "struct Channel memory" - } - }, - "id": 1352, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "ownership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2471, - "src": "15373:17:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_struct$_ChannelOwnership_$2469_memory_ptr", - "typeString": "struct ChannelOwnership memory" - } - ], - "id": 1348, - "name": "_canCurate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 517, - "src": "15350:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_ChannelOwnership_$2469_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct ChannelOwnership memory) view returns (bool)" - } - }, - "id": 1353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15350:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4163636573732064656e696564", - "id": 1354, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15393:15:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - }, - "value": "Access denied" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e3b095ce8a187ba18763b60884a0b2572625313b25caa4e4b1731b365d9f46da", - "typeString": "literal_string \"Access denied\"" - } - ], - "id": 1347, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15342:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15342:67:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1356, - "nodeType": "ExpressionStatement", - "src": "15342:67:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "15421:15:0", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1358, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1333, - "src": "15422:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 1359, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "15422:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "566964656f20616c726561647920616374697665", - "id": 1361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15438:22:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", - "typeString": "literal_string \"Video already active\"" - }, - "value": "Video already active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b319e8da6d52def6de676c65283d5e10dc0c3f80c6b0e37d96989810cf0862a", - "typeString": "literal_string \"Video already active\"" - } - ], - "id": 1357, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "15413:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15413:48:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1363, - "nodeType": "ExpressionStatement", - "src": "15413:48:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1367, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1327, - "src": "15491:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15501:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "expression": { - "argumentTypes": null, - "id": 1364, - "name": "videoStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 19, - "src": "15465:12:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_VideoStorage_$3263", - "typeString": "contract VideoStorage" - } - }, - "id": 1366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateStatus", - "nodeType": "MemberAccess", - "referencedDeclaration": 3239, - "src": "15465:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint64_$_t_bool_$returns$__$", - "typeString": "function (uint64,bool) external" - } - }, - "id": 1369, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15465:41:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1370, - "nodeType": "ExpressionStatement", - "src": "15465:41:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1372, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1327, - "src": "15532:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - ], - "id": 1371, - "name": "VideoReactivated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "15515:16:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", - "typeString": "function (uint64)" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15515:26:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1374, - "nodeType": "EmitStatement", - "src": "15510:31:0" - } - ] - }, - "documentation": null, - "functionSelector": "11ff105e", - "id": 1376, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1330, - "modifierName": { - "argumentTypes": null, - "id": 1329, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "15181:13:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15181:13:0" - } - ], - "name": "activateVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1327, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1376, - "src": "15155:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1326, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "15155:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15151:22:0" - }, - "returnParameters": { - "id": 1331, - "nodeType": "ParameterList", - "parameters": [], - "src": "15195:0:0" - }, - "scope": 1377, - "src": "15128:417:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1378, - "src": "485:15062:0" - } - ], - "src": "0:15548:0" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.515Z", - "devdoc": { - "kind": "dev", - "methods": { - "paused()": { - "details": "Returns true if the contract is paused, and false otherwise." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/ContentWorkingGroupBridge.json b/smart-contracts/build/contracts/ContentWorkingGroupBridge.json deleted file mode 100644 index acef374138..0000000000 --- a/smart-contracts/build/contracts/ContentWorkingGroupBridge.json +++ /dev/null @@ -1,2863 +0,0 @@ -{ - "contractName": "ContentWorkingGroupBridge", - "abi": [ - { - "inputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "_provider", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "currentLeadAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "runtimeAddressProvider", - "outputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - }, - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "setCuratorAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "setLeadAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "_status", - "type": "bool" - } - ], - "name": "setLeadStatus", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - } - ], - "name": "isCurator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - } - ], - "name": "curatorExists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "isActiveLead", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"curatorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"currentLeadAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isActiveLead\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"isCurator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setCuratorAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setLeadAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_status\",\"type\":\"bool\"}],\"name\":\"setLeadStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol\":\"ContentWorkingGroupBridge\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol\":{\"keccak256\":\"0xbd70b3b036373148b763dc3cd19c8653dbaffac05a0668a410cc6cc4875a552b\",\"urls\":[\"bzz-raw://714cee590168f00572e43cff52d093268f1b09e4055a00c4484dee1f73db2839\",\"dweb:/ipfs/QmUHxh9dkmaZsgho11Hdqz87RgxWXV8UjtEDDsrmNDFwD4\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", - "bytecode": "0x60806040526002805460ff60a01b1916600160a01b17905534801561002357600080fd5b506040516106243803806106248339818101604052602081101561004657600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556105ac806100786000396000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c80631cd2b43f1461007d5780631ec22327146100a55780632ca880d4146100df5780634ff5ae631461010357806371066956146101385780637a0020251461015e578063be7bbe051461017d578063e830b87014610185575b600080fd5b6100a36004803603602081101561009357600080fd5b50356001600160a01b03166101ba565b005b6100cb600480360360208110156100bb57600080fd5b50356001600160a01b031661029a565b604080519115158252519081900360200190f35b6100e76102c9565b604080516001600160a01b039092168252519081900360200190f35b6100a36004803603604081101561011957600080fd5b5080356001600160401b031690602001356001600160a01b03166102d8565b6100cb6004803603602081101561014e57600080fd5b50356001600160401b03166103cf565b6100a36004803603602081101561017457600080fd5b503515156103f5565b6100e76104d1565b6100cb6004803603604081101561019b57600080fd5b5080356001600160a01b031690602001356001600160401b03166104e0565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561020657600080fd5b505afa15801561021a573d6000803e3d6000fd5b505050506040513d602081101561023057600080fd5b50516001600160a01b031633146102785760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600254600090600160a01b900460ff1680156102c357506002546001600160a01b038381169116145b92915050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561032457600080fd5b505afa158015610338573d6000803e3d6000fd5b505050506040513d602081101561034e57600080fd5b50516001600160a01b031633146103965760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160401b03166000908152600160205260409020546001600160a01b0316151590565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561044157600080fd5b505afa158015610455573d6000803e3d6000fd5b505050506040513d602081101561046b57600080fd5b50516001600160a01b031633146104b35760405162461bcd60e51b815260040180806020018281038252603a81526020018061053d603a913960400191505060405180910390fd5b60028054911515600160a01b0260ff60a01b19909216919091179055565b6002546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b039182169116149056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656da264697066735822122051c692e5561d90d2203d3d52f23a90ffd3a449cfc02481a86c37a6eed1672e4f64736f6c634300060c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100785760003560e01c80631cd2b43f1461007d5780631ec22327146100a55780632ca880d4146100df5780634ff5ae631461010357806371066956146101385780637a0020251461015e578063be7bbe051461017d578063e830b87014610185575b600080fd5b6100a36004803603602081101561009357600080fd5b50356001600160a01b03166101ba565b005b6100cb600480360360208110156100bb57600080fd5b50356001600160a01b031661029a565b604080519115158252519081900360200190f35b6100e76102c9565b604080516001600160a01b039092168252519081900360200190f35b6100a36004803603604081101561011957600080fd5b5080356001600160401b031690602001356001600160a01b03166102d8565b6100cb6004803603602081101561014e57600080fd5b50356001600160401b03166103cf565b6100a36004803603602081101561017457600080fd5b503515156103f5565b6100e76104d1565b6100cb6004803603604081101561019b57600080fd5b5080356001600160a01b031690602001356001600160401b03166104e0565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561020657600080fd5b505afa15801561021a573d6000803e3d6000fd5b505050506040513d602081101561023057600080fd5b50516001600160a01b031633146102785760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600254600090600160a01b900460ff1680156102c357506002546001600160a01b038381169116145b92915050565b6000546001600160a01b031681565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561032457600080fd5b505afa158015610338573d6000803e3d6000fd5b505050506040513d602081101561034e57600080fd5b50516001600160a01b031633146103965760405162461bcd60e51b815260040180806020018281038252603381526020018061050a6033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6001600160401b03166000908152600160205260409020546001600160a01b0316151590565b60008054906101000a90046001600160a01b03166001600160a01b03166362bc0cd66040518163ffffffff1660e01b815260040160206040518083038186803b15801561044157600080fd5b505afa158015610455573d6000803e3d6000fd5b505050506040513d602081101561046b57600080fd5b50516001600160a01b031633146104b35760405162461bcd60e51b815260040180806020018281038252603a81526020018061053d603a913960400191505060405180910390fd5b60028054911515600160a01b0260ff60a01b19909216919091179055565b6002546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b039182169116149056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656da264697066735822122051c692e5561d90d2203d3d52f23a90ffd3a449cfc02481a86c37a6eed1672e4f64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "47:1139:2:-:0;;;332:24;;;-1:-1:-1;;;;332:24:2;-1:-1:-1;;;332:24:2;;;360:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;360:85:2;649:22:4;:48;;-1:-1:-1;;;;;649:48:4;;;-1:-1:-1;;;;;;649:48:4;;;;;;;;;47:1139:2;;;;;;", - "deployedSourceMap": "47:1139:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;589:98;;;;;;;;;;;;;;;;-1:-1:-1;589:98:2;-1:-1:-1;;;;;589:98:2;;:::i;:::-;;1056:128;;;;;;;;;;;;;;;;-1:-1:-1;1056:128:2;-1:-1:-1;;;;;1056:128:2;;:::i;:::-;;;;;;;;;;;;;;;;;;521:52:4;;;:::i;:::-;;;;-1:-1:-1;;;;;521:52:4;;;;;;;;;;;;;;451:132:2;;;;;;;;;;;;;;;;-1:-1:-1;451:132:2;;-1:-1:-1;;;;;451:132:2;;;;;-1:-1:-1;;;;;451:132:2;;:::i;925:128::-;;;;;;;;;;;;;;;;-1:-1:-1;925:128:2;-1:-1:-1;;;;;925:128:2;;:::i;693:86::-;;;;;;;;;;;;;;;;-1:-1:-1;693:86:2;;;;:::i;253:33::-;;;:::i;782:140::-;;;;;;;;;;;;;;;;-1:-1:-1;782:140:2;;-1:-1:-1;;;;;782:140:2;;;;;-1:-1:-1;;;;;782:140:2;;:::i;589:98::-;755:22:4;;;;;;;;-1:-1:-1;;;;;755:22:4;-1:-1:-1;;;;;755:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;755:39:4;-1:-1:-1;;;;;741:53:4;:10;:53;729:127;;;;-1:-1:-1;;;729:127:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;654:18:2::1;:29:::0;;-1:-1:-1;;;;;;654:29:2::1;-1:-1:-1::0;;;;;654:29:2;;;::::1;::::0;;;::::1;::::0;;589:98::o;1056:128::-;1134:12;;1117:4;;-1:-1:-1;;;1134:12:2;;;;:46;;;;-1:-1:-1;1150:18:2;;-1:-1:-1;;;;;1150:30:2;;;:18;;:30;1134:46;1127:53;1056:128;-1:-1:-1;;1056:128:2:o;521:52:4:-;;;-1:-1:-1;;;;;521:52:4;;:::o;451:132:2:-;755:22:4;;;;;;;;-1:-1:-1;;;;;755:22:4;-1:-1:-1;;;;;755:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;755:39:4;-1:-1:-1;;;;;741:53:4;:10;:53;729:127;;;;-1:-1:-1;;;729:127:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;538:30:2;;;::::1;;::::0;;;:18:::1;:30;::::0;;;;:41;;-1:-1:-1;;;;;;538:41:2::1;-1:-1:-1::0;;;;;538:41:2;;::::1;::::0;;;::::1;::::0;;451:132::o;925:128::-;-1:-1:-1;;;;;1005:30:2;988:4;1005:30;;;:18;:30;;;;;;-1:-1:-1;;;;;1005:30:2;:44;;;925:128::o;693:86::-;919:22:4;;;;;;;;-1:-1:-1;;;;;919:22:4;-1:-1:-1;;;;;919:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;919:39:4;-1:-1:-1;;;;;905:53:4;:10;:53;893:134;;;;-1:-1:-1;;;893:134:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;753:12:2::1;:22:::0;;;::::1;;-1:-1:-1::0;;;753:22:2::1;-1:-1:-1::0;;;;753:22:2;;::::1;::::0;;;::::1;::::0;;693:86::o;253:33::-;;;-1:-1:-1;;;;;253:33:2;;:::o;782:140::-;-1:-1:-1;;;;;876:30:2;859:4;876:30;;;:18;:30;;;;;;-1:-1:-1;;;;;876:42:2;;;:30;;:42;;782:140::o", - "source": "pragma solidity ^0.6.0;\n\nimport \"./auth.sol\";\n\ncontract ContentWorkingGroupBridge is RuntimeManageable {\n\t// A map of curatorId => evmAddress(roleKey)\n\tmapping (uint64 => address) private addressByCuratorId;\n\n\t// evmAddress(roleKey) of current lead\n address public currentLeadAddress;\n\n\t// Lead status managed by the council\n bool isLeadActive = true;\n\n\tconstructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {}\n\n function setCuratorAddress(uint64 _curatorId, address _address) public onlyRuntime {\n\t\taddressByCuratorId[_curatorId] = _address;\n\t}\n\n function setLeadAddress(address _address) public onlyRuntime {\n\t\tcurrentLeadAddress = _address;\n\t}\n\n function setLeadStatus(bool _status) public onlyCouncil {\n\t\tisLeadActive = _status;\n\t}\n\n\tfunction isCurator(address _address, uint64 _curatorId) public view returns (bool) {\n\t\treturn addressByCuratorId[_curatorId] == _address;\n\t}\n\n\tfunction curatorExists(uint64 _curatorId) public view returns (bool) {\n\t\treturn addressByCuratorId[_curatorId] != address(0);\n\t}\n\n\tfunction isActiveLead(address _address) public view returns (bool) {\n\t\treturn isLeadActive && currentLeadAddress == _address;\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", - "exportedSymbols": { - "ContentWorkingGroupBridge": [ - 1545 - ] - }, - "id": 1546, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1436, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "file": "./auth.sol", - "id": 1437, - "nodeType": "ImportDirective", - "scope": 1546, - "sourceUnit": 1678, - "src": "25:20:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1438, - "name": "RuntimeManageable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1677, - "src": "85:17:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeManageable_$1677", - "typeString": "contract RuntimeManageable" - } - }, - "id": 1439, - "nodeType": "InheritanceSpecifier", - "src": "85:17:2" - } - ], - "contractDependencies": [ - 1677 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1545, - "linearizedBaseContracts": [ - 1545, - 1677 - ], - "name": "ContentWorkingGroupBridge", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1443, - "mutability": "mutable", - "name": "addressByCuratorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1545, - "src": "152:54:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "typeName": { - "id": 1442, - "keyType": { - "id": 1440, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "161:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "152:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "valueType": { - "id": 1441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "171:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "be7bbe05", - "id": 1445, - "mutability": "mutable", - "name": "currentLeadAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1545, - "src": "253:33:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "253:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1448, - "mutability": "mutable", - "name": "isLeadActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1545, - "src": "332:24:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1446, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "332:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "352:4:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "internal" - }, - { - "body": { - "id": 1456, - "nodeType": "Block", - "src": "443:2:2", - "statements": [] - }, - "documentation": null, - "id": 1457, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1453, - "name": "_provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "432:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - } - ], - "id": 1454, - "modifierName": { - "argumentTypes": null, - "id": 1452, - "name": "RuntimeManageable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "414:17:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", - "typeString": "type(contract RuntimeManageable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "414:28:2" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1450, - "mutability": "mutable", - "name": "_provider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1457, - "src": "373:32:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1449, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "373:22:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "372:34:2" - }, - "returnParameters": { - "id": 1455, - "nodeType": "ParameterList", - "parameters": [], - "src": "443:0:2" - }, - "scope": 1545, - "src": "360:85:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1472, - "nodeType": "Block", - "src": "534:49:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1466, - "name": "addressByCuratorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1443, - "src": "538:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1468, - "indexExpression": { - "argumentTypes": null, - "id": 1467, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "557:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "538:30:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1461, - "src": "571:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "538:41:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1471, - "nodeType": "ExpressionStatement", - "src": "538:41:2" - } - ] - }, - "documentation": null, - "functionSelector": "4ff5ae63", - "id": 1473, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1463, - "name": "onlyRuntime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "522:11:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "522:11:2" - } - ], - "name": "setCuratorAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1459, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1473, - "src": "478:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1458, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "478:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1461, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1473, - "src": "497:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "497:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "477:37:2" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "534:0:2" - }, - "scope": 1545, - "src": "451:132:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1484, - "nodeType": "Block", - "src": "650:37:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1480, - "name": "currentLeadAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "654:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1475, - "src": "675:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "654:29:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1483, - "nodeType": "ExpressionStatement", - "src": "654:29:2" - } - ] - }, - "documentation": null, - "functionSelector": "1cd2b43f", - "id": 1485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1478, - "modifierName": { - "argumentTypes": null, - "id": 1477, - "name": "onlyRuntime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "638:11:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "638:11:2" - } - ], - "name": "setLeadAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1476, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1475, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1485, - "src": "613:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1474, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "613:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "612:18:2" - }, - "returnParameters": { - "id": 1479, - "nodeType": "ParameterList", - "parameters": [], - "src": "650:0:2" - }, - "scope": 1545, - "src": "589:98:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1496, - "nodeType": "Block", - "src": "749:30:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1492, - "name": "isLeadActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "753:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "_status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "768:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "753:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1495, - "nodeType": "ExpressionStatement", - "src": "753:22:2" - } - ] - }, - "documentation": null, - "functionSelector": "7a002025", - "id": 1497, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1490, - "modifierName": { - "argumentTypes": null, - "id": 1489, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "737:11:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "737:11:2" - } - ], - "name": "setLeadStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1487, - "mutability": "mutable", - "name": "_status", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1497, - "src": "716:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1486, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "716:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "715:14:2" - }, - "returnParameters": { - "id": 1491, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:2" - }, - "scope": 1545, - "src": "693:86:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1512, - "nodeType": "Block", - "src": "865:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1506, - "name": "addressByCuratorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1443, - "src": "876:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1508, - "indexExpression": { - "argumentTypes": null, - "id": 1507, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1501, - "src": "895:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "876:30:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1509, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1499, - "src": "910:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "876:42:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1505, - "id": 1511, - "nodeType": "Return", - "src": "869:49:2" - } - ] - }, - "documentation": null, - "functionSelector": "e830b870", - "id": 1513, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCurator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1499, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1513, - "src": "801:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "801:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1501, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1513, - "src": "819:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1500, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "819:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "800:37:2" - }, - "returnParameters": { - "id": 1505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1504, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1513, - "src": "859:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "859:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "858:6:2" - }, - "scope": 1545, - "src": "782:140:2", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1529, - "nodeType": "Block", - "src": "994:59:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1520, - "name": "addressByCuratorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1443, - "src": "1005:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1522, - "indexExpression": { - "argumentTypes": null, - "id": 1521, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1515, - "src": "1024:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1005:30:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1047:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1039:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1039:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1039:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1005:44:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1519, - "id": 1528, - "nodeType": "Return", - "src": "998:51:2" - } - ] - }, - "documentation": null, - "functionSelector": "71066956", - "id": 1530, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "curatorExists", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1515, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1530, - "src": "948:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1514, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "948:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "947:19:2" - }, - "returnParameters": { - "id": 1519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1518, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1530, - "src": "988:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1517, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "988:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "987:6:2" - }, - "scope": 1545, - "src": "925:128:2", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1543, - "nodeType": "Block", - "src": "1123:61:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1537, - "name": "isLeadActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "1134:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1538, - "name": "currentLeadAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1150:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1539, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "1172:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1150:30:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1134:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1536, - "id": 1542, - "nodeType": "Return", - "src": "1127:53:2" - } - ] - }, - "documentation": null, - "functionSelector": "1ec22327", - "id": 1544, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isActiveLead", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1532, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1544, - "src": "1078:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1078:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1077:18:2" - }, - "returnParameters": { - "id": 1536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1535, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1544, - "src": "1117:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1534, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1117:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1116:6:2" - }, - "scope": 1545, - "src": "1056:128:2", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1546, - "src": "47:1139:2" - } - ], - "src": "0:1187:2" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol", - "exportedSymbols": { - "ContentWorkingGroupBridge": [ - 1545 - ] - }, - "id": 1546, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1436, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "file": "./auth.sol", - "id": 1437, - "nodeType": "ImportDirective", - "scope": 1546, - "sourceUnit": 1678, - "src": "25:20:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1438, - "name": "RuntimeManageable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1677, - "src": "85:17:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeManageable_$1677", - "typeString": "contract RuntimeManageable" - } - }, - "id": 1439, - "nodeType": "InheritanceSpecifier", - "src": "85:17:2" - } - ], - "contractDependencies": [ - 1677 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1545, - "linearizedBaseContracts": [ - 1545, - 1677 - ], - "name": "ContentWorkingGroupBridge", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1443, - "mutability": "mutable", - "name": "addressByCuratorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1545, - "src": "152:54:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "typeName": { - "id": 1442, - "keyType": { - "id": 1440, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "161:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "152:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "valueType": { - "id": 1441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "171:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "be7bbe05", - "id": 1445, - "mutability": "mutable", - "name": "currentLeadAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1545, - "src": "253:33:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "253:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1448, - "mutability": "mutable", - "name": "isLeadActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1545, - "src": "332:24:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1446, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "332:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "352:4:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "internal" - }, - { - "body": { - "id": 1456, - "nodeType": "Block", - "src": "443:2:2", - "statements": [] - }, - "documentation": null, - "id": 1457, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1453, - "name": "_provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "432:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - } - ], - "id": 1454, - "modifierName": { - "argumentTypes": null, - "id": 1452, - "name": "RuntimeManageable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "414:17:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", - "typeString": "type(contract RuntimeManageable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "414:28:2" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1450, - "mutability": "mutable", - "name": "_provider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1457, - "src": "373:32:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1449, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "373:22:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "372:34:2" - }, - "returnParameters": { - "id": 1455, - "nodeType": "ParameterList", - "parameters": [], - "src": "443:0:2" - }, - "scope": 1545, - "src": "360:85:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1472, - "nodeType": "Block", - "src": "534:49:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1466, - "name": "addressByCuratorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1443, - "src": "538:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1468, - "indexExpression": { - "argumentTypes": null, - "id": 1467, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "557:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "538:30:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1461, - "src": "571:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "538:41:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1471, - "nodeType": "ExpressionStatement", - "src": "538:41:2" - } - ] - }, - "documentation": null, - "functionSelector": "4ff5ae63", - "id": 1473, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1464, - "modifierName": { - "argumentTypes": null, - "id": 1463, - "name": "onlyRuntime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "522:11:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "522:11:2" - } - ], - "name": "setCuratorAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1459, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1473, - "src": "478:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1458, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "478:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1461, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1473, - "src": "497:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "497:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "477:37:2" - }, - "returnParameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [], - "src": "534:0:2" - }, - "scope": 1545, - "src": "451:132:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1484, - "nodeType": "Block", - "src": "650:37:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1480, - "name": "currentLeadAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "654:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1475, - "src": "675:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "654:29:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1483, - "nodeType": "ExpressionStatement", - "src": "654:29:2" - } - ] - }, - "documentation": null, - "functionSelector": "1cd2b43f", - "id": 1485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1478, - "modifierName": { - "argumentTypes": null, - "id": 1477, - "name": "onlyRuntime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "638:11:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "638:11:2" - } - ], - "name": "setLeadAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1476, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1475, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1485, - "src": "613:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1474, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "613:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "612:18:2" - }, - "returnParameters": { - "id": 1479, - "nodeType": "ParameterList", - "parameters": [], - "src": "650:0:2" - }, - "scope": 1545, - "src": "589:98:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1496, - "nodeType": "Block", - "src": "749:30:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1492, - "name": "isLeadActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "753:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "_status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "768:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "753:22:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1495, - "nodeType": "ExpressionStatement", - "src": "753:22:2" - } - ] - }, - "documentation": null, - "functionSelector": "7a002025", - "id": 1497, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1490, - "modifierName": { - "argumentTypes": null, - "id": 1489, - "name": "onlyCouncil", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1676, - "src": "737:11:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "737:11:2" - } - ], - "name": "setLeadStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1488, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1487, - "mutability": "mutable", - "name": "_status", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1497, - "src": "716:12:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1486, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "716:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "715:14:2" - }, - "returnParameters": { - "id": 1491, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:2" - }, - "scope": 1545, - "src": "693:86:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1512, - "nodeType": "Block", - "src": "865:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1506, - "name": "addressByCuratorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1443, - "src": "876:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1508, - "indexExpression": { - "argumentTypes": null, - "id": 1507, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1501, - "src": "895:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "876:30:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1509, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1499, - "src": "910:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "876:42:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1505, - "id": 1511, - "nodeType": "Return", - "src": "869:49:2" - } - ] - }, - "documentation": null, - "functionSelector": "e830b870", - "id": 1513, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isCurator", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1499, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1513, - "src": "801:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "801:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1501, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1513, - "src": "819:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1500, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "819:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "800:37:2" - }, - "returnParameters": { - "id": 1505, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1504, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1513, - "src": "859:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "859:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "858:6:2" - }, - "scope": 1545, - "src": "782:140:2", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1529, - "nodeType": "Block", - "src": "994:59:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1520, - "name": "addressByCuratorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1443, - "src": "1005:18:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1522, - "indexExpression": { - "argumentTypes": null, - "id": 1521, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1515, - "src": "1024:10:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1005:30:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1047:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1039:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1523, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1039:7:2", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1039:10:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1005:44:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1519, - "id": 1528, - "nodeType": "Return", - "src": "998:51:2" - } - ] - }, - "documentation": null, - "functionSelector": "71066956", - "id": 1530, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "curatorExists", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1516, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1515, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1530, - "src": "948:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1514, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "948:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "947:19:2" - }, - "returnParameters": { - "id": 1519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1518, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1530, - "src": "988:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1517, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "988:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "987:6:2" - }, - "scope": 1545, - "src": "925:128:2", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1543, - "nodeType": "Block", - "src": "1123:61:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1537, - "name": "isLeadActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "1134:12:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1538, - "name": "currentLeadAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1150:18:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1539, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "1172:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1150:30:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1134:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1536, - "id": 1542, - "nodeType": "Return", - "src": "1127:53:2" - } - ] - }, - "documentation": null, - "functionSelector": "1ec22327", - "id": 1544, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isActiveLead", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1532, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1544, - "src": "1078:16:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1531, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1078:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1077:18:2" - }, - "returnParameters": { - "id": 1536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1535, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1544, - "src": "1117:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1534, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1117:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1116:6:2" - }, - "scope": 1545, - "src": "1056:128:2", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1546, - "src": "47:1139:2" - } - ], - "src": "0:1187:2" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.539Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Context.json b/smart-contracts/build/contracts/Context.json deleted file mode 100644 index 74578eb60e..0000000000 --- a/smart-contracts/build/contracts/Context.json +++ /dev/null @@ -1,545 +0,0 @@ -{ - "contractName": "Context", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "immutableReferences": {}, - "sourceMap": "", - "deployedSourceMap": "", - "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", - "exportedSymbols": { - "Context": [ - 3293 - ] - }, - "id": 3294, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3272, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:13" - }, - { - "abstract": true, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3293, - "linearizedBaseContracts": [ - 3293 - ], - "name": "Context", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3280, - "nodeType": "Block", - "src": "660:34:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "677:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "677:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 3276, - "id": 3279, - "nodeType": "Return", - "src": "670:17:13" - } - ] - }, - "documentation": null, - "id": 3281, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3273, - "nodeType": "ParameterList", - "parameters": [], - "src": "609:2:13" - }, - "returnParameters": { - "id": 3276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3281, - "src": "643:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "643:15:13", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "642:17:13" - }, - "scope": 3293, - "src": "590:104:13", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3291, - "nodeType": "Block", - "src": "765:165:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3286, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "775:4:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$3293", - "typeString": "contract Context" - } - }, - "id": 3287, - "nodeType": "ExpressionStatement", - "src": "775:4:13" - }, - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3288, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "915:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "915:8:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "functionReturnParameters": 3285, - "id": 3290, - "nodeType": "Return", - "src": "908:15:13" - } - ] - }, - "documentation": null, - "id": 3292, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3282, - "nodeType": "ParameterList", - "parameters": [], - "src": "717:2:13" - }, - "returnParameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3284, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3292, - "src": "751:12:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3283, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "751:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "750:14:13" - }, - "scope": 3293, - "src": "700:230:13", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 3294, - "src": "558:374:13" - } - ], - "src": "33:900:13" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", - "exportedSymbols": { - "Context": [ - 3293 - ] - }, - "id": 3294, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3272, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:13" - }, - { - "abstract": true, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3293, - "linearizedBaseContracts": [ - 3293 - ], - "name": "Context", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3280, - "nodeType": "Block", - "src": "660:34:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "677:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "677:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 3276, - "id": 3279, - "nodeType": "Return", - "src": "670:17:13" - } - ] - }, - "documentation": null, - "id": 3281, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgSender", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3273, - "nodeType": "ParameterList", - "parameters": [], - "src": "609:2:13" - }, - "returnParameters": { - "id": 3276, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3275, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3281, - "src": "643:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3274, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "643:15:13", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "642:17:13" - }, - "scope": 3293, - "src": "590:104:13", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 3291, - "nodeType": "Block", - "src": "765:165:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3286, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "775:4:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$3293", - "typeString": "contract Context" - } - }, - "id": 3287, - "nodeType": "ExpressionStatement", - "src": "775:4:13" - }, - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3288, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "915:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "915:8:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "functionReturnParameters": 3285, - "id": 3290, - "nodeType": "Return", - "src": "908:15:13" - } - ] - }, - "documentation": null, - "id": 3292, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_msgData", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3282, - "nodeType": "ParameterList", - "parameters": [], - "src": "717:2:13" - }, - "returnParameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3284, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3292, - "src": "751:12:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3283, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "751:5:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "750:14:13" - }, - "scope": 3293, - "src": "700:230:13", - "stateMutability": "view", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 3294, - "src": "558:374:13" - } - ], - "src": "33:900:13" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.591Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/CuratorGroupStorage.json b/smart-contracts/build/contracts/CuratorGroupStorage.json deleted file mode 100644 index d3a7ae99b9..0000000000 --- a/smart-contracts/build/contracts/CuratorGroupStorage.json +++ /dev/null @@ -1,6286 +0,0 @@ -{ - "contractName": "CuratorGroupStorage", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - }, - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "name": "isCuratorInGroup", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nextGroupId", - "outputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "", - "type": "uint16" - }, - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "name": "permissionsByGroupId", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool[]", - "name": "_permissions", - "type": "bool[]" - } - ], - "name": "addGroup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "groupExists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "getExistingGroup", - "outputs": [ - { - "components": [ - { - "internalType": "bool", - "name": "isExisting", - "type": "bool" - }, - { - "internalType": "uint32", - "name": "curatorsCount", - "type": "uint32" - } - ], - "internalType": "struct Group", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - }, - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "addCuratorToGroup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - }, - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "removeCuratorFromGroup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_curatorId", - "type": "uint64" - } - ], - "name": "removeCuratorFromAllGroups", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint16", - "name": "_groupId", - "type": "uint16" - } - ], - "name": "removeGroup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"addCuratorToGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool[]\",\"name\":\"_permissions\",\"type\":\"bool[]\"}],\"name\":\"addGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"getExistingGroup\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isExisting\",\"type\":\"bool\"},{\"internalType\":\"uint32\",\"name\":\"curatorsCount\",\"type\":\"uint32\"}],\"internalType\":\"struct Group\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"groupExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"isCuratorInGroup\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextGroupId\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"name\":\"permissionsByGroupId\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"}],\"name\":\"removeCuratorFromAllGroups\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_curatorId\",\"type\":\"uint64\"},{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeCuratorFromGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_groupId\",\"type\":\"uint16\"}],\"name\":\"removeGroup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol\":\"CuratorGroupStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":{\"keccak256\":\"0x3144434af3449276d1a4e92e7a0dd5e213df54bdff1c8d7de210c6afddf2a4ff\",\"urls\":[\"bzz-raw://a04571ba65a5111dca479803ec8582acf04e7f074db82b9a83610e5cc4787dcb\",\"dweb:/ipfs/QmXyfBJxHsFhhbZd7R2zwQWrRvMWFmNoTqZALTWBfLj3uJ\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":{\"keccak256\":\"0xad7031eb97c64c9dff0b4db53835514e46c79d710ab873cdd2d36a5fd20b8c1c\",\"urls\":[\"bzz-raw://866dcdd27d00364da1e05739d9d4b586227a66d8bc4a61f4638064774b74e9d2\",\"dweb:/ipfs/QmUbC1VsPf4Cj5xTqMiHcNBo1WLPcmmczp6M3WFAb4cpap\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol\":{\"keccak256\":\"0x4835b0346a6f5375e7fe8b0241222cf4157f472bd9485c2b4c478dfc29f79b99\",\"urls\":[\"bzz-raw://0145ad367384248243b8c2b4e536a5c205d1ff2e99288af28aa61106b7b142dd\",\"dweb:/ipfs/Qmd7833Q2LyZ72pYjLx4VhCp1eGyxqDT1HXb8pxtfS5SmT\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol\":{\"keccak256\":\"0x244e4b74b17716120cf28e58636f11c699b8c0c94628bd952a95cee038d7e32b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://198d566157120c526bd6b5086b32cae85a11389b8a538f533ba9f9447915da0e\",\"dweb:/ipfs/QmeE6d8KWERx7f1FVS5tMnitNJxBm2yWXRSEUBF7R6voLh\"]}},\"version\":1}", - "bytecode": "0x60806040526004805461ffff1916600117905534801561001e57600080fd5b506000610029610078565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35061007c565b3390565b610c848061008b6000396000f3fe608060405234801561001057600080fd5b50600436106100af5760003560e01c80631d191c33146100b45780633cbdb702146100c9578063400c196c146100dc5780635eda7a7614610105578063715018a61461011a5780637f8c9ea2146101225780638da5cb5b1461014257806396cbd61b14610157578063a51a0a861461016a578063be16b3531461017d578063d8b457fc14610190578063de6eb66e146101a3578063f2fde38b146101b6575b600080fd5b6100c76100c2366004610876565b6101c9565b005b6100c76100d736600461093c565b6102c9565b6100ef6100ea36600461093c565b61031e565b6040516100fc9190610ba4565b60405180910390f35b61010d6103ef565b6040516100fc9190610bc3565b6100c76103f9565b610135610130366004610958565b610466565b6040516100fc91906109f8565b61014a610486565b6040516100fc91906109e4565b6100c761016536600461099b565b610495565b6101356101783660046109b7565b610532565b6100c761018b3660046109b7565b610552565b6100c761019e3660046109b7565b6105dc565b6101356101b136600461093c565b610663565b6100c76101c436600461084f565b61067c565b6101d1610720565b6000546001600160a01b039081169116146102075760405162461bcd60e51b81526004016101fe90610b6f565b60405180910390fd5b60ff815111156102295760405162461bcd60e51b81526004016101fe90610a56565b60045461ffff166000818152600360205260408120805460ff19166001178155905b83518160ff1610156102b057838160ff168151811061026657fe5b60209081029190910181015161ffff8516600090815260028352604080822060ff861680845294529020805460ff19169115159190911790556102aa906001610724565b5061024b565b506004546102c39061ffff166001610758565b50505050565b6102d1610720565b6000546001600160a01b039081169116146102fe5760405162461bcd60e51b81526004016101fe90610b6f565b61ffff166000908152600360205260409020805464ffffffffff19169055565b61032661082d565b604051636f375b3760e11b8152309063de6eb66e90610349908590600401610bc3565b60206040518083038186803b15801561036157600080fd5b505afa158015610375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103999190610920565b6103b55760405162461bcd60e51b81526004016101fe90610b2e565b5061ffff1660009081526003602090815260409182902082518084019093525460ff811615158352610100900463ffffffff169082015290565b60045461ffff1681565b610401610720565b6000546001600160a01b0390811691161461042e5760405162461bcd60e51b81526004016101fe90610b6f565b600080546040516001600160a01b0390911690600080516020610c2f833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b031690565b61049d610720565b6000546001600160a01b039081169116146104ca5760405162461bcd60e51b81526004016101fe90610b6f565b60015b60045461ffff908116908216101561052e576001600160401b038216600090815260016020908152604080832061ffff8516845290915290205460ff1615610519576105198282610552565b61052861ffff82166001610758565b506104cd565b5050565b600160209081526000928352604080842090915290825290205460ff1681565b61055a610720565b6000546001600160a01b039081169116146105875760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff191690556003909152909120546105d79163ffffffff61010090920482169161078416565b505050565b6105e4610720565b6000546001600160a01b039081169116146106115760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff1916841790556003909152909120546105d79163ffffffff6101009092048216916107c616565b61ffff1660009081526003602052604090205460ff1690565b610684610720565b6000546001600160a01b039081169116146106b15760405162461bcd60e51b81526004016101fe90610b6f565b6001600160a01b0381166106d75760405162461bcd60e51b81526004016101fe90610ab3565b600080546040516001600160a01b0380851693921691600080516020610c2f83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082820160ff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b90505b92915050565b600082820161ffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b600061074f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506107f4565b600082820163ffffffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b60008363ffffffff168363ffffffff16111582906108255760405162461bcd60e51b81526004016101fe9190610a03565b505050900390565b604080518082019091526000808252602082015290565b803561075281610bf8565b600060208284031215610860578081fd5b81356001600160a01b038116811461074f578182fd5b60006020808385031215610888578182fd5b82356001600160401b038082111561089e578384fd5b818501915085601f8301126108b1578384fd5b8135818111156108bf578485fd5b83810291506108cf848301610bd2565b8181528481019084860184860187018a10156108e9578788fd5b8795505b83861015610913576108ff8a82610844565b8352600195909501949186019186016108ed565b5098975050505050505050565b600060208284031215610931578081fd5b815161074f81610bf8565b60006020828403121561094d578081fd5b813561074f81610c09565b6000806040838503121561096a578081fd5b823561ffff8116811461097b578182fd5b9150602083013560ff81168114610990578182fd5b809150509250929050565b6000602082840312156109ac578081fd5b813561074f81610c19565b600080604083850312156109c9578182fd5b82356109d481610c19565b9150602083013561099081610c09565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a2f57858101830151858201604001528201610a13565b81811115610a405783604083870101525b50601f01601f1916929092016040019392505050565b6020808252603d908201527f5065726d697373696f6e20666c61677320696e7075742061727261792069732060408201527f746f6f206269672e2045787065637465642073697a65203c3d20323535000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e672067726f756040820152600760fc1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b81511515815260209182015163ffffffff169181019190915260400190565b61ffff91909116815260200190565b6040518181016001600160401b0381118282101715610bf057600080fd5b604052919050565b8015158114610c0657600080fd5b50565b61ffff81168114610c0657600080fd5b6001600160401b0381168114610c0657600080fdfe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220f41d0717f0059165404bdacb81c965178377fe168e4dd5b3646273e4039a5a9a64736f6c634300060c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100af5760003560e01c80631d191c33146100b45780633cbdb702146100c9578063400c196c146100dc5780635eda7a7614610105578063715018a61461011a5780637f8c9ea2146101225780638da5cb5b1461014257806396cbd61b14610157578063a51a0a861461016a578063be16b3531461017d578063d8b457fc14610190578063de6eb66e146101a3578063f2fde38b146101b6575b600080fd5b6100c76100c2366004610876565b6101c9565b005b6100c76100d736600461093c565b6102c9565b6100ef6100ea36600461093c565b61031e565b6040516100fc9190610ba4565b60405180910390f35b61010d6103ef565b6040516100fc9190610bc3565b6100c76103f9565b610135610130366004610958565b610466565b6040516100fc91906109f8565b61014a610486565b6040516100fc91906109e4565b6100c761016536600461099b565b610495565b6101356101783660046109b7565b610532565b6100c761018b3660046109b7565b610552565b6100c761019e3660046109b7565b6105dc565b6101356101b136600461093c565b610663565b6100c76101c436600461084f565b61067c565b6101d1610720565b6000546001600160a01b039081169116146102075760405162461bcd60e51b81526004016101fe90610b6f565b60405180910390fd5b60ff815111156102295760405162461bcd60e51b81526004016101fe90610a56565b60045461ffff166000818152600360205260408120805460ff19166001178155905b83518160ff1610156102b057838160ff168151811061026657fe5b60209081029190910181015161ffff8516600090815260028352604080822060ff861680845294529020805460ff19169115159190911790556102aa906001610724565b5061024b565b506004546102c39061ffff166001610758565b50505050565b6102d1610720565b6000546001600160a01b039081169116146102fe5760405162461bcd60e51b81526004016101fe90610b6f565b61ffff166000908152600360205260409020805464ffffffffff19169055565b61032661082d565b604051636f375b3760e11b8152309063de6eb66e90610349908590600401610bc3565b60206040518083038186803b15801561036157600080fd5b505afa158015610375573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103999190610920565b6103b55760405162461bcd60e51b81526004016101fe90610b2e565b5061ffff1660009081526003602090815260409182902082518084019093525460ff811615158352610100900463ffffffff169082015290565b60045461ffff1681565b610401610720565b6000546001600160a01b0390811691161461042e5760405162461bcd60e51b81526004016101fe90610b6f565b600080546040516001600160a01b0390911690600080516020610c2f833981519152908390a3600080546001600160a01b0319169055565b600260209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b031690565b61049d610720565b6000546001600160a01b039081169116146104ca5760405162461bcd60e51b81526004016101fe90610b6f565b60015b60045461ffff908116908216101561052e576001600160401b038216600090815260016020908152604080832061ffff8516845290915290205460ff1615610519576105198282610552565b61052861ffff82166001610758565b506104cd565b5050565b600160209081526000928352604080842090915290825290205460ff1681565b61055a610720565b6000546001600160a01b039081169116146105875760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff191690556003909152909120546105d79163ffffffff61010090920482169161078416565b505050565b6105e4610720565b6000546001600160a01b039081169116146106115760405162461bcd60e51b81526004016101fe90610b6f565b6001600160401b038216600090815260016020818152604080842061ffff861685528252808420805460ff1916841790556003909152909120546105d79163ffffffff6101009092048216916107c616565b61ffff1660009081526003602052604090205460ff1690565b610684610720565b6000546001600160a01b039081169116146106b15760405162461bcd60e51b81526004016101fe90610b6f565b6001600160a01b0381166106d75760405162461bcd60e51b81526004016101fe90610ab3565b600080546040516001600160a01b0380851693921691600080516020610c2f83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b600082820160ff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b90505b92915050565b600082820161ffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b600061074f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506107f4565b600082820163ffffffff808516908216101561074f5760405162461bcd60e51b81526004016101fe90610af9565b60008363ffffffff168363ffffffff16111582906108255760405162461bcd60e51b81526004016101fe9190610a03565b505050900390565b604080518082019091526000808252602082015290565b803561075281610bf8565b600060208284031215610860578081fd5b81356001600160a01b038116811461074f578182fd5b60006020808385031215610888578182fd5b82356001600160401b038082111561089e578384fd5b818501915085601f8301126108b1578384fd5b8135818111156108bf578485fd5b83810291506108cf848301610bd2565b8181528481019084860184860187018a10156108e9578788fd5b8795505b83861015610913576108ff8a82610844565b8352600195909501949186019186016108ed565b5098975050505050505050565b600060208284031215610931578081fd5b815161074f81610bf8565b60006020828403121561094d578081fd5b813561074f81610c09565b6000806040838503121561096a578081fd5b823561ffff8116811461097b578182fd5b9150602083013560ff81168114610990578182fd5b809150509250929050565b6000602082840312156109ac578081fd5b813561074f81610c19565b600080604083850312156109c9578182fd5b82356109d481610c19565b9150602083013561099081610c09565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b81811015610a2f57858101830151858201604001528201610a13565b81811115610a405783604083870101525b50601f01601f1916929092016040019392505050565b6020808252603d908201527f5065726d697373696f6e20666c61677320696e7075742061727261792069732060408201527f746f6f206269672e2045787065637465642073697a65203c3d20323535000000606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e672067726f756040820152600760fc1b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b81511515815260209182015163ffffffff169181019190915260400190565b61ffff91909116815260200190565b6040518181016001600160401b0381118282101715610bf057600080fd5b604052919050565b8015158114610c0657600080fd5b50565b61ffff81168114610c0657600080fd5b6001600160401b0381168114610c0657600080fdfe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220f41d0717f0059165404bdacb81c965178377fe168e4dd5b3646273e4039a5a9a64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "408:2322:10:-:0;;;983:29;;;-1:-1:-1;;983:29:10;1011:1;983:29;;;408:2322;;;;;;;;;-1:-1:-1;865:17:14;885:12;:10;:12::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:14;-1:-1:-1;;;;;907:18:14;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:14;940:43;;907:6;;940:43;831:159;408:2322:10;;590:104:13;677:10;590:104;:::o;408:2322:10:-;;;;;;;", - "deployedSourceMap": "408:2322:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1019:558;;;;;;:::i;:::-;;:::i;:::-;;2606:122;;;;;;:::i;:::-;;:::i;1694:199::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;983:29;;;:::i;:::-;;;;;;;:::i;1689:145:14:-;;;:::i;856:71:10:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1066:77:14:-;;;:::i;:::-;;;;;;;:::i;2283:220:10:-;;;;;;:::i;:::-;;:::i;634:68::-;;;;;;:::i;:::-;;:::i;2083:197::-;;;;;;:::i;:::-;;:::i;1899:178::-;;;;;;:::i;:::-;;:::i;1580:111::-;;;;;;:::i;:::-;;:::i;1983:240:14:-;;;;;;:::i;:::-;;:::i;1019:558:10:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;;;;;;;;;1205:3:10::1;1182:12;:19;:26;;1170:110;;;;-1:-1:-1::0;;;1170:110:10::1;;;;;;;:::i;:::-;1301:11;::::0;::::1;;1284:14;1362:18:::0;;;:9:::1;:18;::::0;;;;1409:26;;-1:-1:-1;;1409:26:10::1;1301:11:::0;1409:26:::1;::::0;;1362:18;1439:113:::1;1461:12;:19;1457:1;:23;;;1439:113;;;1532:12;1545:1;1532:15;;;;;;;;;;;::::0;;::::1;::::0;;;;;;;1497:29:::1;::::0;::::1;;::::0;;;:20:::1;:29:::0;;;;;;:32:::1;::::0;::::1;::::0;;;;;;;:50;;-1:-1:-1;;1497:50:10::1;::::0;::::1;;::::0;;;::::1;::::0;;1482:8:::1;::::0;-1:-1:-1;1482:5:10::1;:8::i;:::-;;1439:113;;;-1:-1:-1::0;1555:11:10::1;::::0;:18:::1;::::0;:11:::1;;1571:1;1555:15;:18::i;:::-;;1339:1:14;;1019:558:10::0;:::o;2606:122::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;2673:19:10::1;;;::::0;;;:9:::1;:19;::::0;;;;2666:26;;-1:-1:-1;;2666:26:10;;;2606:122::o;1694:199::-;1759:12;;:::i;:::-;1789:26;;-1:-1:-1;;;1789:26:10;;:4;;:16;;:26;;1806:8;;1789:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1777:82;;;;-1:-1:-1;;;1777:82:10;;;;;;;:::i;:::-;-1:-1:-1;1870:19:10;;;;;;:9;:19;;;;;;;;;1863:26;;;;;;;;;;;;;;;;;;;;;;;;;;1694:199::o;983:29::-;;;;;;:::o;1689:145:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:14;;::::1;::::0;-1:-1:-1;;;;;;;;;;;1758:40:14;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:14::1;::::0;;1689:145::o;856:71:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1066:77:14:-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:14;1066:77;:::o;2283:220:10:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;2375:1:10::1;2359:141;2382:11;::::0;::::1;::::0;;::::1;2378:15:::0;;::::1;;2359:141;;;-1:-1:-1::0;;;;;2414:28:10;::::1;;::::0;;;:16:::1;:28;::::0;;;;;;;:31:::1;::::0;::::1;::::0;;;;;;;;::::1;;2410:86;;;2453:37;2476:10;2488:1;2453:22;:37::i;:::-;2395:8;:5;::::0;::::1;2401:1;2395:5;:8::i;:::-;;2359:141;;;;2283:220:::0;:::o;634:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2083:197::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2173:28:10;::::1;2214:5;2173:28:::0;;;:16:::1;:28;::::0;;;;;;;:38:::1;::::0;::::1;::::0;;;;;;;:46;;-1:-1:-1;;2173:46:10::1;::::0;;2223:9:::1;:19:::0;;;;;;:33;:40:::1;::::0;:33:::1;2173:46;2223:33:::0;;::::1;::::0;::::1;::::0;:37:::1;:40;:::i;:::-;;2083:197:::0;;:::o;1899:178::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;1984:28:10;::::1;;::::0;;;2025:4:::1;1984:28;::::0;;;;;;;:38:::1;::::0;::::1;::::0;;;;;;;:45;;-1:-1:-1;;1984:45:10::1;::::0;::::1;::::0;;2033:9:::1;:19:::0;;;;;;:33;:40:::1;::::0;:33:::1;1984:45;2033:33:::0;;::::1;::::0;::::1;::::0;:37:::1;:40;:::i;1580:111::-:0;1657:19;;1640:4;1657:19;;;:9;:19;;;;;:30;;;;1580:111::o;1983:240:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2071:22:14;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:14::1;;;;;;;:::i;:::-;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:14;;::::1;::::0;2172:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2151:38:14;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:14::1;-1:-1:-1::0;;;;;2199:17:14;;;::::1;::::0;;;::::1;::::0;;1983:240::o;590:104:13:-;677:10;590:104;:::o;322:168:8:-;376:5;403;;;426:6;;;;;;;;;418:46;;;;-1:-1:-1;;;418:46:8;;;;;;;:::i;:::-;482:1;-1:-1:-1;322:168:8;;;;;:::o;324:172:5:-;380:6;409:5;;;432:6;;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:5;;;;;;;:::i;767:131:6:-;823:6;848:43;852:1;855;848:43;;;;;;;;;;;;;;;;;:3;:43::i;324:172::-;380:6;409:5;;;432:6;;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:6;;;;;;;:::i;1189:183::-;1273:6;1304:1;1299:6;;:1;:6;;;;1307:12;1291:29;;;;;-1:-1:-1;;;1291:29:6;;;;;;;;:::i;:::-;-1:-1:-1;;;1341:5:6;;;1189:183::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;863:124::-;927:20;;952:30;927:20;952:30;:::i;1532:241::-;;1636:2;1624:9;1615:7;1611:23;1607:32;1604:2;;;-1:-1;;1642:12;1604:2;72:20;;-1:-1;;;;;11567:54;;12360:35;;12350:2;;-1:-1;;12399:12;1780:371;;1906:2;;1894:9;1885:7;1881:23;1877:32;1874:2;;;-1:-1;;1912:12;1874:2;1957:31;;-1:-1;;;;;1997:30;;;1994:2;;;-1:-1;;2030:12;1994:2;2118:6;2107:9;2103:22;;;271:3;264:4;256:6;252:17;248:27;238:2;;-1:-1;;279:12;238:2;326:6;313:20;2008:18;10763:6;10760:30;10757:2;;;-1:-1;;10793:12;10757:2;1906;10830:6;10826:17;;;348:77;1906:2;10826:17;10891:15;348:77;:::i;:::-;453:21;;;510:14;;;;485:17;;;590:27;;;;;587:36;-1:-1;584:2;;;-1:-1;;626:12;584:2;-1:-1;652:10;;646:203;671:6;668:1;665:13;646:203;;;751:34;781:3;769:10;751:34;:::i;:::-;739:47;;693:1;686:9;;;;;800:14;;;;828;;646:203;;;-1:-1;2050:85;1868:283;-1:-1;;;;;;;;1868:283::o;2158:257::-;;2270:2;2258:9;2249:7;2245:23;2241:32;2238:2;;;-1:-1;;2276:12;2238:2;1075:6;1069:13;1087:30;1111:5;1087:30;:::i;2422:239::-;;2525:2;2513:9;2504:7;2500:23;2496:32;2493:2;;;-1:-1;;2531:12;2493:2;1208:6;1195:20;1220:32;1246:5;1220:32;:::i;2668:360::-;;;2786:2;2774:9;2765:7;2761:23;2757:32;2754:2;;;-1:-1;;2792:12;2754:2;1208:6;1195:20;11486:6;12628:5;11475:18;12604:5;12601:34;12591:2;;-1:-1;;12639:12;12591:2;2844:62;-1:-1;2943:2;2980:22;;1464:20;11902:4;11891:16;;12844:33;;12834:2;;-1:-1;;12881:12;12834:2;2951:61;;;;2748:280;;;;;:::o;3035:239::-;;3138:2;3126:9;3117:7;3113:23;3109:32;3106:2;;;-1:-1;;3144:12;3106:2;1343:6;1330:20;1355:32;1381:5;1355:32;:::i;3281:362::-;;;3400:2;3388:9;3379:7;3375:23;3371:32;3368:2;;;-1:-1;;3406:12;3368:2;1343:6;1330:20;1355:32;1381:5;1355:32;:::i;:::-;3458:62;-1:-1;3557:2;3595:22;;1195:20;1220:32;1195:20;1220:32;:::i;6928:222::-;-1:-1;;;;;11567:54;;;;3721:37;;7055:2;7040:18;;7026:124::o;7157:210::-;11388:13;;11381:21;3825:34;;7278:2;7263:18;;7249:118::o;7374:310::-;;7521:2;;7542:17;7535:47;4127:5;11011:12;11168:6;7521:2;7510:9;7506:18;11156:19;-1:-1;11992:101;12006:6;12003:1;12000:13;11992:101;;;12073:11;;;;;12067:18;12054:11;;;11196:14;12054:11;12047:39;12021:10;;11992:101;;;12108:6;12105:1;12102:13;12099:2;;;-1:-1;11196:14;12164:6;7510:9;12155:16;;12148:27;12099:2;-1:-1;12280:7;12264:14;-1:-1;;12260:28;4285:39;;;;11196:14;4285:39;;7492:192;-1:-1;;;7492:192::o;7691:416::-;7891:2;7905:47;;;4561:2;7876:18;;;11156:19;4597:34;11196:14;;;4577:55;4666:31;4652:12;;;4645:53;4717:12;;;7862:245::o;8114:416::-;8314:2;8328:47;;;4968:2;8299:18;;;11156:19;5004:34;11196:14;;;4984:55;-1:-1;;;5059:12;;;5052:30;5101:12;;;8285:245::o;8537:416::-;8737:2;8751:47;;;5352:2;8722:18;;;11156:19;-1:-1;;;11196:14;;;5368:50;5437:12;;;8708:245::o;8960:416::-;9160:2;9174:47;;;5688:2;9145:18;;;11156:19;5724:34;11196:14;;;5704:55;-1:-1;;;5779:12;;;5772:25;5816:12;;;9131:245::o;9383:416::-;9583:2;9597:47;;;9568:18;;;11156:19;6103:34;11196:14;;;6083:55;6157:12;;;9554:245::o;9806:314::-;6429:23;;11388:13;11381:21;3825:34;;6603:4;6592:16;;;6586:23;11705:10;11694:22;6661:14;;;6880:36;;;;9979:2;9964:18;;9950:170::o;10127:218::-;11486:6;11475:18;;;;6773:36;;10252:2;10237:18;;10223:122::o;10352:256::-;10414:2;10408:9;10440:17;;;-1:-1;;;;;10500:34;;10536:22;;;10497:62;10494:2;;;10572:1;;10562:12;10494:2;10414;10581:22;10392:216;;-1:-1;10392:216::o;12425:111::-;12506:5;11388:13;11381:21;12484:5;12481:32;12471:2;;12527:1;;12517:12;12471:2;12465:71;:::o;12543:115::-;11486:6;12628:5;11475:18;12604:5;12601:34;12591:2;;12649:1;;12639:12;12665:115;-1:-1;;;;;11789:30;;12723:34;;12713:2;;12771:1;;12761:12", - "source": "pragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../../node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol\";\n\nimport \"../lib/SafeMath8.sol\";\nimport \"../lib/SafeMath16.sol\";\nimport \"../lib/SafeMath32.sol\";\n\n// Any change to this struct requires CuratorGroupStorage migration\nstruct Group {\n\tbool isExisting;\n\tuint32 curatorsCount;\n}\n\ncontract CuratorGroupStorage is Ownable {\n\tusing SafeMath8 for uint8;\n\tusing SafeMath16 for uint16;\n\tusing SafeMath32 for uint32;\n\n // curatorId => groupId => boolean double-map representing curator membership in group\n mapping (uint64 => mapping (uint16 => bool)) public isCuratorInGroup;\n\t// A generic storage representation of group permissions' flags\n\t// Those flags can have different meanings depending on current logic implementation\n\tmapping (uint16 => mapping (uint8 => bool)) public permissionsByGroupId;\n mapping (uint16 => Group) private groupById;\n\n uint16 public nextGroupId = 1;\n\n function addGroup (bool[] memory _permissions) public onlyOwner {\n\t\t// Prevent possible uint8 overflow infinite loop, TODO: Could just use SafeMath!\n\t\trequire(\n\t\t\t_permissions.length <= 255,\n\t\t\t\"Permission flags input array is too big. Expected size <= 255\"\n\t\t);\n\t\tuint16 groupId = nextGroupId;\n\t\t// Get storage ref\n\t\tGroup storage newGroup = groupById[groupId];\n\t\t// Populate the struct\n\t\tnewGroup.isExisting = true;\n\t\tfor (uint8 i = 0; i < _permissions.length; i.add(1)) {\n\t\t\tpermissionsByGroupId[groupId][i] = _permissions[i];\n\t\t}\n\t\tnextGroupId.add(1);\n\t}\n\n\tfunction groupExists (uint16 _groupId) public view returns (bool) {\n\t\treturn groupById[_groupId].isExisting;\n\t}\n\n\tfunction getExistingGroup (uint16 _groupId) public view returns (Group memory) {\n\t\trequire(\n\t\t\tthis.groupExists(_groupId),\n\t\t\t\"Trying to access unexisting group\"\n\t\t);\n\t\treturn groupById[_groupId];\n\t}\n\n function addCuratorToGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner {\n\t\tisCuratorInGroup[_curatorId][_groupId] = true;\n\t\tgroupById[_groupId].curatorsCount.add(1);\n\t}\n\n function removeCuratorFromGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner {\n\t\tisCuratorInGroup[_curatorId][_groupId] = false;\n\t\tgroupById[_groupId].curatorsCount.sub(1); // Safemath?\n\t}\n\n\tfunction removeCuratorFromAllGroups(uint64 _curatorId) public onlyOwner {\n\t\tfor (uint16 i = 1; i < nextGroupId; i.add(1)) {\n\t\t\tif (isCuratorInGroup[_curatorId][i]) {\n\t\t\t\tremoveCuratorFromGroup(_curatorId, i);\n\t\t\t}\n\t\t}\n\t}\n\n // FIXME: Is there a value in removing a group that has no curators and no channels anymore?\n function removeGroup (uint16 _groupId) public onlyOwner {\n\t\tdelete groupById[_groupId]; // Will set isExisting to false\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", - "exportedSymbols": { - "CuratorGroupStorage": [ - 3114 - ], - "Group": [ - 2887 - ] - }, - "id": 3115, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "0:33:10" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 2878, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 3403, - "src": "35:71:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", - "file": "../../node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", - "id": 2879, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 4054, - "src": "107:76:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", - "file": "../lib/SafeMath8.sol", - "id": 2880, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 2458, - "src": "185:30:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", - "file": "../lib/SafeMath16.sol", - "id": 2881, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 1873, - "src": "216:31:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "file": "../lib/SafeMath32.sol", - "id": 2882, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 2068, - "src": "248:31:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "Group", - "id": 2887, - "members": [ - { - "constant": false, - "id": 2884, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2887, - "src": "365:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2883, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "365:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2886, - "mutability": "mutable", - "name": "curatorsCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2887, - "src": "383:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2885, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "383:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Group", - "nodeType": "StructDefinition", - "scope": 3115, - "src": "349:57:10", - "visibility": "public" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2888, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "440:7:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 2889, - "nodeType": "InheritanceSpecifier", - "src": "440:7:10" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3114, - "linearizedBaseContracts": [ - 3114, - 3402, - 3293 - ], - "name": "CuratorGroupStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2892, - "libraryName": { - "contractScope": null, - "id": 2890, - "name": "SafeMath8", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2457, - "src": "457:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath8_$2457", - "typeString": "library SafeMath8" - } - }, - "nodeType": "UsingForDirective", - "src": "451:26:10", - "typeName": { - "id": 2891, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "471:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - }, - { - "id": 2895, - "libraryName": { - "contractScope": null, - "id": 2893, - "name": "SafeMath16", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1872, - "src": "485:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath16_$1872", - "typeString": "library SafeMath16" - } - }, - "nodeType": "UsingForDirective", - "src": "479:28:10", - "typeName": { - "id": 2894, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "500:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - }, - { - "id": 2898, - "libraryName": { - "contractScope": null, - "id": 2896, - "name": "SafeMath32", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2067, - "src": "515:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath32_$2067", - "typeString": "library SafeMath32" - } - }, - "nodeType": "UsingForDirective", - "src": "509:28:10", - "typeName": { - "id": 2897, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "530:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - }, - { - "constant": false, - "functionSelector": "a51a0a86", - "id": 2904, - "mutability": "mutable", - "name": "isCuratorInGroup", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "634:68:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - }, - "typeName": { - "id": 2903, - "keyType": { - "id": 2899, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "643:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "634:44:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - }, - "valueType": { - "id": 2902, - "keyType": { - "id": 2900, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "662:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "653:24:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - }, - "valueType": { - "id": 2901, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "672:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7f8c9ea2", - "id": 2910, - "mutability": "mutable", - "name": "permissionsByGroupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "856:71:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", - "typeString": "mapping(uint16 => mapping(uint8 => bool))" - }, - "typeName": { - "id": 2909, - "keyType": { - "id": 2905, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "865:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "856:43:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", - "typeString": "mapping(uint16 => mapping(uint8 => bool))" - }, - "valueType": { - "id": 2908, - "keyType": { - "id": 2906, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "884:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Mapping", - "src": "875:23:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", - "typeString": "mapping(uint8 => bool)" - }, - "valueType": { - "id": 2907, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "893:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2914, - "mutability": "mutable", - "name": "groupById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "933:43:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group)" - }, - "typeName": { - "id": 2913, - "keyType": { - "id": 2911, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "942:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "933:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group)" - }, - "valueType": { - "contractScope": null, - "id": 2912, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "952:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "5eda7a76", - "id": 2917, - "mutability": "mutable", - "name": "nextGroupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "983:29:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2915, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "983:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 2916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "body": { - "id": 2980, - "nodeType": "Block", - "src": "1083:494:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2926, - "name": "_permissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "1182:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1182:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "323535", - "id": 2928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1205:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "255" - }, - "src": "1182:26:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5065726d697373696f6e20666c61677320696e70757420617272617920697320746f6f206269672e2045787065637465642073697a65203c3d20323535", - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1213:63:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", - "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" - }, - "value": "Permission flags input array is too big. Expected size <= 255" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", - "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" - } - ], - "id": 2925, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1170:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1170:110:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2932, - "nodeType": "ExpressionStatement", - "src": "1170:110:10" - }, - { - "assignments": [ - 2934 - ], - "declarations": [ - { - "constant": false, - "id": 2934, - "mutability": "mutable", - "name": "groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2980, - "src": "1284:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2933, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1284:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2936, - "initialValue": { - "argumentTypes": null, - "id": 2935, - "name": "nextGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "1301:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1284:28:10" - }, - { - "assignments": [ - 2938 - ], - "declarations": [ - { - "constant": false, - "id": 2938, - "mutability": "mutable", - "name": "newGroup", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2980, - "src": "1337:22:10", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - }, - "typeName": { - "contractScope": null, - "id": 2937, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "1337:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2942, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2939, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "1362:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 2941, - "indexExpression": { - "argumentTypes": null, - "id": 2940, - "name": "groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "1372:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1362:18:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1337:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 2947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2943, - "name": "newGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2938, - "src": "1409:8:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group storage pointer" - } - }, - "id": 2945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2884, - "src": "1409:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:4:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1409:26:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2948, - "nodeType": "ExpressionStatement", - "src": "1409:26:10" - }, - { - "body": { - "id": 2972, - "nodeType": "Block", - "src": "1492:60:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2962, - "name": "permissionsByGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2910, - "src": "1497:20:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", - "typeString": "mapping(uint16 => mapping(uint8 => bool))" - } - }, - "id": 2965, - "indexExpression": { - "argumentTypes": null, - "id": 2963, - "name": "groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "1518:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1497:29:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", - "typeString": "mapping(uint8 => bool)" - } - }, - "id": 2966, - "indexExpression": { - "argumentTypes": null, - "id": 2964, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1527:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1497:32:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2967, - "name": "_permissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "1532:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 2969, - "indexExpression": { - "argumentTypes": null, - "id": 2968, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1545:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1532:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1497:50:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2971, - "nodeType": "ExpressionStatement", - "src": "1497:50:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2953, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1457:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2954, - "name": "_permissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "1461:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 2955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1461:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1457:23:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2973, - "initializationExpression": { - "assignments": [ - 2950 - ], - "declarations": [ - { - "constant": false, - "id": 2950, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2973, - "src": "1444:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2949, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1444:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2952, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1454:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1444:11:10" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1488:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2957, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1482:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 2958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2290, - "src": "1482:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$returns$_t_uint8_$bound_to$_t_uint8_$", - "typeString": "function (uint8,uint8) pure returns (uint8)" - } - }, - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1482:8:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 2961, - "nodeType": "ExpressionStatement", - "src": "1482:8:10" - }, - "nodeType": "ForStatement", - "src": "1439:113:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1571:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2974, - "name": "nextGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "1555:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1705, - "src": "1555:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", - "typeString": "function (uint16,uint16) pure returns (uint16)" - } - }, - "id": 2978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1555:18:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2979, - "nodeType": "ExpressionStatement", - "src": "1555:18:10" - } - ] - }, - "documentation": null, - "functionSelector": "1d191c33", - "id": 2981, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2923, - "modifierName": { - "argumentTypes": null, - "id": 2922, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1073:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1073:9:10" - } - ], - "name": "addGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2920, - "mutability": "mutable", - "name": "_permissions", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2981, - "src": "1038:26:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[]" - }, - "typeName": { - "baseType": { - "id": 2918, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1038:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2919, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1038:6:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1037:28:10" - }, - "returnParameters": { - "id": 2924, - "nodeType": "ParameterList", - "parameters": [], - "src": "1083:0:10" - }, - "scope": 3114, - "src": "1019:558:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2993, - "nodeType": "Block", - "src": "1646:45:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2988, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "1657:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 2990, - "indexExpression": { - "argumentTypes": null, - "id": 2989, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2983, - "src": "1667:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1657:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "id": 2991, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2884, - "src": "1657:30:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2987, - "id": 2992, - "nodeType": "Return", - "src": "1650:37:10" - } - ] - }, - "documentation": null, - "functionSelector": "de6eb66e", - "id": 2994, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "groupExists", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2994, - "src": "1602:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2982, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1602:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1601:17:10" - }, - "returnParameters": { - "id": 2987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2994, - "src": "1640:4:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2985, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1640:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1639:6:10" - }, - "scope": 3114, - "src": "1580:111:10", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3013, - "nodeType": "Block", - "src": "1773:120:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3004, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2996, - "src": "1806:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3002, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1789:4:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 3003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "groupExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 2994, - "src": "1789:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint16) view external returns (bool)" - } - }, - "id": 3005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1789:26:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e672067726f7570", - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1820:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", - "typeString": "literal_string \"Trying to access unexisting group\"" - }, - "value": "Trying to access unexisting group" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", - "typeString": "literal_string \"Trying to access unexisting group\"" - } - ], - "id": 3001, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1777:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1777:82:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "1777:82:10" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3009, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "1870:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3011, - "indexExpression": { - "argumentTypes": null, - "id": 3010, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2996, - "src": "1880:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1870:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "functionReturnParameters": 3000, - "id": 3012, - "nodeType": "Return", - "src": "1863:26:10" - } - ] - }, - "documentation": null, - "functionSelector": "400c196c", - "id": 3014, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2996, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3014, - "src": "1721:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2995, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1721:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1720:17:10" - }, - "returnParameters": { - "id": 3000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2999, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3014, - "src": "1759:12:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group" - }, - "typeName": { - "contractScope": null, - "id": 2998, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "1759:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1758:14:10" - }, - "scope": 3114, - "src": "1694:199:10", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3039, - "nodeType": "Block", - "src": "1980:97:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3023, - "name": "isCuratorInGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2904, - "src": "1984:16:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - } - }, - "id": 3026, - "indexExpression": { - "argumentTypes": null, - "id": 3024, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3016, - "src": "2001:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1984:28:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - } - }, - "id": 3027, - "indexExpression": { - "argumentTypes": null, - "id": 3025, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3018, - "src": "2013:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1984:38:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2025:4:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1984:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3030, - "nodeType": "ExpressionStatement", - "src": "1984:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2071:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3031, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "2033:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3033, - "indexExpression": { - "argumentTypes": null, - "id": 3032, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3018, - "src": "2043:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2033:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "id": 3034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2886, - "src": "2033:33:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "2033:37:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2033:40:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3038, - "nodeType": "ExpressionStatement", - "src": "2033:40:10" - } - ] - }, - "documentation": null, - "functionSelector": "d8b457fc", - "id": 3040, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3021, - "modifierName": { - "argumentTypes": null, - "id": 3020, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1970:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1970:9:10" - } - ], - "name": "addCuratorToGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3016, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3040, - "src": "1927:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3015, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1927:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3018, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3040, - "src": "1946:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3017, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1946:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1926:36:10" - }, - "returnParameters": { - "id": 3022, - "nodeType": "ParameterList", - "parameters": [], - "src": "1980:0:10" - }, - "scope": 3114, - "src": "1899:178:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3065, - "nodeType": "Block", - "src": "2169:111:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3049, - "name": "isCuratorInGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2904, - "src": "2173:16:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - } - }, - "id": 3052, - "indexExpression": { - "argumentTypes": null, - "id": 3050, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3042, - "src": "2190:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2173:28:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - } - }, - "id": 3053, - "indexExpression": { - "argumentTypes": null, - "id": 3051, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "2202:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2173:38:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2214:5:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2173:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3056, - "nodeType": "ExpressionStatement", - "src": "2173:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2261:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3057, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "2223:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3059, - "indexExpression": { - "argumentTypes": null, - "id": 3058, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "2233:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2223:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "id": 3060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2886, - "src": "2223:33:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1917, - "src": "2223:37:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 3063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2223:40:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3064, - "nodeType": "ExpressionStatement", - "src": "2223:40:10" - } - ] - }, - "documentation": null, - "functionSelector": "be16b353", - "id": 3066, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3047, - "modifierName": { - "argumentTypes": null, - "id": 3046, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2159:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2159:9:10" - } - ], - "name": "removeCuratorFromGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3042, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3066, - "src": "2116:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3041, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2116:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3044, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3066, - "src": "2135:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3043, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2135:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2115:36:10" - }, - "returnParameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [], - "src": "2169:0:10" - }, - "scope": 3114, - "src": "2083:197:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3099, - "nodeType": "Block", - "src": "2355:148:10", - "statements": [ - { - "body": { - "id": 3097, - "nodeType": "Block", - "src": "2405:95:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3085, - "name": "isCuratorInGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2904, - "src": "2414:16:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - } - }, - "id": 3087, - "indexExpression": { - "argumentTypes": null, - "id": 3086, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3068, - "src": "2431:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2414:28:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - } - }, - "id": 3089, - "indexExpression": { - "argumentTypes": null, - "id": 3088, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2443:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2414:31:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3096, - "nodeType": "IfStatement", - "src": "2410:86:10", - "trueBody": { - "id": 3095, - "nodeType": "Block", - "src": "2447:49:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3091, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3068, - "src": "2476:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 3092, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2488:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 3090, - "name": "removeCuratorFromGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3066, - "src": "2453:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16)" - } - }, - "id": 3093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2453:37:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3094, - "nodeType": "ExpressionStatement", - "src": "2453:37:10" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 3079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3077, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2378:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3078, - "name": "nextGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "2382:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2378:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3098, - "initializationExpression": { - "assignments": [ - 3074 - ], - "declarations": [ - { - "constant": false, - "id": 3074, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3098, - "src": "2364:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3073, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2364:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3076, - "initialValue": { - "argumentTypes": null, - "hexValue": "31", - "id": 3075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2375:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2364:12:10" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2401:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 3080, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2395:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1705, - "src": "2395:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", - "typeString": "function (uint16,uint16) pure returns (uint16)" - } - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2395:8:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3084, - "nodeType": "ExpressionStatement", - "src": "2395:8:10" - }, - "nodeType": "ForStatement", - "src": "2359:141:10" - } - ] - }, - "documentation": null, - "functionSelector": "96cbd61b", - "id": 3100, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3071, - "modifierName": { - "argumentTypes": null, - "id": 3070, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2345:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2345:9:10" - } - ], - "name": "removeCuratorFromAllGroups", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3069, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3068, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3100, - "src": "2319:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3067, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2319:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2318:19:10" - }, - "returnParameters": { - "id": 3072, - "nodeType": "ParameterList", - "parameters": [], - "src": "2355:0:10" - }, - "scope": 3114, - "src": "2283:220:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3112, - "nodeType": "Block", - "src": "2662:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "2666:26:10", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3107, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "2673:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3109, - "indexExpression": { - "argumentTypes": null, - "id": 3108, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3102, - "src": "2683:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2673:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "2666:26:10" - } - ] - }, - "documentation": null, - "functionSelector": "3cbdb702", - "id": 3113, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3105, - "modifierName": { - "argumentTypes": null, - "id": 3104, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2652:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2652:9:10" - } - ], - "name": "removeGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3102, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3113, - "src": "2628:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3101, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2628:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2627:17:10" - }, - "returnParameters": { - "id": 3106, - "nodeType": "ParameterList", - "parameters": [], - "src": "2662:0:10" - }, - "scope": 3114, - "src": "2606:122:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 3115, - "src": "408:2322:10" - } - ], - "src": "0:2731:10" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/CuratorGroupStorage.sol", - "exportedSymbols": { - "CuratorGroupStorage": [ - 3114 - ], - "Group": [ - 2887 - ] - }, - "id": 3115, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2877, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "0:33:10" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 2878, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 3403, - "src": "35:71:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", - "file": "../../node_modules/@openzeppelin/contracts/utils/EnumerableMap.sol", - "id": 2879, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 4054, - "src": "107:76:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", - "file": "../lib/SafeMath8.sol", - "id": 2880, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 2458, - "src": "185:30:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", - "file": "../lib/SafeMath16.sol", - "id": 2881, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 1873, - "src": "216:31:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "file": "../lib/SafeMath32.sol", - "id": 2882, - "nodeType": "ImportDirective", - "scope": 3115, - "sourceUnit": 2068, - "src": "248:31:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "Group", - "id": 2887, - "members": [ - { - "constant": false, - "id": 2884, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2887, - "src": "365:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2883, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "365:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2886, - "mutability": "mutable", - "name": "curatorsCount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2887, - "src": "383:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2885, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "383:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Group", - "nodeType": "StructDefinition", - "scope": 3115, - "src": "349:57:10", - "visibility": "public" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2888, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "440:7:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 2889, - "nodeType": "InheritanceSpecifier", - "src": "440:7:10" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3114, - "linearizedBaseContracts": [ - 3114, - 3402, - 3293 - ], - "name": "CuratorGroupStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2892, - "libraryName": { - "contractScope": null, - "id": 2890, - "name": "SafeMath8", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2457, - "src": "457:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath8_$2457", - "typeString": "library SafeMath8" - } - }, - "nodeType": "UsingForDirective", - "src": "451:26:10", - "typeName": { - "id": 2891, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "471:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - }, - { - "id": 2895, - "libraryName": { - "contractScope": null, - "id": 2893, - "name": "SafeMath16", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1872, - "src": "485:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath16_$1872", - "typeString": "library SafeMath16" - } - }, - "nodeType": "UsingForDirective", - "src": "479:28:10", - "typeName": { - "id": 2894, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "500:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - }, - { - "id": 2898, - "libraryName": { - "contractScope": null, - "id": 2896, - "name": "SafeMath32", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2067, - "src": "515:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath32_$2067", - "typeString": "library SafeMath32" - } - }, - "nodeType": "UsingForDirective", - "src": "509:28:10", - "typeName": { - "id": 2897, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "530:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - }, - { - "constant": false, - "functionSelector": "a51a0a86", - "id": 2904, - "mutability": "mutable", - "name": "isCuratorInGroup", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "634:68:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - }, - "typeName": { - "id": 2903, - "keyType": { - "id": 2899, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "643:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "634:44:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - }, - "valueType": { - "id": 2902, - "keyType": { - "id": 2900, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "662:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "653:24:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - }, - "valueType": { - "id": 2901, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "672:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "7f8c9ea2", - "id": 2910, - "mutability": "mutable", - "name": "permissionsByGroupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "856:71:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", - "typeString": "mapping(uint16 => mapping(uint8 => bool))" - }, - "typeName": { - "id": 2909, - "keyType": { - "id": 2905, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "865:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "856:43:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", - "typeString": "mapping(uint16 => mapping(uint8 => bool))" - }, - "valueType": { - "id": 2908, - "keyType": { - "id": 2906, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "884:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Mapping", - "src": "875:23:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", - "typeString": "mapping(uint8 => bool)" - }, - "valueType": { - "id": 2907, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "893:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2914, - "mutability": "mutable", - "name": "groupById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "933:43:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group)" - }, - "typeName": { - "id": 2913, - "keyType": { - "id": 2911, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "942:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Mapping", - "src": "933:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group)" - }, - "valueType": { - "contractScope": null, - "id": 2912, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "952:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "5eda7a76", - "id": 2917, - "mutability": "mutable", - "name": "nextGroupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3114, - "src": "983:29:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2915, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "983:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 2916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1011:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "body": { - "id": 2980, - "nodeType": "Block", - "src": "1083:494:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2926, - "name": "_permissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "1182:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 2927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1182:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "323535", - "id": 2928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1205:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_255_by_1", - "typeString": "int_const 255" - }, - "value": "255" - }, - "src": "1182:26:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5065726d697373696f6e20666c61677320696e70757420617272617920697320746f6f206269672e2045787065637465642073697a65203c3d20323535", - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1213:63:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", - "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" - }, - "value": "Permission flags input array is too big. Expected size <= 255" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15a99239127485c176bf6a4806b562485bdde196e10b2643868af7d2b33808df", - "typeString": "literal_string \"Permission flags input array is too big. Expected size <= 255\"" - } - ], - "id": 2925, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1170:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1170:110:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2932, - "nodeType": "ExpressionStatement", - "src": "1170:110:10" - }, - { - "assignments": [ - 2934 - ], - "declarations": [ - { - "constant": false, - "id": 2934, - "mutability": "mutable", - "name": "groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2980, - "src": "1284:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2933, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1284:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2936, - "initialValue": { - "argumentTypes": null, - "id": 2935, - "name": "nextGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "1301:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1284:28:10" - }, - { - "assignments": [ - 2938 - ], - "declarations": [ - { - "constant": false, - "id": 2938, - "mutability": "mutable", - "name": "newGroup", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2980, - "src": "1337:22:10", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - }, - "typeName": { - "contractScope": null, - "id": 2937, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "1337:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2942, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2939, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "1362:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 2941, - "indexExpression": { - "argumentTypes": null, - "id": 2940, - "name": "groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "1372:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1362:18:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1337:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 2947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2943, - "name": "newGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2938, - "src": "1409:8:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group storage pointer" - } - }, - "id": 2945, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2884, - "src": "1409:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2946, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:4:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1409:26:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2948, - "nodeType": "ExpressionStatement", - "src": "1409:26:10" - }, - { - "body": { - "id": 2972, - "nodeType": "Block", - "src": "1492:60:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2970, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2962, - "name": "permissionsByGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2910, - "src": "1497:20:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_mapping$_t_uint8_$_t_bool_$_$", - "typeString": "mapping(uint16 => mapping(uint8 => bool))" - } - }, - "id": 2965, - "indexExpression": { - "argumentTypes": null, - "id": 2963, - "name": "groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "1518:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1497:29:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint8_$_t_bool_$", - "typeString": "mapping(uint8 => bool)" - } - }, - "id": 2966, - "indexExpression": { - "argumentTypes": null, - "id": 2964, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1527:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1497:32:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2967, - "name": "_permissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "1532:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 2969, - "indexExpression": { - "argumentTypes": null, - "id": 2968, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1545:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1532:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1497:50:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2971, - "nodeType": "ExpressionStatement", - "src": "1497:50:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2953, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1457:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2954, - "name": "_permissions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2920, - "src": "1461:12:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[] memory" - } - }, - "id": 2955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1461:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1457:23:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2973, - "initializationExpression": { - "assignments": [ - 2950 - ], - "declarations": [ - { - "constant": false, - "id": 2950, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2973, - "src": "1444:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2949, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1444:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2952, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2951, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1454:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "1444:11:10" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1488:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2957, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2950, - "src": "1482:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 2958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2290, - "src": "1482:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$returns$_t_uint8_$bound_to$_t_uint8_$", - "typeString": "function (uint8,uint8) pure returns (uint8)" - } - }, - "id": 2960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1482:8:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 2961, - "nodeType": "ExpressionStatement", - "src": "1482:8:10" - }, - "nodeType": "ForStatement", - "src": "1439:113:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1571:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2974, - "name": "nextGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "1555:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1705, - "src": "1555:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", - "typeString": "function (uint16,uint16) pure returns (uint16)" - } - }, - "id": 2978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1555:18:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2979, - "nodeType": "ExpressionStatement", - "src": "1555:18:10" - } - ] - }, - "documentation": null, - "functionSelector": "1d191c33", - "id": 2981, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2923, - "modifierName": { - "argumentTypes": null, - "id": 2922, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1073:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1073:9:10" - } - ], - "name": "addGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2921, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2920, - "mutability": "mutable", - "name": "_permissions", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2981, - "src": "1038:26:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", - "typeString": "bool[]" - }, - "typeName": { - "baseType": { - "id": 2918, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1038:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2919, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1038:6:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", - "typeString": "bool[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1037:28:10" - }, - "returnParameters": { - "id": 2924, - "nodeType": "ParameterList", - "parameters": [], - "src": "1083:0:10" - }, - "scope": 3114, - "src": "1019:558:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 2993, - "nodeType": "Block", - "src": "1646:45:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2988, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "1657:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 2990, - "indexExpression": { - "argumentTypes": null, - "id": 2989, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2983, - "src": "1667:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1657:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "id": 2991, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 2884, - "src": "1657:30:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2987, - "id": 2992, - "nodeType": "Return", - "src": "1650:37:10" - } - ] - }, - "documentation": null, - "functionSelector": "de6eb66e", - "id": 2994, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "groupExists", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2984, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2983, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2994, - "src": "1602:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2982, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1602:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1601:17:10" - }, - "returnParameters": { - "id": 2987, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2986, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2994, - "src": "1640:4:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2985, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1640:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1639:6:10" - }, - "scope": 3114, - "src": "1580:111:10", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3013, - "nodeType": "Block", - "src": "1773:120:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3004, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2996, - "src": "1806:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3002, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -28, - "src": "1789:4:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CuratorGroupStorage_$3114", - "typeString": "contract CuratorGroupStorage" - } - }, - "id": 3003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "groupExists", - "nodeType": "MemberAccess", - "referencedDeclaration": 2994, - "src": "1789:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_uint16_$returns$_t_bool_$", - "typeString": "function (uint16) view external returns (bool)" - } - }, - "id": 3005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1789:26:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e672067726f7570", - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1820:35:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", - "typeString": "literal_string \"Trying to access unexisting group\"" - }, - "value": "Trying to access unexisting group" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3464222899b0085190089cead47ca4d22a23eb4a3596c208f1c944e386e75bae", - "typeString": "literal_string \"Trying to access unexisting group\"" - } - ], - "id": 3001, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1777:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1777:82:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "1777:82:10" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3009, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "1870:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3011, - "indexExpression": { - "argumentTypes": null, - "id": 3010, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2996, - "src": "1880:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1870:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "functionReturnParameters": 3000, - "id": 3012, - "nodeType": "Return", - "src": "1863:26:10" - } - ] - }, - "documentation": null, - "functionSelector": "400c196c", - "id": 3014, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2997, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2996, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3014, - "src": "1721:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2995, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1721:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1720:17:10" - }, - "returnParameters": { - "id": 3000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2999, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3014, - "src": "1759:12:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_memory_ptr", - "typeString": "struct Group" - }, - "typeName": { - "contractScope": null, - "id": 2998, - "name": "Group", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2887, - "src": "1759:5:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage_ptr", - "typeString": "struct Group" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1758:14:10" - }, - "scope": 3114, - "src": "1694:199:10", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3039, - "nodeType": "Block", - "src": "1980:97:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3023, - "name": "isCuratorInGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2904, - "src": "1984:16:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - } - }, - "id": 3026, - "indexExpression": { - "argumentTypes": null, - "id": 3024, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3016, - "src": "2001:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1984:28:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - } - }, - "id": 3027, - "indexExpression": { - "argumentTypes": null, - "id": 3025, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3018, - "src": "2013:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1984:38:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2025:4:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1984:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3030, - "nodeType": "ExpressionStatement", - "src": "1984:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2071:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3031, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "2033:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3033, - "indexExpression": { - "argumentTypes": null, - "id": 3032, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3018, - "src": "2043:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2033:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "id": 3034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2886, - "src": "2033:33:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1900, - "src": "2033:37:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 3037, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2033:40:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3038, - "nodeType": "ExpressionStatement", - "src": "2033:40:10" - } - ] - }, - "documentation": null, - "functionSelector": "d8b457fc", - "id": 3040, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3021, - "modifierName": { - "argumentTypes": null, - "id": 3020, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1970:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1970:9:10" - } - ], - "name": "addCuratorToGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3016, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3040, - "src": "1927:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3015, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1927:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3018, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3040, - "src": "1946:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3017, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1946:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1926:36:10" - }, - "returnParameters": { - "id": 3022, - "nodeType": "ParameterList", - "parameters": [], - "src": "1980:0:10" - }, - "scope": 3114, - "src": "1899:178:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3065, - "nodeType": "Block", - "src": "2169:111:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3049, - "name": "isCuratorInGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2904, - "src": "2173:16:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - } - }, - "id": 3052, - "indexExpression": { - "argumentTypes": null, - "id": 3050, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3042, - "src": "2190:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2173:28:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - } - }, - "id": 3053, - "indexExpression": { - "argumentTypes": null, - "id": 3051, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "2202:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2173:38:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3054, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2214:5:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2173:46:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3056, - "nodeType": "ExpressionStatement", - "src": "2173:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3062, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2261:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3057, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "2223:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3059, - "indexExpression": { - "argumentTypes": null, - "id": 3058, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "2233:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2223:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "id": 3060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "curatorsCount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2886, - "src": "2223:33:10", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 1917, - "src": "2223:37:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_uint32_$bound_to$_t_uint32_$", - "typeString": "function (uint32,uint32) pure returns (uint32)" - } - }, - "id": 3063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2223:40:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "id": 3064, - "nodeType": "ExpressionStatement", - "src": "2223:40:10" - } - ] - }, - "documentation": null, - "functionSelector": "be16b353", - "id": 3066, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3047, - "modifierName": { - "argumentTypes": null, - "id": 3046, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2159:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2159:9:10" - } - ], - "name": "removeCuratorFromGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3042, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3066, - "src": "2116:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3041, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2116:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3044, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3066, - "src": "2135:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3043, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2135:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2115:36:10" - }, - "returnParameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [], - "src": "2169:0:10" - }, - "scope": 3114, - "src": "2083:197:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3099, - "nodeType": "Block", - "src": "2355:148:10", - "statements": [ - { - "body": { - "id": 3097, - "nodeType": "Block", - "src": "2405:95:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3085, - "name": "isCuratorInGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2904, - "src": "2414:16:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_mapping$_t_uint16_$_t_bool_$_$", - "typeString": "mapping(uint64 => mapping(uint16 => bool))" - } - }, - "id": 3087, - "indexExpression": { - "argumentTypes": null, - "id": 3086, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3068, - "src": "2431:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2414:28:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_bool_$", - "typeString": "mapping(uint16 => bool)" - } - }, - "id": 3089, - "indexExpression": { - "argumentTypes": null, - "id": 3088, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2443:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2414:31:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3096, - "nodeType": "IfStatement", - "src": "2410:86:10", - "trueBody": { - "id": 3095, - "nodeType": "Block", - "src": "2447:49:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3091, - "name": "_curatorId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3068, - "src": "2476:10:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 3092, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2488:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "id": 3090, - "name": "removeCuratorFromGroup", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3066, - "src": "2453:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_uint16_$returns$__$", - "typeString": "function (uint64,uint16)" - } - }, - "id": 3093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2453:37:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3094, - "nodeType": "ExpressionStatement", - "src": "2453:37:10" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 3079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3077, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2378:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3078, - "name": "nextGroupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2917, - "src": "2382:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2378:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3098, - "initializationExpression": { - "assignments": [ - 3074 - ], - "declarations": [ - { - "constant": false, - "id": 3074, - "mutability": "mutable", - "name": "i", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3098, - "src": "2364:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3073, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2364:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3076, - "initialValue": { - "argumentTypes": null, - "hexValue": "31", - "id": 3075, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2375:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2364:12:10" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2401:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 3080, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3074, - "src": "2395:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3081, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 1705, - "src": "2395:5:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$returns$_t_uint16_$bound_to$_t_uint16_$", - "typeString": "function (uint16,uint16) pure returns (uint16)" - } - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2395:8:10", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3084, - "nodeType": "ExpressionStatement", - "src": "2395:8:10" - }, - "nodeType": "ForStatement", - "src": "2359:141:10" - } - ] - }, - "documentation": null, - "functionSelector": "96cbd61b", - "id": 3100, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3071, - "modifierName": { - "argumentTypes": null, - "id": 3070, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2345:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2345:9:10" - } - ], - "name": "removeCuratorFromAllGroups", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3069, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3068, - "mutability": "mutable", - "name": "_curatorId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3100, - "src": "2319:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3067, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2319:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2318:19:10" - }, - "returnParameters": { - "id": 3072, - "nodeType": "ParameterList", - "parameters": [], - "src": "2355:0:10" - }, - "scope": 3114, - "src": "2283:220:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3112, - "nodeType": "Block", - "src": "2662:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "2666:26:10", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3107, - "name": "groupById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2914, - "src": "2673:9:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint16_$_t_struct$_Group_$2887_storage_$", - "typeString": "mapping(uint16 => struct Group storage ref)" - } - }, - "id": 3109, - "indexExpression": { - "argumentTypes": null, - "id": 3108, - "name": "_groupId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3102, - "src": "2683:8:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2673:19:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Group_$2887_storage", - "typeString": "struct Group storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "2666:26:10" - } - ] - }, - "documentation": null, - "functionSelector": "3cbdb702", - "id": 3113, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3105, - "modifierName": { - "argumentTypes": null, - "id": 3104, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2652:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2652:9:10" - } - ], - "name": "removeGroup", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3103, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3102, - "mutability": "mutable", - "name": "_groupId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3113, - "src": "2628:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3101, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2628:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2627:17:10" - }, - "returnParameters": { - "id": 3106, - "nodeType": "ParameterList", - "parameters": [], - "src": "2662:0:10" - }, - "scope": 3114, - "src": "2606:122:10", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 3115, - "src": "408:2322:10" - } - ], - "src": "0:2731:10" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.584Z", - "devdoc": { - "kind": "dev", - "methods": { - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/MembershipBridge.json b/smart-contracts/build/contracts/MembershipBridge.json deleted file mode 100644 index aeb526ea4a..0000000000 --- a/smart-contracts/build/contracts/MembershipBridge.json +++ /dev/null @@ -1,1779 +0,0 @@ -{ - "contractName": "MembershipBridge", - "abi": [ - { - "inputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "_provider", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "runtimeAddressProvider", - "outputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_memberId", - "type": "uint64" - }, - { - "internalType": "address", - "name": "_address", - "type": "address" - } - ], - "name": "setMemberAddress", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_address", - "type": "address" - }, - { - "internalType": "uint64", - "name": "_memberId", - "type": "uint64" - } - ], - "name": "isMemberController", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_memberId", - "type": "uint64" - } - ], - "name": "memberExists", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_provider\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_memberId\",\"type\":\"uint64\"}],\"name\":\"isMemberController\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_memberId\",\"type\":\"uint64\"}],\"name\":\"memberExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_memberId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"setMemberAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol\":\"MembershipBridge\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol\":{\"keccak256\":\"0xb585e161910672e5fd7a59f006ec402dffa73b550fd9af6690e3b7260902f1b0\",\"urls\":[\"bzz-raw://a63ec6822047f53e2b4cb9b6135aedc1263580e7d2a8e65b7953f6af0ef1fa6f\",\"dweb:/ipfs/QmdGrDoPWTHfpu74wHTGtfHLEbKmmtmTUuS1oHgwsg5ru2\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b5060405161033d38038061033d8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556102d8806100656000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632746272914610051578063284e2be51461009a5780632ca880d4146100d15780637b1abc66146100f5575b600080fd5b6100866004803603604081101561006757600080fd5b5080356001600160a01b031690602001356001600160401b031661011b565b604080519115158252519081900360200190f35b6100cf600480360360408110156100b057600080fd5b5080356001600160401b031690602001356001600160a01b0316610144565b005b6100d961023b565b604080516001600160a01b039092168252519081900360200190f35b6100866004803603602081101561010b57600080fd5b50356001600160401b031661024a565b6001600160401b03166000908152600160205260409020546001600160a01b0391821691161490565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d60208110156101ba57600080fd5b50516001600160a01b031633146102025760405162461bcd60e51b81526004018080602001828103825260338152602001806102706033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b0316159056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65a2646970667358221220325086b06f8d31fa4aaaa1fffc086551e0d75336ad3adb7bf7b6159d98afba5b64736f6c634300060c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632746272914610051578063284e2be51461009a5780632ca880d4146100d15780637b1abc66146100f5575b600080fd5b6100866004803603604081101561006757600080fd5b5080356001600160a01b031690602001356001600160401b031661011b565b604080519115158252519081900360200190f35b6100cf600480360360408110156100b057600080fd5b5080356001600160401b031690602001356001600160a01b0316610144565b005b6100d961023b565b604080516001600160a01b039092168252519081900360200190f35b6100866004803603602081101561010b57600080fd5b50356001600160401b031661024a565b6001600160401b03166000908152600160205260409020546001600160a01b0391821691161490565b60008054906101000a90046001600160a01b03166001600160a01b031663ec30338c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d60208110156101ba57600080fd5b50516001600160a01b031633146102025760405162461bcd60e51b81526004018080602001828103825260338152602001806102706033913960400191505060405180910390fd5b6001600160401b0391909116600090815260016020526040902080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031681565b6001600160401b03166000908152600160205260409020546001600160a01b0316159056fe546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65a2646970667358221220325086b06f8d31fa4aaaa1fffc086551e0d75336ad3adb7bf7b6159d98afba5b64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "47:656:3:-:0;;;167:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;167:85:3;649:22:4;:48;;-1:-1:-1;;;;;649:48:4;;;-1:-1:-1;;;;;;649:48:4;;;;;;;;;47:656:3;;;;;;", - "deployedSourceMap": "47:656:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:156;;;;;;;;;;;;;;;;-1:-1:-1;408:156:3;;-1:-1:-1;;;;;408:156:3;;;;;-1:-1:-1;;;;;408:156:3;;:::i;:::-;;;;;;;;;;;;;;;;;;258:147;;;;;;;;;;;;;;;;-1:-1:-1;258:147:3;;-1:-1:-1;;;;;258:147:3;;;;;-1:-1:-1;;;;;258:147:3;;:::i;:::-;;521:52:4;;;:::i;:::-;;;;-1:-1:-1;;;;;521:52:4;;;;;;;;;;;;;;567:134:3;;;;;;;;;;;;;;;;-1:-1:-1;567:134:3;-1:-1:-1;;;;;567:134:3;;:::i;408:156::-;-1:-1:-1;;;;;510:38:3;493:4;510:38;;;:27;:38;;;;;;-1:-1:-1;;;;;510:50:3;;;:38;;:50;;408:156::o;258:147::-;755:22:4;;;;;;;;-1:-1:-1;;;;;755:22:4;-1:-1:-1;;;;;755:37:4;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;755:39:4;-1:-1:-1;;;;;741:53:4;:10;:53;729:127;;;;-1:-1:-1;;;729:127:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;349:38:3;;;::::1;;::::0;;;:27:::1;:38;::::0;;;;:49;;-1:-1:-1;;;;;;349:49:3::1;-1:-1:-1::0;;;;;349:49:3;;::::1;::::0;;;::::1;::::0;;258:147::o;521:52:4:-;;;-1:-1:-1;;;;;521:52:4;;:::o;567:134:3:-;-1:-1:-1;;;;;645:38:3;628:4;645:38;;;:27;:38;;;;;;-1:-1:-1;;;;;645:38:3;:52;;567:134::o", - "source": "pragma solidity ^0.6.0;\n\nimport \"./auth.sol\";\n\ncontract MembershipBridge is RuntimeManageable {\n mapping (uint64 => address) private controllerAddressByMemberId;\n\n\tconstructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {}\n\n function setMemberAddress(uint64 _memberId, address _address) public onlyRuntime {\n controllerAddressByMemberId[_memberId] = _address;\n }\n\n\tfunction isMemberController(address _address, uint64 _memberId) public view returns (bool) {\n\t\treturn controllerAddressByMemberId[_memberId] == _address;\n\t}\n\n\tfunction memberExists(uint64 _memberId) public view returns (bool) {\n\t\treturn controllerAddressByMemberId[_memberId] == address(0);\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", - "exportedSymbols": { - "MembershipBridge": [ - 1613 - ] - }, - "id": 1614, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1547, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "file": "./auth.sol", - "id": 1548, - "nodeType": "ImportDirective", - "scope": 1614, - "sourceUnit": 1678, - "src": "25:20:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1549, - "name": "RuntimeManageable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1677, - "src": "76:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeManageable_$1677", - "typeString": "contract RuntimeManageable" - } - }, - "id": 1550, - "nodeType": "InheritanceSpecifier", - "src": "76:17:3" - } - ], - "contractDependencies": [ - 1677 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1613, - "linearizedBaseContracts": [ - 1613, - 1677 - ], - "name": "MembershipBridge", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1554, - "mutability": "mutable", - "name": "controllerAddressByMemberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1613, - "src": "100:63:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "typeName": { - "id": 1553, - "keyType": { - "id": 1551, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "109:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "100:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "valueType": { - "id": 1552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "119:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 1562, - "nodeType": "Block", - "src": "250:2:3", - "statements": [] - }, - "documentation": null, - "id": 1563, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1556, - "src": "239:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - } - ], - "id": 1560, - "modifierName": { - "argumentTypes": null, - "id": 1558, - "name": "RuntimeManageable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "221:17:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", - "typeString": "type(contract RuntimeManageable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "221:28:3" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1557, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1556, - "mutability": "mutable", - "name": "_provider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1563, - "src": "180:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1555, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "180:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "179:34:3" - }, - "returnParameters": { - "id": 1561, - "nodeType": "ParameterList", - "parameters": [], - "src": "250:0:3" - }, - "scope": 1613, - "src": "167:85:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1578, - "nodeType": "Block", - "src": "339:66:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1572, - "name": "controllerAddressByMemberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "349:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1574, - "indexExpression": { - "argumentTypes": null, - "id": 1573, - "name": "_memberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "377:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "349:38:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1575, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1567, - "src": "390:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "349:49:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1577, - "nodeType": "ExpressionStatement", - "src": "349:49:3" - } - ] - }, - "documentation": null, - "functionSelector": "284e2be5", - "id": 1579, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1570, - "modifierName": { - "argumentTypes": null, - "id": 1569, - "name": "onlyRuntime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "327:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "327:11:3" - } - ], - "name": "setMemberAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "_memberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1579, - "src": "284:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1564, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "284:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1567, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1579, - "src": "302:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "302:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "283:36:3" - }, - "returnParameters": { - "id": 1571, - "nodeType": "ParameterList", - "parameters": [], - "src": "339:0:3" - }, - "scope": 1613, - "src": "258:147:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1594, - "nodeType": "Block", - "src": "499:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1588, - "name": "controllerAddressByMemberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "510:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1590, - "indexExpression": { - "argumentTypes": null, - "id": 1589, - "name": "_memberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1583, - "src": "538:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "510:38:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1591, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1581, - "src": "552:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "510:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1587, - "id": 1593, - "nodeType": "Return", - "src": "503:57:3" - } - ] - }, - "documentation": null, - "functionSelector": "27462729", - "id": 1595, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isMemberController", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1581, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "436:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "436:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1583, - "mutability": "mutable", - "name": "_memberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "454:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1582, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "454:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "435:36:3" - }, - "returnParameters": { - "id": 1587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1586, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "493:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1585, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "493:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "492:6:3" - }, - "scope": 1613, - "src": "408:156:3", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1611, - "nodeType": "Block", - "src": "634:67:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1602, - "name": "controllerAddressByMemberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "645:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1604, - "indexExpression": { - "argumentTypes": null, - "id": 1603, - "name": "_memberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "673:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "645:38:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "695:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "687:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1605, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "687:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "687:10:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "645:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1601, - "id": 1610, - "nodeType": "Return", - "src": "638:59:3" - } - ] - }, - "documentation": null, - "functionSelector": "7b1abc66", - "id": 1612, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "memberExists", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1598, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1597, - "mutability": "mutable", - "name": "_memberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1612, - "src": "589:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1596, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "589:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "588:18:3" - }, - "returnParameters": { - "id": 1601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1600, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1612, - "src": "628:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1599, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "628:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "627:6:3" - }, - "scope": 1613, - "src": "567:134:3", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1614, - "src": "47:656:3" - } - ], - "src": "0:704:3" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/MembershipBridge.sol", - "exportedSymbols": { - "MembershipBridge": [ - 1613 - ] - }, - "id": 1614, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1547, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "file": "./auth.sol", - "id": 1548, - "nodeType": "ImportDirective", - "scope": 1614, - "sourceUnit": 1678, - "src": "25:20:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1549, - "name": "RuntimeManageable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1677, - "src": "76:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeManageable_$1677", - "typeString": "contract RuntimeManageable" - } - }, - "id": 1550, - "nodeType": "InheritanceSpecifier", - "src": "76:17:3" - } - ], - "contractDependencies": [ - 1677 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1613, - "linearizedBaseContracts": [ - 1613, - 1677 - ], - "name": "MembershipBridge", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1554, - "mutability": "mutable", - "name": "controllerAddressByMemberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1613, - "src": "100:63:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "typeName": { - "id": 1553, - "keyType": { - "id": 1551, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "109:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "100:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - }, - "valueType": { - "id": 1552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "119:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 1562, - "nodeType": "Block", - "src": "250:2:3", - "statements": [] - }, - "documentation": null, - "id": 1563, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_provider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1556, - "src": "239:9:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - } - ], - "id": 1560, - "modifierName": { - "argumentTypes": null, - "id": 1558, - "name": "RuntimeManageable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1677, - "src": "221:17:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_RuntimeManageable_$1677_$", - "typeString": "type(contract RuntimeManageable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "221:28:3" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1557, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1556, - "mutability": "mutable", - "name": "_provider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1563, - "src": "180:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1555, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "180:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "179:34:3" - }, - "returnParameters": { - "id": 1561, - "nodeType": "ParameterList", - "parameters": [], - "src": "250:0:3" - }, - "scope": 1613, - "src": "167:85:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1578, - "nodeType": "Block", - "src": "339:66:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1572, - "name": "controllerAddressByMemberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "349:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1574, - "indexExpression": { - "argumentTypes": null, - "id": 1573, - "name": "_memberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1565, - "src": "377:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "349:38:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1575, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1567, - "src": "390:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "349:49:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1577, - "nodeType": "ExpressionStatement", - "src": "349:49:3" - } - ] - }, - "documentation": null, - "functionSelector": "284e2be5", - "id": 1579, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1570, - "modifierName": { - "argumentTypes": null, - "id": 1569, - "name": "onlyRuntime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "327:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "327:11:3" - } - ], - "name": "setMemberAddress", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1568, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1565, - "mutability": "mutable", - "name": "_memberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1579, - "src": "284:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1564, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "284:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1567, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1579, - "src": "302:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1566, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "302:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "283:36:3" - }, - "returnParameters": { - "id": 1571, - "nodeType": "ParameterList", - "parameters": [], - "src": "339:0:3" - }, - "scope": 1613, - "src": "258:147:3", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1594, - "nodeType": "Block", - "src": "499:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1588, - "name": "controllerAddressByMemberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "510:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1590, - "indexExpression": { - "argumentTypes": null, - "id": 1589, - "name": "_memberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1583, - "src": "538:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "510:38:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1591, - "name": "_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1581, - "src": "552:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "510:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1587, - "id": 1593, - "nodeType": "Return", - "src": "503:57:3" - } - ] - }, - "documentation": null, - "functionSelector": "27462729", - "id": 1595, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isMemberController", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1581, - "mutability": "mutable", - "name": "_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "436:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1580, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "436:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1583, - "mutability": "mutable", - "name": "_memberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "454:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1582, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "454:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "435:36:3" - }, - "returnParameters": { - "id": 1587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1586, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1595, - "src": "493:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1585, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "493:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "492:6:3" - }, - "scope": 1613, - "src": "408:156:3", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1611, - "nodeType": "Block", - "src": "634:67:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1602, - "name": "controllerAddressByMemberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1554, - "src": "645:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_address_$", - "typeString": "mapping(uint64 => address)" - } - }, - "id": 1604, - "indexExpression": { - "argumentTypes": null, - "id": 1603, - "name": "_memberId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "673:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "645:38:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "695:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "687:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 1605, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "687:7:3", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "687:10:3", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "645:52:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1601, - "id": 1610, - "nodeType": "Return", - "src": "638:59:3" - } - ] - }, - "documentation": null, - "functionSelector": "7b1abc66", - "id": 1612, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "memberExists", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1598, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1597, - "mutability": "mutable", - "name": "_memberId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1612, - "src": "589:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 1596, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "589:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "588:18:3" - }, - "returnParameters": { - "id": 1601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1600, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1612, - "src": "628:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1599, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "628:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "627:6:3" - }, - "scope": 1613, - "src": "567:134:3", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1614, - "src": "47:656:3" - } - ], - "src": "0:704:3" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.542Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Migrations.json b/smart-contracts/build/contracts/Migrations.json deleted file mode 100644 index a61d0886e3..0000000000 --- a/smart-contracts/build/contracts/Migrations.json +++ /dev/null @@ -1,1425 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "new_address", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol\":{\"keccak256\":\"0x37c36653e429c66f8a852bca33119df8d5a41f9b6c6a3584595fd00c21e00c03\",\"urls\":[\"bzz-raw://39a5465b957aeb86fbc39a386e0ef075af7e564a85543d13347c0771b1cad72c\",\"dweb:/ipfs/QmZ3ghZnW5uVfn25xr49La1XEwuJeQYtT66cWfEor2T3ZZ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b4806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea264697066735822122090625a9faf923f1a7d1c640d11e0b278fe3d7723ecec831f7e53e095c802ee1a64736f6c634300060c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea264697066735822122090625a9faf923f1a7d1c640d11e0b278fe3d7723ecec831f7e53e095c802ee1a64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "25:480:1:-:0;;;114:50;;;;;;;;;-1:-1:-1;141:5:1;:18;;-1:-1:-1;;;;;;141:18:1;149:10;141:18;;;25:480;;;;;;", - "deployedSourceMap": "25:480:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;338:165;;;;;;;;;;;;;;;;-1:-1:-1;338:165:1;-1:-1:-1;;;;;338:165:1;;:::i;:::-;;73:36;;;:::i;:::-;;;;;;;;;;;;;;;;49:20;;;:::i;:::-;;;;-1:-1:-1;;;;;49:20:1;;;;;;;;;;;;;;231:103;;;;;;;;;;;;;;;;-1:-1:-1;231:103:1;;:::i;338:165::-;214:5;;-1:-1:-1;;;;;214:5:1;200:10;:19;196:26;;;400:19:::1;433:11;400:45;;451:8;-1:-1:-1::0;;;;;451:21:1::1;;473:24;;451:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;221:1;196:26:::0;338:165;:::o;73:36::-;;;;:::o;49:20::-;;;-1:-1:-1;;;;;49:20:1;;:::o;231:103::-;214:5;;-1:-1:-1;;;;;214:5:1;200:10;:19;196:26;;;293:24:::1;:36:::0;231:103::o", - "source": "pragma solidity ^0.6.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() public {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 1434 - ] - }, - "id": 1435, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1379, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1434, - "linearizedBaseContracts": [ - 1434 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 1381, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1434, - "src": "49:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "49:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "445df0ac", - "id": 1383, - "mutability": "mutable", - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1434, - "src": "73:36:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1382, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "73:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1391, - "nodeType": "Block", - "src": "135:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1386, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "141:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1387, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "149:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "149:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "141:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "141:18:1" - } - ] - }, - "documentation": null, - "id": 1392, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1384, - "nodeType": "ParameterList", - "parameters": [], - "src": "125:2:1" - }, - "returnParameters": { - "id": 1385, - "nodeType": "ParameterList", - "parameters": [], - "src": "135:0:1" - }, - "scope": 1434, - "src": "114:50:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1400, - "nodeType": "Block", - "src": "190:37:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1394, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "200:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "200:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1396, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "214:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "200:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1399, - "nodeType": "IfStatement", - "src": "196:26:1", - "trueBody": { - "id": 1398, - "nodeType": "PlaceholderStatement", - "src": "221:1:1" - } - } - ] - }, - "documentation": null, - "id": 1401, - "name": "restricted", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [], - "src": "187:2:1" - }, - "src": "168:59:1", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1412, - "nodeType": "Block", - "src": "287:47:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1408, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "293:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1409, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "320:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "293:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1411, - "nodeType": "ExpressionStatement", - "src": "293:36:1" - } - ] - }, - "documentation": null, - "functionSelector": "fdacd576", - "id": 1413, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1406, - "modifierName": { - "argumentTypes": null, - "id": 1405, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1401, - "src": "276:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "276:10:1" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1403, - "mutability": "mutable", - "name": "completed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1413, - "src": "253:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1402, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "253:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "252:16:1" - }, - "returnParameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [], - "src": "287:0:1" - }, - "scope": 1434, - "src": "231:103:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1432, - "nodeType": "Block", - "src": "394:109:1", - "statements": [ - { - "assignments": [ - 1421 - ], - "declarations": [ - { - "constant": false, - "id": 1421, - "mutability": "mutable", - "name": "upgraded", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1432, - "src": "400:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 1420, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1434, - "src": "400:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1425, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1423, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "433:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1422, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "422:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1434_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 1424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "422:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "400:45:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "473:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1426, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "451:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - } - }, - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1413, - "src": "451:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "451:47:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1431, - "nodeType": "ExpressionStatement", - "src": "451:47:1" - } - ] - }, - "documentation": null, - "functionSelector": "0900f010", - "id": 1433, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1418, - "modifierName": { - "argumentTypes": null, - "id": 1417, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1401, - "src": "383:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "383:10:1" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1415, - "mutability": "mutable", - "name": "new_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1433, - "src": "355:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1414, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "355:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "354:21:1" - }, - "returnParameters": { - "id": 1419, - "nodeType": "ParameterList", - "parameters": [], - "src": "394:0:1" - }, - "scope": 1434, - "src": "338:165:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1435, - "src": "25:480:1" - } - ], - "src": "0:506:1" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 1434 - ] - }, - "id": 1435, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1379, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1434, - "linearizedBaseContracts": [ - 1434 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 1381, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1434, - "src": "49:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "49:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "445df0ac", - "id": 1383, - "mutability": "mutable", - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1434, - "src": "73:36:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1382, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "73:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1391, - "nodeType": "Block", - "src": "135:29:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1386, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "141:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1387, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "149:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "149:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "141:18:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1390, - "nodeType": "ExpressionStatement", - "src": "141:18:1" - } - ] - }, - "documentation": null, - "id": 1392, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1384, - "nodeType": "ParameterList", - "parameters": [], - "src": "125:2:1" - }, - "returnParameters": { - "id": 1385, - "nodeType": "ParameterList", - "parameters": [], - "src": "135:0:1" - }, - "scope": 1434, - "src": "114:50:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1400, - "nodeType": "Block", - "src": "190:37:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1394, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "200:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "200:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1396, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1381, - "src": "214:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "200:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1399, - "nodeType": "IfStatement", - "src": "196:26:1", - "trueBody": { - "id": 1398, - "nodeType": "PlaceholderStatement", - "src": "221:1:1" - } - } - ] - }, - "documentation": null, - "id": 1401, - "name": "restricted", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [], - "src": "187:2:1" - }, - "src": "168:59:1", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1412, - "nodeType": "Block", - "src": "287:47:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1408, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "293:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1409, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "320:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "293:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1411, - "nodeType": "ExpressionStatement", - "src": "293:36:1" - } - ] - }, - "documentation": null, - "functionSelector": "fdacd576", - "id": 1413, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1406, - "modifierName": { - "argumentTypes": null, - "id": 1405, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1401, - "src": "276:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "276:10:1" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1404, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1403, - "mutability": "mutable", - "name": "completed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1413, - "src": "253:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1402, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "253:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "252:16:1" - }, - "returnParameters": { - "id": 1407, - "nodeType": "ParameterList", - "parameters": [], - "src": "287:0:1" - }, - "scope": 1434, - "src": "231:103:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1432, - "nodeType": "Block", - "src": "394:109:1", - "statements": [ - { - "assignments": [ - 1421 - ], - "declarations": [ - { - "constant": false, - "id": 1421, - "mutability": "mutable", - "name": "upgraded", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1432, - "src": "400:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 1420, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1434, - "src": "400:10:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1425, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1423, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1415, - "src": "433:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1422, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "422:10:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$1434_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 1424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "422:23:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "400:45:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1383, - "src": "473:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1426, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "451:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$1434", - "typeString": "contract Migrations" - } - }, - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1413, - "src": "451:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "451:47:1", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1431, - "nodeType": "ExpressionStatement", - "src": "451:47:1" - } - ] - }, - "documentation": null, - "functionSelector": "0900f010", - "id": 1433, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1418, - "modifierName": { - "argumentTypes": null, - "id": 1417, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1401, - "src": "383:10:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "383:10:1" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1416, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1415, - "mutability": "mutable", - "name": "new_address", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1433, - "src": "355:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1414, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "355:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "354:21:1" - }, - "returnParameters": { - "id": 1419, - "nodeType": "ParameterList", - "parameters": [], - "src": "394:0:1" - }, - "scope": 1434, - "src": "338:165:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1435, - "src": "25:480:1" - } - ], - "src": "0:506:1" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.538Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Ownable.json b/smart-contracts/build/contracts/Ownable.json deleted file mode 100644 index aba530d8ed..0000000000 --- a/smart-contracts/build/contracts/Ownable.json +++ /dev/null @@ -1,2844 +0,0 @@ -{ - "contractName": "Ownable", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "immutableReferences": {}, - "sourceMap": "", - "deployedSourceMap": "", - "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\nimport \"../GSN/Context.sol\";\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\ncontract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n address msgSender = _msgSender();\n _owner = msgSender;\n emit OwnershipTransferred(address(0), msgSender);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(_owner == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "exportedSymbols": { - "Ownable": [ - 3402 - ] - }, - "id": 3403, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3295, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:14" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", - "file": "../GSN/Context.sol", - "id": 3296, - "nodeType": "ImportDirective", - "scope": 3403, - "sourceUnit": 3294, - "src": "58:28:14", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3298, - "name": "Context", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3293, - "src": "602:7:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$3293", - "typeString": "contract Context" - } - }, - "id": 3299, - "nodeType": "InheritanceSpecifier", - "src": "602:7:14" - } - ], - "contractDependencies": [ - 3293 - ], - "contractKind": "contract", - "documentation": { - "id": 3297, - "nodeType": "StructuredDocumentation", - "src": "87:494:14", - "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." - }, - "fullyImplemented": true, - "id": 3402, - "linearizedBaseContracts": [ - 3402, - 3293 - ], - "name": "Ownable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3301, - "mutability": "mutable", - "name": "_owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3402, - "src": "616:22:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3300, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "616:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": null, - "id": 3307, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3303, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3307, - "src": "672:29:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3302, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "672:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3305, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3307, - "src": "703:24:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3304, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "703:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:57:14" - }, - "src": "645:84:14" - }, - { - "body": { - "id": 3328, - "nodeType": "Block", - "src": "855:135:14", - "statements": [ - { - "assignments": [ - 3312 - ], - "declarations": [ - { - "constant": false, - "id": 3312, - "mutability": "mutable", - "name": "msgSender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3328, - "src": "865:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "865:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3315, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3313, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "885:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 3314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "885:12:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "865:32:14" - }, - { - "expression": { - "argumentTypes": null, - "id": 3318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3316, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "907:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3317, - "name": "msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "916:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "907:18:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3319, - "nodeType": "ExpressionStatement", - "src": "907:18:14" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "969:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "961:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3321, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "961:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3324, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "961:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3325, - "name": "msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "973:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3320, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "940:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "940:43:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3327, - "nodeType": "EmitStatement", - "src": "935:48:14" - } - ] - }, - "documentation": { - "id": 3308, - "nodeType": "StructuredDocumentation", - "src": "735:91:14", - "text": " @dev Initializes the contract setting the deployer as the initial owner." - }, - "id": 3329, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [], - "src": "843:2:14" - }, - "returnParameters": { - "id": 3310, - "nodeType": "ParameterList", - "parameters": [], - "src": "855:0:14" - }, - "scope": 3402, - "src": "831:159:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3337, - "nodeType": "Block", - "src": "1113:30:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3335, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1130:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3334, - "id": 3336, - "nodeType": "Return", - "src": "1123:13:14" - } - ] - }, - "documentation": { - "id": 3330, - "nodeType": "StructuredDocumentation", - "src": "996:65:14", - "text": " @dev Returns the address of the current owner." - }, - "functionSelector": "8da5cb5b", - "id": 3338, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "owner", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3331, - "nodeType": "ParameterList", - "parameters": [], - "src": "1080:2:14" - }, - "returnParameters": { - "id": 3334, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3333, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3338, - "src": "1104:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1104:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1103:9:14" - }, - "scope": 3402, - "src": "1066:77:14", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3350, - "nodeType": "Block", - "src": "1252:95:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3342, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1270:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3343, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "1280:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1280:12:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1270:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 3346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1294:34:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", - "typeString": "literal_string \"Ownable: caller is not the owner\"" - }, - "value": "Ownable: caller is not the owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", - "typeString": "literal_string \"Ownable: caller is not the owner\"" - } - ], - "id": 3341, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1262:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1262:67:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3348, - "nodeType": "ExpressionStatement", - "src": "1262:67:14" - }, - { - "id": 3349, - "nodeType": "PlaceholderStatement", - "src": "1339:1:14" - } - ] - }, - "documentation": { - "id": 3339, - "nodeType": "StructuredDocumentation", - "src": "1149:77:14", - "text": " @dev Throws if called by any account other than the owner." - }, - "id": 3351, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 3340, - "nodeType": "ParameterList", - "parameters": [], - "src": "1249:2:14" - }, - "src": "1231:116:14", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3372, - "nodeType": "Block", - "src": "1743:91:14", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1779:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1795:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1787:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3359, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1787:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1787:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 3357, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "1758:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1758:40:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3364, - "nodeType": "EmitStatement", - "src": "1753:45:14" - }, - { - "expression": { - "argumentTypes": null, - "id": 3370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3365, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1808:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1825:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1817:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3366, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1817:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1817:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1808:19:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3371, - "nodeType": "ExpressionStatement", - "src": "1808:19:14" - } - ] - }, - "documentation": { - "id": 3352, - "nodeType": "StructuredDocumentation", - "src": "1353:331:14", - "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." - }, - "functionSelector": "715018a6", - "id": 3373, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3355, - "modifierName": { - "argumentTypes": null, - "id": 3354, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1733:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1733:9:14" - } - ], - "name": "renounceOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [], - "src": "1715:2:14" - }, - "returnParameters": { - "id": 3356, - "nodeType": "ParameterList", - "parameters": [], - "src": "1743:0:14" - }, - "scope": 3402, - "src": "1689:145:14", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 3400, - "nodeType": "Block", - "src": "2053:170:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3382, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3376, - "src": "2071:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2091:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2083:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2083:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2083:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2071:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 3388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2095:40:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", - "typeString": "literal_string \"Ownable: new owner is the zero address\"" - }, - "value": "Ownable: new owner is the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", - "typeString": "literal_string \"Ownable: new owner is the zero address\"" - } - ], - "id": 3381, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2063:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2063:73:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3390, - "nodeType": "ExpressionStatement", - "src": "2063:73:14" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3392, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "2172:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3393, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3376, - "src": "2180:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3391, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "2151:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2151:38:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3395, - "nodeType": "EmitStatement", - "src": "2146:43:14" - }, - { - "expression": { - "argumentTypes": null, - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3396, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "2199:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3397, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3376, - "src": "2208:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2199:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3399, - "nodeType": "ExpressionStatement", - "src": "2199:17:14" - } - ] - }, - "documentation": { - "id": 3374, - "nodeType": "StructuredDocumentation", - "src": "1840:138:14", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." - }, - "functionSelector": "f2fde38b", - "id": 3401, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3379, - "modifierName": { - "argumentTypes": null, - "id": 3378, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2043:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2043:9:14" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3376, - "mutability": "mutable", - "name": "newOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3401, - "src": "2010:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2010:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:18:14" - }, - "returnParameters": { - "id": 3380, - "nodeType": "ParameterList", - "parameters": [], - "src": "2053:0:14" - }, - "scope": 3402, - "src": "1983:240:14", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 3403, - "src": "582:1643:14" - } - ], - "src": "33:2193:14" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "exportedSymbols": { - "Ownable": [ - 3402 - ] - }, - "id": 3403, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3295, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:14" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", - "file": "../GSN/Context.sol", - "id": 3296, - "nodeType": "ImportDirective", - "scope": 3403, - "sourceUnit": 3294, - "src": "58:28:14", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3298, - "name": "Context", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3293, - "src": "602:7:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$3293", - "typeString": "contract Context" - } - }, - "id": 3299, - "nodeType": "InheritanceSpecifier", - "src": "602:7:14" - } - ], - "contractDependencies": [ - 3293 - ], - "contractKind": "contract", - "documentation": { - "id": 3297, - "nodeType": "StructuredDocumentation", - "src": "87:494:14", - "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." - }, - "fullyImplemented": true, - "id": 3402, - "linearizedBaseContracts": [ - 3402, - 3293 - ], - "name": "Ownable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3301, - "mutability": "mutable", - "name": "_owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3402, - "src": "616:22:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3300, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "616:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "private" - }, - { - "anonymous": false, - "documentation": null, - "id": 3307, - "name": "OwnershipTransferred", - "nodeType": "EventDefinition", - "parameters": { - "id": 3306, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3303, - "indexed": true, - "mutability": "mutable", - "name": "previousOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3307, - "src": "672:29:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3302, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "672:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3305, - "indexed": true, - "mutability": "mutable", - "name": "newOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3307, - "src": "703:24:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3304, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "703:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "671:57:14" - }, - "src": "645:84:14" - }, - { - "body": { - "id": 3328, - "nodeType": "Block", - "src": "855:135:14", - "statements": [ - { - "assignments": [ - 3312 - ], - "declarations": [ - { - "constant": false, - "id": 3312, - "mutability": "mutable", - "name": "msgSender", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3328, - "src": "865:17:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "865:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3315, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3313, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "885:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 3314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "885:12:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "865:32:14" - }, - { - "expression": { - "argumentTypes": null, - "id": 3318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3316, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "907:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3317, - "name": "msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "916:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "907:18:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3319, - "nodeType": "ExpressionStatement", - "src": "907:18:14" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "969:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3322, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "961:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3321, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "961:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3324, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "961:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3325, - "name": "msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "973:9:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3320, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "940:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "940:43:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3327, - "nodeType": "EmitStatement", - "src": "935:48:14" - } - ] - }, - "documentation": { - "id": 3308, - "nodeType": "StructuredDocumentation", - "src": "735:91:14", - "text": " @dev Initializes the contract setting the deployer as the initial owner." - }, - "id": 3329, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [], - "src": "843:2:14" - }, - "returnParameters": { - "id": 3310, - "nodeType": "ParameterList", - "parameters": [], - "src": "855:0:14" - }, - "scope": 3402, - "src": "831:159:14", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3337, - "nodeType": "Block", - "src": "1113:30:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3335, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1130:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3334, - "id": 3336, - "nodeType": "Return", - "src": "1123:13:14" - } - ] - }, - "documentation": { - "id": 3330, - "nodeType": "StructuredDocumentation", - "src": "996:65:14", - "text": " @dev Returns the address of the current owner." - }, - "functionSelector": "8da5cb5b", - "id": 3338, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "owner", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3331, - "nodeType": "ParameterList", - "parameters": [], - "src": "1080:2:14" - }, - "returnParameters": { - "id": 3334, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3333, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3338, - "src": "1104:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1104:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1103:9:14" - }, - "scope": 3402, - "src": "1066:77:14", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3350, - "nodeType": "Block", - "src": "1252:95:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3342, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1270:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3343, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "1280:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 3344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1280:12:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1270:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572", - "id": 3346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1294:34:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", - "typeString": "literal_string \"Ownable: caller is not the owner\"" - }, - "value": "Ownable: caller is not the owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe", - "typeString": "literal_string \"Ownable: caller is not the owner\"" - } - ], - "id": 3341, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1262:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1262:67:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3348, - "nodeType": "ExpressionStatement", - "src": "1262:67:14" - }, - { - "id": 3349, - "nodeType": "PlaceholderStatement", - "src": "1339:1:14" - } - ] - }, - "documentation": { - "id": 3339, - "nodeType": "StructuredDocumentation", - "src": "1149:77:14", - "text": " @dev Throws if called by any account other than the owner." - }, - "id": 3351, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 3340, - "nodeType": "ParameterList", - "parameters": [], - "src": "1249:2:14" - }, - "src": "1231:116:14", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3372, - "nodeType": "Block", - "src": "1743:91:14", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3358, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1779:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1795:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1787:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3359, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1787:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1787:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 3357, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "1758:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1758:40:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3364, - "nodeType": "EmitStatement", - "src": "1753:45:14" - }, - { - "expression": { - "argumentTypes": null, - "id": 3370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3365, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "1808:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1825:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3367, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1817:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3366, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1817:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3369, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1817:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1808:19:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3371, - "nodeType": "ExpressionStatement", - "src": "1808:19:14" - } - ] - }, - "documentation": { - "id": 3352, - "nodeType": "StructuredDocumentation", - "src": "1353:331:14", - "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner." - }, - "functionSelector": "715018a6", - "id": 3373, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3355, - "modifierName": { - "argumentTypes": null, - "id": 3354, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1733:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1733:9:14" - } - ], - "name": "renounceOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3353, - "nodeType": "ParameterList", - "parameters": [], - "src": "1715:2:14" - }, - "returnParameters": { - "id": 3356, - "nodeType": "ParameterList", - "parameters": [], - "src": "1743:0:14" - }, - "scope": 3402, - "src": "1689:145:14", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - }, - { - "body": { - "id": 3400, - "nodeType": "Block", - "src": "2053:170:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3382, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3376, - "src": "2071:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2091:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2083:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 3383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2083:7:14", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2083:10:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2071:22:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373", - "id": 3388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2095:40:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", - "typeString": "literal_string \"Ownable: new owner is the zero address\"" - }, - "value": "Ownable: new owner is the zero address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe", - "typeString": "literal_string \"Ownable: new owner is the zero address\"" - } - ], - "id": 3381, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2063:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2063:73:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3390, - "nodeType": "ExpressionStatement", - "src": "2063:73:14" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3392, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "2172:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3393, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3376, - "src": "2180:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3391, - "name": "OwnershipTransferred", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "2151:20:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2151:38:14", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3395, - "nodeType": "EmitStatement", - "src": "2146:43:14" - }, - { - "expression": { - "argumentTypes": null, - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3396, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3301, - "src": "2199:6:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3397, - "name": "newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3376, - "src": "2208:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2199:17:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3399, - "nodeType": "ExpressionStatement", - "src": "2199:17:14" - } - ] - }, - "documentation": { - "id": 3374, - "nodeType": "StructuredDocumentation", - "src": "1840:138:14", - "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." - }, - "functionSelector": "f2fde38b", - "id": 3401, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3379, - "modifierName": { - "argumentTypes": null, - "id": 3378, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "2043:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2043:9:14" - } - ], - "name": "transferOwnership", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3376, - "mutability": "mutable", - "name": "newOwner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3401, - "src": "2010:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2010:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:18:14" - }, - "returnParameters": { - "id": 3380, - "nodeType": "ParameterList", - "parameters": [], - "src": "2053:0:14" - }, - "scope": 3402, - "src": "1983:240:14", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "public" - } - ], - "scope": 3403, - "src": "582:1643:14" - } - ], - "src": "33:2193:14" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.592Z", - "devdoc": { - "details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.", - "kind": "dev", - "methods": { - "constructor": { - "details": "Initializes the contract setting the deployer as the initial owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/Pausable.json b/smart-contracts/build/contracts/Pausable.json deleted file mode 100644 index ad0fa11d21..0000000000 --- a/smart-contracts/build/contracts/Pausable.json +++ /dev/null @@ -1,2075 +0,0 @@ -{ - "contractName": "Pausable", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Paused", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "Unpaused", - "type": "event" - }, - { - "inputs": [], - "name": "paused", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.\",\"events\":{\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract in unpaused state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol\":\"Pausable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol\":{\"keccak256\":\"0x5d1b1dcbc0396f44c1c8d554857f71e3187503bf1e54062bf9ec6782e21f3a08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9aa7fa580393aab7ca3d9f606f5ab7434d51e1c0f3632a593fca82c80ef8cc4c\",\"dweb:/ipfs/QmRy84N7QfkwBM2AeR7UB5G1PPHdRLi6s1iyzAwCzevcHe\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "immutableReferences": {}, - "sourceMap": "", - "deployedSourceMap": "", - "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\nimport \"../GSN/Context.sol\";\n\n/**\n * @dev Contract module which allows children to implement an emergency stop\n * mechanism that can be triggered by an authorized account.\n *\n * This module is used through inheritance. It will make available the\n * modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n * the functions of your contract. Note that they will not be pausable by\n * simply including this module, only once the modifiers are put in place.\n */\ncontract Pausable is Context {\n /**\n * @dev Emitted when the pause is triggered by `account`.\n */\n event Paused(address account);\n\n /**\n * @dev Emitted when the pause is lifted by `account`.\n */\n event Unpaused(address account);\n\n bool private _paused;\n\n /**\n * @dev Initializes the contract in unpaused state.\n */\n constructor () internal {\n _paused = false;\n }\n\n /**\n * @dev Returns true if the contract is paused, and false otherwise.\n */\n function paused() public view returns (bool) {\n return _paused;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is not paused.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n modifier whenNotPaused() {\n require(!_paused, \"Pausable: paused\");\n _;\n }\n\n /**\n * @dev Modifier to make a function callable only when the contract is paused.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n modifier whenPaused() {\n require(_paused, \"Pausable: not paused\");\n _;\n }\n\n /**\n * @dev Triggers stopped state.\n *\n * Requirements:\n *\n * - The contract must not be paused.\n */\n function _pause() internal virtual whenNotPaused {\n _paused = true;\n emit Paused(_msgSender());\n }\n\n /**\n * @dev Returns to normal state.\n *\n * Requirements:\n *\n * - The contract must be paused.\n */\n function _unpause() internal virtual whenPaused {\n _paused = false;\n emit Unpaused(_msgSender());\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "exportedSymbols": { - "Pausable": [ - 4143 - ] - }, - "id": 4144, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4055, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:17" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", - "file": "../GSN/Context.sol", - "id": 4056, - "nodeType": "ImportDirective", - "scope": 4144, - "sourceUnit": 3294, - "src": "58:28:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4058, - "name": "Context", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3293, - "src": "549:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$3293", - "typeString": "contract Context" - } - }, - "id": 4059, - "nodeType": "InheritanceSpecifier", - "src": "549:7:17" - } - ], - "contractDependencies": [ - 3293 - ], - "contractKind": "contract", - "documentation": { - "id": 4057, - "nodeType": "StructuredDocumentation", - "src": "88:439:17", - "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." - }, - "fullyImplemented": true, - "id": 4143, - "linearizedBaseContracts": [ - 4143, - 3293 - ], - "name": "Pausable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 4060, - "nodeType": "StructuredDocumentation", - "src": "563:73:17", - "text": " @dev Emitted when the pause is triggered by `account`." - }, - "id": 4064, - "name": "Paused", - "nodeType": "EventDefinition", - "parameters": { - "id": 4063, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4062, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4064, - "src": "654:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4061, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:17:17" - }, - "src": "641:30:17" - }, - { - "anonymous": false, - "documentation": { - "id": 4065, - "nodeType": "StructuredDocumentation", - "src": "677:70:17", - "text": " @dev Emitted when the pause is lifted by `account`." - }, - "id": 4069, - "name": "Unpaused", - "nodeType": "EventDefinition", - "parameters": { - "id": 4068, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4067, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4069, - "src": "767:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "767:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "766:17:17" - }, - "src": "752:32:17" - }, - { - "constant": false, - "id": 4071, - "mutability": "mutable", - "name": "_paused", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4143, - "src": "790:20:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4070, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "790:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 4079, - "nodeType": "Block", - "src": "913:32:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4075, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "923:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4076, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "933:5:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "923:15:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4078, - "nodeType": "ExpressionStatement", - "src": "923:15:17" - } - ] - }, - "documentation": { - "id": 4072, - "nodeType": "StructuredDocumentation", - "src": "817:67:17", - "text": " @dev Initializes the contract in unpaused state." - }, - "id": 4080, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4073, - "nodeType": "ParameterList", - "parameters": [], - "src": "901:2:17" - }, - "returnParameters": { - "id": 4074, - "nodeType": "ParameterList", - "parameters": [], - "src": "913:0:17" - }, - "scope": 4143, - "src": "889:56:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4088, - "nodeType": "Block", - "src": "1085:31:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4086, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1102:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4085, - "id": 4087, - "nodeType": "Return", - "src": "1095:14:17" - } - ] - }, - "documentation": { - "id": 4081, - "nodeType": "StructuredDocumentation", - "src": "951:84:17", - "text": " @dev Returns true if the contract is paused, and false otherwise." - }, - "functionSelector": "5c975abb", - "id": 4089, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "paused", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4082, - "nodeType": "ParameterList", - "parameters": [], - "src": "1055:2:17" - }, - "returnParameters": { - "id": 4085, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4084, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4089, - "src": "1079:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4083, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1079:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1078:6:17" - }, - "scope": 4143, - "src": "1040:76:17", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 4099, - "nodeType": "Block", - "src": "1327:65:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1345:8:17", - "subExpression": { - "argumentTypes": null, - "id": 4093, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1346:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5061757361626c653a20706175736564", - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1355:18:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", - "typeString": "literal_string \"Pausable: paused\"" - }, - "value": "Pausable: paused" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", - "typeString": "literal_string \"Pausable: paused\"" - } - ], - "id": 4092, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1337:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1337:37:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4097, - "nodeType": "ExpressionStatement", - "src": "1337:37:17" - }, - { - "id": 4098, - "nodeType": "PlaceholderStatement", - "src": "1384:1:17" - } - ] - }, - "documentation": { - "id": 4090, - "nodeType": "StructuredDocumentation", - "src": "1122:175:17", - "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." - }, - "id": 4100, - "name": "whenNotPaused", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 4091, - "nodeType": "ParameterList", - "parameters": [], - "src": "1324:2:17" - }, - "src": "1302:90:17", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4109, - "nodeType": "Block", - "src": "1592:68:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4104, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1610:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 4105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1619:22:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", - "typeString": "literal_string \"Pausable: not paused\"" - }, - "value": "Pausable: not paused" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", - "typeString": "literal_string \"Pausable: not paused\"" - } - ], - "id": 4103, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1602:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1602:40:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4107, - "nodeType": "ExpressionStatement", - "src": "1602:40:17" - }, - { - "id": 4108, - "nodeType": "PlaceholderStatement", - "src": "1652:1:17" - } - ] - }, - "documentation": { - "id": 4101, - "nodeType": "StructuredDocumentation", - "src": "1398:167:17", - "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." - }, - "id": 4110, - "name": "whenPaused", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 4102, - "nodeType": "ParameterList", - "parameters": [], - "src": "1589:2:17" - }, - "src": "1570:90:17", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4125, - "nodeType": "Block", - "src": "1844:66:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4116, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1854:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1864:4:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1854:14:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4119, - "nodeType": "ExpressionStatement", - "src": "1854:14:17" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4121, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "1890:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 4122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1890:12:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 4120, - "name": "Paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4064, - "src": "1883:6:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1883:20:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4124, - "nodeType": "EmitStatement", - "src": "1878:25:17" - } - ] - }, - "documentation": { - "id": 4111, - "nodeType": "StructuredDocumentation", - "src": "1666:124:17", - "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." - }, - "id": 4126, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4114, - "modifierName": { - "argumentTypes": null, - "id": 4113, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "1830:13:17", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1830:13:17" - } - ], - "name": "_pause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4112, - "nodeType": "ParameterList", - "parameters": [], - "src": "1810:2:17" - }, - "returnParameters": { - "id": 4115, - "nodeType": "ParameterList", - "parameters": [], - "src": "1844:0:17" - }, - "scope": 4143, - "src": "1795:115:17", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 4141, - "nodeType": "Block", - "src": "2090:69:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4132, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "2100:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2110:5:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2100:15:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4135, - "nodeType": "ExpressionStatement", - "src": "2100:15:17" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4137, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "2139:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2139:12:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 4136, - "name": "Unpaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4069, - "src": "2130:8:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2130:22:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4140, - "nodeType": "EmitStatement", - "src": "2125:27:17" - } - ] - }, - "documentation": { - "id": 4127, - "nodeType": "StructuredDocumentation", - "src": "1916:121:17", - "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." - }, - "id": 4142, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4130, - "modifierName": { - "argumentTypes": null, - "id": 4129, - "name": "whenPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4110, - "src": "2079:10:17", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2079:10:17" - } - ], - "name": "_unpause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4128, - "nodeType": "ParameterList", - "parameters": [], - "src": "2059:2:17" - }, - "returnParameters": { - "id": 4131, - "nodeType": "ParameterList", - "parameters": [], - "src": "2090:0:17" - }, - "scope": 4143, - "src": "2042:117:17", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 4144, - "src": "528:1633:17" - } - ], - "src": "33:2129:17" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/utils/Pausable.sol", - "exportedSymbols": { - "Pausable": [ - 4143 - ] - }, - "id": 4144, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4055, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:17" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol", - "file": "../GSN/Context.sol", - "id": 4056, - "nodeType": "ImportDirective", - "scope": 4144, - "sourceUnit": 3294, - "src": "58:28:17", - "symbolAliases": [], - "unitAlias": "" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4058, - "name": "Context", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3293, - "src": "549:7:17", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Context_$3293", - "typeString": "contract Context" - } - }, - "id": 4059, - "nodeType": "InheritanceSpecifier", - "src": "549:7:17" - } - ], - "contractDependencies": [ - 3293 - ], - "contractKind": "contract", - "documentation": { - "id": 4057, - "nodeType": "StructuredDocumentation", - "src": "88:439:17", - "text": " @dev Contract module which allows children to implement an emergency stop\n mechanism that can be triggered by an authorized account.\n This module is used through inheritance. It will make available the\n modifiers `whenNotPaused` and `whenPaused`, which can be applied to\n the functions of your contract. Note that they will not be pausable by\n simply including this module, only once the modifiers are put in place." - }, - "fullyImplemented": true, - "id": 4143, - "linearizedBaseContracts": [ - 4143, - 3293 - ], - "name": "Pausable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": { - "id": 4060, - "nodeType": "StructuredDocumentation", - "src": "563:73:17", - "text": " @dev Emitted when the pause is triggered by `account`." - }, - "id": 4064, - "name": "Paused", - "nodeType": "EventDefinition", - "parameters": { - "id": 4063, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4062, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4064, - "src": "654:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4061, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:17:17" - }, - "src": "641:30:17" - }, - { - "anonymous": false, - "documentation": { - "id": 4065, - "nodeType": "StructuredDocumentation", - "src": "677:70:17", - "text": " @dev Emitted when the pause is lifted by `account`." - }, - "id": 4069, - "name": "Unpaused", - "nodeType": "EventDefinition", - "parameters": { - "id": 4068, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4067, - "indexed": false, - "mutability": "mutable", - "name": "account", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4069, - "src": "767:15:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4066, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "767:7:17", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "766:17:17" - }, - "src": "752:32:17" - }, - { - "constant": false, - "id": 4071, - "mutability": "mutable", - "name": "_paused", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4143, - "src": "790:20:17", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4070, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "790:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 4079, - "nodeType": "Block", - "src": "913:32:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4075, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "923:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4076, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "933:5:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "923:15:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4078, - "nodeType": "ExpressionStatement", - "src": "923:15:17" - } - ] - }, - "documentation": { - "id": 4072, - "nodeType": "StructuredDocumentation", - "src": "817:67:17", - "text": " @dev Initializes the contract in unpaused state." - }, - "id": 4080, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4073, - "nodeType": "ParameterList", - "parameters": [], - "src": "901:2:17" - }, - "returnParameters": { - "id": 4074, - "nodeType": "ParameterList", - "parameters": [], - "src": "913:0:17" - }, - "scope": 4143, - "src": "889:56:17", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4088, - "nodeType": "Block", - "src": "1085:31:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4086, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1102:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4085, - "id": 4087, - "nodeType": "Return", - "src": "1095:14:17" - } - ] - }, - "documentation": { - "id": 4081, - "nodeType": "StructuredDocumentation", - "src": "951:84:17", - "text": " @dev Returns true if the contract is paused, and false otherwise." - }, - "functionSelector": "5c975abb", - "id": 4089, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "paused", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4082, - "nodeType": "ParameterList", - "parameters": [], - "src": "1055:2:17" - }, - "returnParameters": { - "id": 4085, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4084, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 4089, - "src": "1079:4:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4083, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1079:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1078:6:17" - }, - "scope": 4143, - "src": "1040:76:17", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 4099, - "nodeType": "Block", - "src": "1327:65:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1345:8:17", - "subExpression": { - "argumentTypes": null, - "id": 4093, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1346:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5061757361626c653a20706175736564", - "id": 4095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1355:18:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", - "typeString": "literal_string \"Pausable: paused\"" - }, - "value": "Pausable: paused" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_68571e1369f7a6dcdcd736cb0343b35a58ed0f64d245c2ed839c98d412744f8a", - "typeString": "literal_string \"Pausable: paused\"" - } - ], - "id": 4092, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1337:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1337:37:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4097, - "nodeType": "ExpressionStatement", - "src": "1337:37:17" - }, - { - "id": 4098, - "nodeType": "PlaceholderStatement", - "src": "1384:1:17" - } - ] - }, - "documentation": { - "id": 4090, - "nodeType": "StructuredDocumentation", - "src": "1122:175:17", - "text": " @dev Modifier to make a function callable only when the contract is not paused.\n Requirements:\n - The contract must not be paused." - }, - "id": 4100, - "name": "whenNotPaused", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 4091, - "nodeType": "ParameterList", - "parameters": [], - "src": "1324:2:17" - }, - "src": "1302:90:17", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4109, - "nodeType": "Block", - "src": "1592:68:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4104, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1610:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5061757361626c653a206e6f7420706175736564", - "id": 4105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1619:22:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", - "typeString": "literal_string \"Pausable: not paused\"" - }, - "value": "Pausable: not paused" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0d1d997348c4b502650619e51f7d09f80514d98b6993be5051d07f703984619a", - "typeString": "literal_string \"Pausable: not paused\"" - } - ], - "id": 4103, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1602:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 4106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1602:40:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4107, - "nodeType": "ExpressionStatement", - "src": "1602:40:17" - }, - { - "id": 4108, - "nodeType": "PlaceholderStatement", - "src": "1652:1:17" - } - ] - }, - "documentation": { - "id": 4101, - "nodeType": "StructuredDocumentation", - "src": "1398:167:17", - "text": " @dev Modifier to make a function callable only when the contract is paused.\n Requirements:\n - The contract must be paused." - }, - "id": 4110, - "name": "whenPaused", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 4102, - "nodeType": "ParameterList", - "parameters": [], - "src": "1589:2:17" - }, - "src": "1570:90:17", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 4125, - "nodeType": "Block", - "src": "1844:66:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4116, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "1854:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1864:4:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1854:14:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4119, - "nodeType": "ExpressionStatement", - "src": "1854:14:17" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4121, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "1890:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 4122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1890:12:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 4120, - "name": "Paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4064, - "src": "1883:6:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1883:20:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4124, - "nodeType": "EmitStatement", - "src": "1878:25:17" - } - ] - }, - "documentation": { - "id": 4111, - "nodeType": "StructuredDocumentation", - "src": "1666:124:17", - "text": " @dev Triggers stopped state.\n Requirements:\n - The contract must not be paused." - }, - "id": 4126, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4114, - "modifierName": { - "argumentTypes": null, - "id": 4113, - "name": "whenNotPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4100, - "src": "1830:13:17", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1830:13:17" - } - ], - "name": "_pause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4112, - "nodeType": "ParameterList", - "parameters": [], - "src": "1810:2:17" - }, - "returnParameters": { - "id": 4115, - "nodeType": "ParameterList", - "parameters": [], - "src": "1844:0:17" - }, - "scope": 4143, - "src": "1795:115:17", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - }, - { - "body": { - "id": 4141, - "nodeType": "Block", - "src": "2090:69:17", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 4132, - "name": "_paused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4071, - "src": "2100:7:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2110:5:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "2100:15:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4135, - "nodeType": "ExpressionStatement", - "src": "2100:15:17" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4137, - "name": "_msgSender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "2139:10:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", - "typeString": "function () view returns (address payable)" - } - }, - "id": 4138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2139:12:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 4136, - "name": "Unpaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4069, - "src": "2130:8:17", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 4139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2130:22:17", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4140, - "nodeType": "EmitStatement", - "src": "2125:27:17" - } - ] - }, - "documentation": { - "id": 4127, - "nodeType": "StructuredDocumentation", - "src": "1916:121:17", - "text": " @dev Returns to normal state.\n Requirements:\n - The contract must be paused." - }, - "id": 4142, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 4130, - "modifierName": { - "argumentTypes": null, - "id": 4129, - "name": "whenPaused", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4110, - "src": "2079:10:17", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2079:10:17" - } - ], - "name": "_unpause", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 4128, - "nodeType": "ParameterList", - "parameters": [], - "src": "2059:2:17" - }, - "returnParameters": { - "id": 4131, - "nodeType": "ParameterList", - "parameters": [], - "src": "2090:0:17" - }, - "scope": 4143, - "src": "2042:117:17", - "stateMutability": "nonpayable", - "virtual": true, - "visibility": "internal" - } - ], - "scope": 4144, - "src": "528:1633:17" - } - ], - "src": "33:2129:17" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.606Z", - "devdoc": { - "details": "Contract module which allows children to implement an emergency stop mechanism that can be triggered by an authorized account. This module is used through inheritance. It will make available the modifiers `whenNotPaused` and `whenPaused`, which can be applied to the functions of your contract. Note that they will not be pausable by simply including this module, only once the modifiers are put in place.", - "events": { - "Paused(address)": { - "details": "Emitted when the pause is triggered by `account`." - }, - "Unpaused(address)": { - "details": "Emitted when the pause is lifted by `account`." - } - }, - "kind": "dev", - "methods": { - "constructor": { - "details": "Initializes the contract in unpaused state." - }, - "paused()": { - "details": "Returns true if the contract is paused, and false otherwise." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/RuntimeAddressProvider.json b/smart-contracts/build/contracts/RuntimeAddressProvider.json deleted file mode 100644 index b4a2f8c116..0000000000 --- a/smart-contracts/build/contracts/RuntimeAddressProvider.json +++ /dev/null @@ -1,1734 +0,0 @@ -{ - "contractName": "RuntimeAddressProvider", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_runtimeAddress", - "type": "address" - }, - { - "internalType": "address", - "name": "_councilAddress", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "councilAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "runtimeAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_runtimeAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_councilAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"councilAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"runtimeAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":\"RuntimeAddressProvider\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b5060405161012c38038061012c8339818101604052604081101561003357600080fd5b508051602090910151600080546001600160a01b039384166001600160a01b0319918216179091556001805493909216921691909117905560b3806100796000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806362bc0cd6146037578063ec30338c146059575b600080fd5b603d605f565b604080516001600160a01b039092168252519081900360200190f35b603d606e565b6001546001600160a01b031681565b6000546001600160a01b03168156fea26469706673582212201257aae8c586fe8eb22105d48c9d0c8597835d3b3debd967b3015810258ce7e264736f6c634300060c0033", - "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806362bc0cd6146037578063ec30338c146059575b600080fd5b603d605f565b604080516001600160a01b039092168252519081900360200190f35b603d606e565b6001546001600160a01b031681565b6000546001600160a01b03168156fea26469706673582212201257aae8c586fe8eb22105d48c9d0c8597835d3b3debd967b3015810258ce7e264736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "25:455:4:-:0;;;125:353;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;125:353:4;;;;;;;300:14;:32;;-1:-1:-1;;;;;300:32:4;;;-1:-1:-1;;;;;;300:32:4;;;;;;;;442;;;;;;;;;;;;;;25:455;;;;;;", - "deployedSourceMap": "25:455:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;92:29;;;:::i;:::-;;;;-1:-1:-1;;;;;92:29:4;;;;;;;;;;;;;;60;;;:::i;92:::-;;;-1:-1:-1;;;;;92:29:4;;:::o;60:::-;;;-1:-1:-1;;;;;60:29:4;;:::o", - "source": "pragma solidity ^0.6.0;\n\ncontract RuntimeAddressProvider {\n\taddress public runtimeAddress;\n\taddress public councilAddress;\n\n\tconstructor (address _runtimeAddress, address _councilAddress) public {\n\t\t// This is the address that only the runtime is able to use as msg.sender (used to update bridges)\n\t\truntimeAddress = _runtimeAddress;\n\t\t// This is the address hardcoded in proposal module (can only be used in context of proposal execution)\n\t\tcouncilAddress = _councilAddress;\n\t}\n}\n\nabstract contract RuntimeManageable {\n\tRuntimeAddressProvider public runtimeAddressProvider;\n\n\tconstructor (RuntimeAddressProvider _runtimeAddressProvider) public {\n\t\truntimeAddressProvider = _runtimeAddressProvider;\n\t}\n\n\tmodifier onlyRuntime {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.runtimeAddress(),\n\t\t\t\"This function can only be executed from the runtime\"\n\t\t);\n\t\t_;\n\t}\n\n\tmodifier onlyCouncil {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.councilAddress(),\n\t\t\t\"This function can only be executed through proposal system\"\n\t\t);\n\t\t_;\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "exportedSymbols": { - "RuntimeAddressProvider": [ - 1636 - ], - "RuntimeManageable": [ - 1677 - ] - }, - "id": 1678, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1615, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1636, - "linearizedBaseContracts": [ - 1636 - ], - "name": "RuntimeAddressProvider", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "ec30338c", - "id": 1617, - "mutability": "mutable", - "name": "runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "60:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1616, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "60:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "62bc0cd6", - "id": 1619, - "mutability": "mutable", - "name": "councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "92:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1634, - "nodeType": "Block", - "src": "195:283:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1626, - "name": "runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1617, - "src": "300:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1627, - "name": "_runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "317:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "300:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1629, - "nodeType": "ExpressionStatement", - "src": "300:32:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1630, - "name": "councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "442:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1631, - "name": "_councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "459:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "442:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1633, - "nodeType": "ExpressionStatement", - "src": "442:32:4" - } - ] - }, - "documentation": null, - "id": 1635, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1621, - "mutability": "mutable", - "name": "_runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "138:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "138:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1623, - "mutability": "mutable", - "name": "_councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "163:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "163:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "137:50:4" - }, - "returnParameters": { - "id": 1625, - "nodeType": "ParameterList", - "parameters": [], - "src": "195:0:4" - }, - "scope": 1636, - "src": "125:353:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1678, - "src": "25:455:4" - }, - { - "abstract": true, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1677, - "linearizedBaseContracts": [ - 1677 - ], - "name": "RuntimeManageable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "2ca880d4", - "id": 1638, - "mutability": "mutable", - "name": "runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1677, - "src": "521:52:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1637, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "521:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1647, - "nodeType": "Block", - "src": "645:56:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "649:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1644, - "name": "_runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1640, - "src": "674:23:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "src": "649:48:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1646, - "nodeType": "ExpressionStatement", - "src": "649:48:4" - } - ] - }, - "documentation": null, - "id": 1648, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1640, - "mutability": "mutable", - "name": "_runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1648, - "src": "590:46:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1639, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "590:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "589:48:4" - }, - "returnParameters": { - "id": 1642, - "nodeType": "ParameterList", - "parameters": [], - "src": "645:0:4" - }, - "scope": 1677, - "src": "577:124:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1661, - "nodeType": "Block", - "src": "725:140:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "741:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "741:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "755:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "runtimeAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1617, - "src": "755:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "755:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "741:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", - "id": 1657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:53:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - }, - "value": "This function can only be executed from the runtime" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - } - ], - "id": 1650, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "729:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "729:127:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1659, - "nodeType": "ExpressionStatement", - "src": "729:127:4" - }, - { - "id": 1660, - "nodeType": "PlaceholderStatement", - "src": "860:1:4" - } - ] - }, - "documentation": null, - "id": 1662, - "name": "onlyRuntime", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1649, - "nodeType": "ParameterList", - "parameters": [], - "src": "725:0:4" - }, - "src": "704:161:4", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1675, - "nodeType": "Block", - "src": "889:147:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "905:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "905:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1667, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "919:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "councilAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1619, - "src": "919:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "919:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "905:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", - "id": 1671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "963:60:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - }, - "value": "This function can only be executed through proposal system" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - } - ], - "id": 1664, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "893:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "893:134:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "ExpressionStatement", - "src": "893:134:4" - }, - { - "id": 1674, - "nodeType": "PlaceholderStatement", - "src": "1031:1:4" - } - ] - }, - "documentation": null, - "id": 1676, - "name": "onlyCouncil", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1663, - "nodeType": "ParameterList", - "parameters": [], - "src": "889:0:4" - }, - "src": "868:168:4", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1678, - "src": "482:556:4" - } - ], - "src": "0:1039:4" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "exportedSymbols": { - "RuntimeAddressProvider": [ - 1636 - ], - "RuntimeManageable": [ - 1677 - ] - }, - "id": 1678, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1615, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1636, - "linearizedBaseContracts": [ - 1636 - ], - "name": "RuntimeAddressProvider", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "ec30338c", - "id": 1617, - "mutability": "mutable", - "name": "runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "60:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1616, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "60:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "62bc0cd6", - "id": 1619, - "mutability": "mutable", - "name": "councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "92:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1634, - "nodeType": "Block", - "src": "195:283:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1626, - "name": "runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1617, - "src": "300:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1627, - "name": "_runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "317:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "300:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1629, - "nodeType": "ExpressionStatement", - "src": "300:32:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1630, - "name": "councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "442:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1631, - "name": "_councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "459:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "442:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1633, - "nodeType": "ExpressionStatement", - "src": "442:32:4" - } - ] - }, - "documentation": null, - "id": 1635, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1621, - "mutability": "mutable", - "name": "_runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "138:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "138:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1623, - "mutability": "mutable", - "name": "_councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "163:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "163:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "137:50:4" - }, - "returnParameters": { - "id": 1625, - "nodeType": "ParameterList", - "parameters": [], - "src": "195:0:4" - }, - "scope": 1636, - "src": "125:353:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1678, - "src": "25:455:4" - }, - { - "abstract": true, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1677, - "linearizedBaseContracts": [ - 1677 - ], - "name": "RuntimeManageable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "2ca880d4", - "id": 1638, - "mutability": "mutable", - "name": "runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1677, - "src": "521:52:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1637, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "521:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1647, - "nodeType": "Block", - "src": "645:56:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "649:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1644, - "name": "_runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1640, - "src": "674:23:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "src": "649:48:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1646, - "nodeType": "ExpressionStatement", - "src": "649:48:4" - } - ] - }, - "documentation": null, - "id": 1648, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1640, - "mutability": "mutable", - "name": "_runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1648, - "src": "590:46:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1639, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "590:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "589:48:4" - }, - "returnParameters": { - "id": 1642, - "nodeType": "ParameterList", - "parameters": [], - "src": "645:0:4" - }, - "scope": 1677, - "src": "577:124:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1661, - "nodeType": "Block", - "src": "725:140:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "741:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "741:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "755:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "runtimeAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1617, - "src": "755:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "755:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "741:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", - "id": 1657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:53:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - }, - "value": "This function can only be executed from the runtime" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - } - ], - "id": 1650, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "729:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "729:127:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1659, - "nodeType": "ExpressionStatement", - "src": "729:127:4" - }, - { - "id": 1660, - "nodeType": "PlaceholderStatement", - "src": "860:1:4" - } - ] - }, - "documentation": null, - "id": 1662, - "name": "onlyRuntime", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1649, - "nodeType": "ParameterList", - "parameters": [], - "src": "725:0:4" - }, - "src": "704:161:4", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1675, - "nodeType": "Block", - "src": "889:147:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "905:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "905:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1667, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "919:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "councilAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1619, - "src": "919:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "919:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "905:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", - "id": 1671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "963:60:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - }, - "value": "This function can only be executed through proposal system" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - } - ], - "id": 1664, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "893:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "893:134:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "ExpressionStatement", - "src": "893:134:4" - }, - { - "id": 1674, - "nodeType": "PlaceholderStatement", - "src": "1031:1:4" - } - ] - }, - "documentation": null, - "id": 1676, - "name": "onlyCouncil", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1663, - "nodeType": "ParameterList", - "parameters": [], - "src": "889:0:4" - }, - "src": "868:168:4", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1678, - "src": "482:556:4" - } - ], - "src": "0:1039:4" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.543Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/RuntimeManageable.json b/smart-contracts/build/contracts/RuntimeManageable.json deleted file mode 100644 index 1b7de1c826..0000000000 --- a/smart-contracts/build/contracts/RuntimeManageable.json +++ /dev/null @@ -1,1716 +0,0 @@ -{ - "contractName": "RuntimeManageable", - "abi": [ - { - "inputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "_runtimeAddressProvider", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "runtimeAddressProvider", - "outputs": [ - { - "internalType": "contract RuntimeAddressProvider", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"_runtimeAddressProvider\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"runtimeAddressProvider\",\"outputs\":[{\"internalType\":\"contract RuntimeAddressProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":\"RuntimeManageable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol\":{\"keccak256\":\"0x7bc581b8310ce25e1186b6e66007859d6957d5eba30b0f5a22c2ac58fc10b3d5\",\"urls\":[\"bzz-raw://d5256df74c1fc0caea5e7c5a224edf46633d79351ae0a735bcaa9fdb0cc01b27\",\"dweb:/ipfs/QmNbMhbVMDE6f9VwvSxc5JpPXZUAusJLFhrkfRipNZPn8W\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "immutableReferences": {}, - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.6.0;\n\ncontract RuntimeAddressProvider {\n\taddress public runtimeAddress;\n\taddress public councilAddress;\n\n\tconstructor (address _runtimeAddress, address _councilAddress) public {\n\t\t// This is the address that only the runtime is able to use as msg.sender (used to update bridges)\n\t\truntimeAddress = _runtimeAddress;\n\t\t// This is the address hardcoded in proposal module (can only be used in context of proposal execution)\n\t\tcouncilAddress = _councilAddress;\n\t}\n}\n\nabstract contract RuntimeManageable {\n\tRuntimeAddressProvider public runtimeAddressProvider;\n\n\tconstructor (RuntimeAddressProvider _runtimeAddressProvider) public {\n\t\truntimeAddressProvider = _runtimeAddressProvider;\n\t}\n\n\tmodifier onlyRuntime {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.runtimeAddress(),\n\t\t\t\"This function can only be executed from the runtime\"\n\t\t);\n\t\t_;\n\t}\n\n\tmodifier onlyCouncil {\n\t\trequire(\n\t\t\tmsg.sender == runtimeAddressProvider.councilAddress(),\n\t\t\t\"This function can only be executed through proposal system\"\n\t\t);\n\t\t_;\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "exportedSymbols": { - "RuntimeAddressProvider": [ - 1636 - ], - "RuntimeManageable": [ - 1677 - ] - }, - "id": 1678, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1615, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1636, - "linearizedBaseContracts": [ - 1636 - ], - "name": "RuntimeAddressProvider", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "ec30338c", - "id": 1617, - "mutability": "mutable", - "name": "runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "60:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1616, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "60:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "62bc0cd6", - "id": 1619, - "mutability": "mutable", - "name": "councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "92:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1634, - "nodeType": "Block", - "src": "195:283:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1626, - "name": "runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1617, - "src": "300:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1627, - "name": "_runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "317:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "300:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1629, - "nodeType": "ExpressionStatement", - "src": "300:32:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1630, - "name": "councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "442:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1631, - "name": "_councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "459:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "442:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1633, - "nodeType": "ExpressionStatement", - "src": "442:32:4" - } - ] - }, - "documentation": null, - "id": 1635, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1621, - "mutability": "mutable", - "name": "_runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "138:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "138:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1623, - "mutability": "mutable", - "name": "_councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "163:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "163:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "137:50:4" - }, - "returnParameters": { - "id": 1625, - "nodeType": "ParameterList", - "parameters": [], - "src": "195:0:4" - }, - "scope": 1636, - "src": "125:353:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1678, - "src": "25:455:4" - }, - { - "abstract": true, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1677, - "linearizedBaseContracts": [ - 1677 - ], - "name": "RuntimeManageable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "2ca880d4", - "id": 1638, - "mutability": "mutable", - "name": "runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1677, - "src": "521:52:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1637, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "521:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1647, - "nodeType": "Block", - "src": "645:56:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "649:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1644, - "name": "_runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1640, - "src": "674:23:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "src": "649:48:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1646, - "nodeType": "ExpressionStatement", - "src": "649:48:4" - } - ] - }, - "documentation": null, - "id": 1648, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1640, - "mutability": "mutable", - "name": "_runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1648, - "src": "590:46:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1639, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "590:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "589:48:4" - }, - "returnParameters": { - "id": 1642, - "nodeType": "ParameterList", - "parameters": [], - "src": "645:0:4" - }, - "scope": 1677, - "src": "577:124:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1661, - "nodeType": "Block", - "src": "725:140:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "741:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "741:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "755:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "runtimeAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1617, - "src": "755:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "755:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "741:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", - "id": 1657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:53:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - }, - "value": "This function can only be executed from the runtime" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - } - ], - "id": 1650, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "729:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "729:127:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1659, - "nodeType": "ExpressionStatement", - "src": "729:127:4" - }, - { - "id": 1660, - "nodeType": "PlaceholderStatement", - "src": "860:1:4" - } - ] - }, - "documentation": null, - "id": 1662, - "name": "onlyRuntime", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1649, - "nodeType": "ParameterList", - "parameters": [], - "src": "725:0:4" - }, - "src": "704:161:4", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1675, - "nodeType": "Block", - "src": "889:147:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "905:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "905:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1667, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "919:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "councilAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1619, - "src": "919:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "919:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "905:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", - "id": 1671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "963:60:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - }, - "value": "This function can only be executed through proposal system" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - } - ], - "id": 1664, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "893:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "893:134:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "ExpressionStatement", - "src": "893:134:4" - }, - { - "id": 1674, - "nodeType": "PlaceholderStatement", - "src": "1031:1:4" - } - ] - }, - "documentation": null, - "id": 1676, - "name": "onlyCouncil", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1663, - "nodeType": "ParameterList", - "parameters": [], - "src": "889:0:4" - }, - "src": "868:168:4", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1678, - "src": "482:556:4" - } - ], - "src": "0:1039:4" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/bridge/auth.sol", - "exportedSymbols": { - "RuntimeAddressProvider": [ - 1636 - ], - "RuntimeManageable": [ - 1677 - ] - }, - "id": 1678, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1615, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1636, - "linearizedBaseContracts": [ - 1636 - ], - "name": "RuntimeAddressProvider", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "ec30338c", - "id": 1617, - "mutability": "mutable", - "name": "runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "60:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1616, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "60:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "62bc0cd6", - "id": 1619, - "mutability": "mutable", - "name": "councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1636, - "src": "92:29:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1634, - "nodeType": "Block", - "src": "195:283:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1626, - "name": "runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1617, - "src": "300:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1627, - "name": "_runtimeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "317:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "300:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1629, - "nodeType": "ExpressionStatement", - "src": "300:32:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1630, - "name": "councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1619, - "src": "442:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1631, - "name": "_councilAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1623, - "src": "459:15:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "442:32:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1633, - "nodeType": "ExpressionStatement", - "src": "442:32:4" - } - ] - }, - "documentation": null, - "id": 1635, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1621, - "mutability": "mutable", - "name": "_runtimeAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "138:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1620, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "138:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1623, - "mutability": "mutable", - "name": "_councilAddress", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1635, - "src": "163:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "163:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "137:50:4" - }, - "returnParameters": { - "id": 1625, - "nodeType": "ParameterList", - "parameters": [], - "src": "195:0:4" - }, - "scope": 1636, - "src": "125:353:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 1678, - "src": "25:455:4" - }, - { - "abstract": true, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1677, - "linearizedBaseContracts": [ - 1677 - ], - "name": "RuntimeManageable", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "2ca880d4", - "id": 1638, - "mutability": "mutable", - "name": "runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1677, - "src": "521:52:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1637, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "521:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1647, - "nodeType": "Block", - "src": "645:56:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "649:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1644, - "name": "_runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1640, - "src": "674:23:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "src": "649:48:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1646, - "nodeType": "ExpressionStatement", - "src": "649:48:4" - } - ] - }, - "documentation": null, - "id": 1648, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1641, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1640, - "mutability": "mutable", - "name": "_runtimeAddressProvider", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1648, - "src": "590:46:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - }, - "typeName": { - "contractScope": null, - "id": 1639, - "name": "RuntimeAddressProvider", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1636, - "src": "590:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "589:48:4" - }, - "returnParameters": { - "id": 1642, - "nodeType": "ParameterList", - "parameters": [], - "src": "645:0:4" - }, - "scope": 1677, - "src": "577:124:4", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 1661, - "nodeType": "Block", - "src": "725:140:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "741:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "741:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "755:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "runtimeAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1617, - "src": "755:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "755:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "741:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c792062652065786563757465642066726f6d207468652072756e74696d65", - "id": 1657, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "799:53:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - }, - "value": "This function can only be executed from the runtime" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4f4a6256a55b7bfad38f76021750e19cde7018f1921c53341253b693dbbfd5aa", - "typeString": "literal_string \"This function can only be executed from the runtime\"" - } - ], - "id": 1650, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "729:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "729:127:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1659, - "nodeType": "ExpressionStatement", - "src": "729:127:4" - }, - { - "id": 1660, - "nodeType": "PlaceholderStatement", - "src": "860:1:4" - } - ] - }, - "documentation": null, - "id": 1662, - "name": "onlyRuntime", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1649, - "nodeType": "ParameterList", - "parameters": [], - "src": "725:0:4" - }, - "src": "704:161:4", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1675, - "nodeType": "Block", - "src": "889:147:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1665, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "905:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "905:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1667, - "name": "runtimeAddressProvider", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1638, - "src": "919:22:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RuntimeAddressProvider_$1636", - "typeString": "contract RuntimeAddressProvider" - } - }, - "id": 1668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "councilAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 1619, - "src": "919:37:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 1669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "919:39:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "905:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "546869732066756e6374696f6e2063616e206f6e6c79206265206578656375746564207468726f7567682070726f706f73616c2073797374656d", - "id": 1671, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "963:60:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - }, - "value": "This function can only be executed through proposal system" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ed9de89f9f5f956ac31546450a938e5644a0b983db0b8bc6cdb0a5c34587d06", - "typeString": "literal_string \"This function can only be executed through proposal system\"" - } - ], - "id": 1664, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "893:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "893:134:4", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "ExpressionStatement", - "src": "893:134:4" - }, - { - "id": 1674, - "nodeType": "PlaceholderStatement", - "src": "1031:1:4" - } - ] - }, - "documentation": null, - "id": 1676, - "name": "onlyCouncil", - "nodeType": "ModifierDefinition", - "overrides": null, - "parameters": { - "id": 1663, - "nodeType": "ParameterList", - "parameters": [], - "src": "889:0:4" - }, - "src": "868:168:4", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1678, - "src": "482:556:4" - } - ], - "src": "0:1039:4" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.545Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath.json b/smart-contracts/build/contracts/SafeMath.json deleted file mode 100644 index 5e6e875276..0000000000 --- a/smart-contracts/build/contracts/SafeMath.json +++ /dev/null @@ -1,5148 +0,0 @@ -{ - "contractName": "SafeMath", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220652489c9dd967bdf35c86d8e4ade31ab6d590496c8f11b137909121c2f9f579c64736f6c634300060c0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220652489c9dd967bdf35c86d8e4ade31ab6d590496c8f11b137909121c2f9f579c64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "622:4578:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "622:4578:15:-:0;;;;;;;;", - "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.6.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 3598 - ] - }, - "id": 3599, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3404, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:15" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3405, - "nodeType": "StructuredDocumentation", - "src": "58:563:15", - "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." - }, - "fullyImplemented": true, - "id": 3598, - "linearizedBaseContracts": [ - 3598 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3430, - "nodeType": "Block", - "src": "941:109:15", - "statements": [ - { - "assignments": [ - 3416 - ], - "declarations": [ - { - "constant": false, - "id": 3416, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3430, - "src": "951:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3415, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "951:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3417, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "963:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3418, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3410, - "src": "967:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "963:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "951:17:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3422, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "986:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3423, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "991:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "986:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "994:29:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 3421, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "978:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "978:46:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "978:46:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3428, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "1042:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3414, - "id": 3429, - "nodeType": "Return", - "src": "1035:8:15" - } - ] - }, - "documentation": { - "id": 3406, - "nodeType": "StructuredDocumentation", - "src": "645:224:15", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 3431, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3411, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3408, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3431, - "src": "887:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3407, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "887:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3410, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3431, - "src": "898:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3409, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "898:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "886:22:15" - }, - "returnParameters": { - "id": 3414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3413, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3431, - "src": "932:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3412, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "932:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "931:9:15" - }, - "scope": 3598, - "src": "874:176:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3447, - "nodeType": "Block", - "src": "1388:67:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3442, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "1409:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3443, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "1412:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 3444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1415:32:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 3441, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3448, - 3476 - ], - "referencedDeclaration": 3476, - "src": "1405:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" - } - }, - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1405:43:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3440, - "id": 3446, - "nodeType": "Return", - "src": "1398:50:15" - } - ] - }, - "documentation": { - "id": 3432, - "nodeType": "StructuredDocumentation", - "src": "1056:260:15", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 3448, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3434, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3448, - "src": "1334:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3433, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3448, - "src": "1345:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3435, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1333:22:15" - }, - "returnParameters": { - "id": 3440, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3439, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3448, - "src": "1379:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3438, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1379:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1378:9:15" - }, - "scope": 3598, - "src": "1321:134:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3475, - "nodeType": "Block", - "src": "1841:92:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3461, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3453, - "src": "1859:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3462, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "1864:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1859:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 3464, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3455, - "src": "1867:12:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3460, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1851:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1851:29:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3466, - "nodeType": "ExpressionStatement", - "src": "1851:29:15" - }, - { - "assignments": [ - 3468 - ], - "declarations": [ - { - "constant": false, - "id": 3468, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3475, - "src": "1890:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1890:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3472, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3469, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "1902:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3470, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3453, - "src": "1906:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1902:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1890:17:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3473, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "1925:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3459, - "id": 3474, - "nodeType": "Return", - "src": "1918:8:15" - } - ] - }, - "documentation": { - "id": 3449, - "nodeType": "StructuredDocumentation", - "src": "1461:280:15", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 3476, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3456, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3451, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1759:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3450, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1759:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3453, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1770:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1770:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3455, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1781:26:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3454, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1781:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1758:50:15" - }, - "returnParameters": { - "id": 3459, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3458, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1832:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1832:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1831:9:15" - }, - "scope": 3598, - "src": "1746:187:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "2247:392:15", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3486, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3479, - "src": "2479:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2484:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2479:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3492, - "nodeType": "IfStatement", - "src": "2475:45:15", - "trueBody": { - "id": 3491, - "nodeType": "Block", - "src": "2487:33:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2508:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 3485, - "id": 3490, - "nodeType": "Return", - "src": "2501:8:15" - } - ] - } - }, - { - "assignments": [ - 3494 - ], - "declarations": [ - { - "constant": false, - "id": 3494, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3510, - "src": "2530:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2530:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3498, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3495, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3479, - "src": "2542:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3496, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3481, - "src": "2546:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2542:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2530:17:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3500, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "2565:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3501, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3479, - "src": "2569:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2565:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3503, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3481, - "src": "2574:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2565:10:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 3505, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2577:35:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 3499, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2557:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2557:56:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3507, - "nodeType": "ExpressionStatement", - "src": "2557:56:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "2631:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3485, - "id": 3509, - "nodeType": "Return", - "src": "2624:8:15" - } - ] - }, - "documentation": { - "id": 3477, - "nodeType": "StructuredDocumentation", - "src": "1939:236:15", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 3511, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3482, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3479, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3511, - "src": "2193:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3478, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2193:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3481, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3511, - "src": "2204:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2204:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2192:22:15" - }, - "returnParameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3511, - "src": "2238:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2238:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2237:9:15" - }, - "scope": 3598, - "src": "2180:459:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3527, - "nodeType": "Block", - "src": "3168:63:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3522, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "3189:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3523, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "3192:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 3524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3195:28:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 3521, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3528, - 3556 - ], - "referencedDeclaration": 3556, - "src": "3185:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" - } - }, - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3185:39:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3520, - "id": 3526, - "nodeType": "Return", - "src": "3178:46:15" - } - ] - }, - "documentation": { - "id": 3512, - "nodeType": "StructuredDocumentation", - "src": "2645:451:15", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3528, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3514, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3528, - "src": "3114:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3114:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3516, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3528, - "src": "3125:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3125:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3113:22:15" - }, - "returnParameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3528, - "src": "3159:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3159:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3158:9:15" - }, - "scope": 3598, - "src": "3101:130:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3555, - "nodeType": "Block", - "src": "3808:177:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3541, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "3826:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3830:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3826:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 3544, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "3833:12:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3818:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3818:28:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3546, - "nodeType": "ExpressionStatement", - "src": "3818:28:15" - }, - { - "assignments": [ - 3548 - ], - "declarations": [ - { - "constant": false, - "id": 3548, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3555, - "src": "3856:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3547, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3856:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3552, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3549, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "3868:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3550, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "3872:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3868:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3856:17:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3553, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3548, - "src": "3977:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3539, - "id": 3554, - "nodeType": "Return", - "src": "3970:8:15" - } - ] - }, - "documentation": { - "id": 3529, - "nodeType": "StructuredDocumentation", - "src": "3237:471:15", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3556, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3726:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3726:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3533, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3737:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3737:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3535, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3748:26:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3534, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3748:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3725:50:15" - }, - "returnParameters": { - "id": 3539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3538, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3799:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3799:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3798:9:15" - }, - "scope": 3598, - "src": "3713:272:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3572, - "nodeType": "Block", - "src": "4503:61:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3567, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3559, - "src": "4524:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3568, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3561, - "src": "4527:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4530:26:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 3566, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3573, - 3597 - ], - "referencedDeclaration": 3597, - "src": "4520:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4520:37:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3565, - "id": 3571, - "nodeType": "Return", - "src": "4513:44:15" - } - ] - }, - "documentation": { - "id": 3557, - "nodeType": "StructuredDocumentation", - "src": "3991:440:15", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3573, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3562, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3559, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3573, - "src": "4449:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4449:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3561, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3573, - "src": "4460:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3560, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4460:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4448:22:15" - }, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3573, - "src": "4494:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3563, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4494:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4493:9:15" - }, - "scope": 3598, - "src": "4436:128:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3596, - "nodeType": "Block", - "src": "5130:68:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3586, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "5148:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5153:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5148:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 3589, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "5156:12:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3585, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5140:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5140:29:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3591, - "nodeType": "ExpressionStatement", - "src": "5140:29:15" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3592, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3576, - "src": "5186:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 3593, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "5190:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5186:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3584, - "id": 3595, - "nodeType": "Return", - "src": "5179:12:15" - } - ] - }, - "documentation": { - "id": 3574, - "nodeType": "StructuredDocumentation", - "src": "4570:460:15", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3597, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3576, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5048:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5048:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3578, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5059:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3577, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5059:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3580, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5070:26:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3579, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5070:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5047:50:15" - }, - "returnParameters": { - "id": 3584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3583, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5121:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5121:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5120:9:15" - }, - "scope": 3598, - "src": "5035:163:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 3599, - "src": "622:4578:15" - } - ], - "src": "33:5168:15" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/math/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 3598 - ] - }, - "id": 3599, - "license": "MIT", - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3404, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "33:23:15" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": { - "id": 3405, - "nodeType": "StructuredDocumentation", - "src": "58:563:15", - "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." - }, - "fullyImplemented": true, - "id": 3598, - "linearizedBaseContracts": [ - 3598 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3430, - "nodeType": "Block", - "src": "941:109:15", - "statements": [ - { - "assignments": [ - 3416 - ], - "declarations": [ - { - "constant": false, - "id": 3416, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3430, - "src": "951:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3415, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "951:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3420, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3417, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "963:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 3418, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3410, - "src": "967:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "963:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "951:17:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3422, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "986:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3423, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3408, - "src": "991:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "986:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 3425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "994:29:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 3421, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "978:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "978:46:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3427, - "nodeType": "ExpressionStatement", - "src": "978:46:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3428, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3416, - "src": "1042:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3414, - "id": 3429, - "nodeType": "Return", - "src": "1035:8:15" - } - ] - }, - "documentation": { - "id": 3406, - "nodeType": "StructuredDocumentation", - "src": "645:224:15", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 3431, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3411, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3408, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3431, - "src": "887:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3407, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "887:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3410, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3431, - "src": "898:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3409, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "898:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "886:22:15" - }, - "returnParameters": { - "id": 3414, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3413, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3431, - "src": "932:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3412, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "932:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "931:9:15" - }, - "scope": 3598, - "src": "874:176:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3447, - "nodeType": "Block", - "src": "1388:67:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3442, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "1409:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3443, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3436, - "src": "1412:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 3444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1415:32:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 3441, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3448, - 3476 - ], - "referencedDeclaration": 3476, - "src": "1405:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" - } - }, - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1405:43:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3440, - "id": 3446, - "nodeType": "Return", - "src": "1398:50:15" - } - ] - }, - "documentation": { - "id": 3432, - "nodeType": "StructuredDocumentation", - "src": "1056:260:15", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 3448, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3437, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3434, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3448, - "src": "1334:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3433, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3436, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3448, - "src": "1345:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3435, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1333:22:15" - }, - "returnParameters": { - "id": 3440, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3439, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3448, - "src": "1379:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3438, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1379:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1378:9:15" - }, - "scope": 3598, - "src": "1321:134:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3475, - "nodeType": "Block", - "src": "1841:92:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3461, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3453, - "src": "1859:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 3462, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "1864:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1859:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 3464, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3455, - "src": "1867:12:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3460, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1851:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1851:29:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3466, - "nodeType": "ExpressionStatement", - "src": "1851:29:15" - }, - { - "assignments": [ - 3468 - ], - "declarations": [ - { - "constant": false, - "id": 3468, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3475, - "src": "1890:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3467, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1890:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3472, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3469, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3451, - "src": "1902:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 3470, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3453, - "src": "1906:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1902:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1890:17:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3473, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "1925:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3459, - "id": 3474, - "nodeType": "Return", - "src": "1918:8:15" - } - ] - }, - "documentation": { - "id": 3449, - "nodeType": "StructuredDocumentation", - "src": "1461:280:15", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 3476, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3456, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3451, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1759:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3450, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1759:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3453, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1770:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1770:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3455, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1781:26:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3454, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1781:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1758:50:15" - }, - "returnParameters": { - "id": 3459, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3458, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3476, - "src": "1832:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1832:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1831:9:15" - }, - "scope": 3598, - "src": "1746:187:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3510, - "nodeType": "Block", - "src": "2247:392:15", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3486, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3479, - "src": "2479:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2484:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2479:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3492, - "nodeType": "IfStatement", - "src": "2475:45:15", - "trueBody": { - "id": 3491, - "nodeType": "Block", - "src": "2487:33:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3489, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2508:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 3485, - "id": 3490, - "nodeType": "Return", - "src": "2501:8:15" - } - ] - } - }, - { - "assignments": [ - 3494 - ], - "declarations": [ - { - "constant": false, - "id": 3494, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3510, - "src": "2530:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2530:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3498, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3495, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3479, - "src": "2542:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 3496, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3481, - "src": "2546:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2542:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2530:17:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3500, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "2565:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3501, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3479, - "src": "2569:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2565:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3503, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3481, - "src": "2574:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2565:10:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 3505, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2577:35:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 3499, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "2557:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2557:56:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3507, - "nodeType": "ExpressionStatement", - "src": "2557:56:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3508, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "2631:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3485, - "id": 3509, - "nodeType": "Return", - "src": "2624:8:15" - } - ] - }, - "documentation": { - "id": 3477, - "nodeType": "StructuredDocumentation", - "src": "1939:236:15", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 3511, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3482, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3479, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3511, - "src": "2193:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3478, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2193:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3481, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3511, - "src": "2204:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2204:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2192:22:15" - }, - "returnParameters": { - "id": 3485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3484, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3511, - "src": "2238:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3483, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2238:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2237:9:15" - }, - "scope": 3598, - "src": "2180:459:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3527, - "nodeType": "Block", - "src": "3168:63:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3522, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3514, - "src": "3189:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3523, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3516, - "src": "3192:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 3524, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3195:28:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 3521, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3528, - 3556 - ], - "referencedDeclaration": 3556, - "src": "3185:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" - } - }, - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3185:39:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3520, - "id": 3526, - "nodeType": "Return", - "src": "3178:46:15" - } - ] - }, - "documentation": { - "id": 3512, - "nodeType": "StructuredDocumentation", - "src": "2645:451:15", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3528, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3514, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3528, - "src": "3114:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3114:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3516, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3528, - "src": "3125:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3125:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3113:22:15" - }, - "returnParameters": { - "id": 3520, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3519, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3528, - "src": "3159:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3159:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3158:9:15" - }, - "scope": 3598, - "src": "3101:130:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3555, - "nodeType": "Block", - "src": "3808:177:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3541, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "3826:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3830:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3826:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 3544, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3535, - "src": "3833:12:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3540, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3818:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3818:28:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3546, - "nodeType": "ExpressionStatement", - "src": "3818:28:15" - }, - { - "assignments": [ - 3548 - ], - "declarations": [ - { - "constant": false, - "id": 3548, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3555, - "src": "3856:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3547, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3856:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3552, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3549, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3531, - "src": "3868:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 3550, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "3872:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3868:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3856:17:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 3553, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3548, - "src": "3977:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3539, - "id": 3554, - "nodeType": "Return", - "src": "3970:8:15" - } - ] - }, - "documentation": { - "id": 3529, - "nodeType": "StructuredDocumentation", - "src": "3237:471:15", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3556, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3531, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3726:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3726:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3533, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3737:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3532, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3737:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3535, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3748:26:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3534, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3748:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3725:50:15" - }, - "returnParameters": { - "id": 3539, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3538, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3556, - "src": "3799:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3537, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3799:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3798:9:15" - }, - "scope": 3598, - "src": "3713:272:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3572, - "nodeType": "Block", - "src": "4503:61:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3567, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3559, - "src": "4524:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3568, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3561, - "src": "4527:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4530:26:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 3566, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 3573, - 3597 - ], - "referencedDeclaration": 3597, - "src": "4520:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,string memory) pure returns (uint256)" - } - }, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4520:37:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3565, - "id": 3571, - "nodeType": "Return", - "src": "4513:44:15" - } - ] - }, - "documentation": { - "id": 3557, - "nodeType": "StructuredDocumentation", - "src": "3991:440:15", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3573, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3562, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3559, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3573, - "src": "4449:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3558, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4449:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3561, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3573, - "src": "4460:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3560, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4460:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4448:22:15" - }, - "returnParameters": { - "id": 3565, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3564, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3573, - "src": "4494:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3563, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4494:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4493:9:15" - }, - "scope": 3598, - "src": "4436:128:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 3596, - "nodeType": "Block", - "src": "5130:68:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3586, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "5148:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3587, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5153:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5148:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 3589, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3580, - "src": "5156:12:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3585, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "5140:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5140:29:15", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3591, - "nodeType": "ExpressionStatement", - "src": "5140:29:15" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3592, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3576, - "src": "5186:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 3593, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3578, - "src": "5190:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5186:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3584, - "id": 3595, - "nodeType": "Return", - "src": "5179:12:15" - } - ] - }, - "documentation": { - "id": 3574, - "nodeType": "StructuredDocumentation", - "src": "4570:460:15", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 3597, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3581, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3576, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5048:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3575, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5048:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3578, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5059:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3577, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5059:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3580, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5070:26:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3579, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5070:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5047:50:15" - }, - "returnParameters": { - "id": 3584, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3583, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3597, - "src": "5121:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3582, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5121:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5120:9:15" - }, - "scope": 3598, - "src": "5035:163:15", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 3599, - "src": "622:4578:15" - } - ], - "src": "33:5168:15" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.594Z", - "devdoc": { - "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.", - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath16.json b/smart-contracts/build/contracts/SafeMath16.json deleted file mode 100644 index 3e977ca176..0000000000 --- a/smart-contracts/build/contracts/SafeMath16.json +++ /dev/null @@ -1,5137 +0,0 @@ -{ - "contractName": "SafeMath16", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":\"SafeMath16\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol\":{\"keccak256\":\"0x3144434af3449276d1a4e92e7a0dd5e213df54bdff1c8d7de210c6afddf2a4ff\",\"urls\":[\"bzz-raw://a04571ba65a5111dca479803ec8582acf04e7f074db82b9a83610e5cc4787dcb\",\"dweb:/ipfs/QmXyfBJxHsFhhbZd7R2zwQWrRvMWFmNoTqZALTWBfLj3uJ\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201bce44b4f5c3f04b08a543fba71106a7bcdedda6e6c0ee66c7b2c47c517a699f64736f6c634300060c0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201bce44b4f5c3f04b08a543fba71106a7bcdedda6e6c0ee66c7b2c47c517a699f64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "70:4552:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "70:4552:5:-:0;;;;;;;;", - "source": "pragma solidity ^0.6.0;\n\n// uint16 version of OpenZeppelin's SafeMath\nlibrary SafeMath16 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint16 a, uint16 b) internal pure returns (uint16) {\n uint16 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint16 a, uint16 b) internal pure returns (uint16) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) {\n require(b <= a, errorMessage);\n uint16 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint16 a, uint16 b) internal pure returns (uint16) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint16 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint16 a, uint16 b) internal pure returns (uint16) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) {\n require(b > 0, errorMessage);\n uint16 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint16 a, uint16 b) internal pure returns (uint16) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", - "exportedSymbols": { - "SafeMath16": [ - 1872 - ] - }, - "id": 1873, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1679, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 1872, - "linearizedBaseContracts": [ - 1872 - ], - "name": "SafeMath16", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1704, - "nodeType": "Block", - "src": "388:108:5", - "statements": [ - { - "assignments": [ - 1690 - ], - "declarations": [ - { - "constant": false, - "id": 1690, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1704, - "src": "398:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1689, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "398:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1694, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1691, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "409:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1692, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1684, - "src": "413:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "409:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "398:16:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1696, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "432:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1697, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "437:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "432:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:29:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 1695, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "424:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "424:46:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "ExpressionStatement", - "src": "424:46:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1702, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "488:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1688, - "id": 1703, - "nodeType": "Return", - "src": "481:8:5" - } - ] - }, - "documentation": { - "id": 1680, - "nodeType": "StructuredDocumentation", - "src": "95:224:5", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 1705, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1682, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1705, - "src": "337:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1681, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "337:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1684, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1705, - "src": "347:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1683, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "347:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:20:5" - }, - "returnParameters": { - "id": 1688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1687, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1705, - "src": "380:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1686, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "380:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "379:8:5" - }, - "scope": 1872, - "src": "324:172:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1721, - "nodeType": "Block", - "src": "831:67:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1708, - "src": "852:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 1717, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1710, - "src": "855:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "858:32:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 1715, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1722, - 1750 - ], - "referencedDeclaration": 1750, - "src": "848:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" - } - }, - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "848:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1714, - "id": 1720, - "nodeType": "Return", - "src": "841:50:5" - } - ] - }, - "documentation": { - "id": 1706, - "nodeType": "StructuredDocumentation", - "src": "502:260:5", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1722, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1708, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1722, - "src": "780:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1707, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "780:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1710, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1722, - "src": "790:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1709, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "790:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "779:20:5" - }, - "returnParameters": { - "id": 1714, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1713, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1722, - "src": "823:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1712, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "823:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:8:5" - }, - "scope": 1872, - "src": "767:131:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1749, - "nodeType": "Block", - "src": "1281:91:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1735, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "1299:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1736, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "1304:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1299:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1738, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "1307:12:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1734, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1291:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1291:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1740, - "nodeType": "ExpressionStatement", - "src": "1291:29:5" - }, - { - "assignments": [ - 1742 - ], - "declarations": [ - { - "constant": false, - "id": 1742, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1749, - "src": "1330:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1741, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1330:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1746, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1743, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "1341:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1744, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "1345:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1341:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1330:16:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1747, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "1364:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1733, - "id": 1748, - "nodeType": "Return", - "src": "1357:8:5" - } - ] - }, - "documentation": { - "id": 1723, - "nodeType": "StructuredDocumentation", - "src": "904:280:5", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1750, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1725, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1202:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1724, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1202:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1727, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1212:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1726, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1212:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1729, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1222:26:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1728, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1222:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1201:48:5" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1732, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1273:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1731, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1273:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1272:8:5" - }, - "scope": 1872, - "src": "1189:183:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1784, - "nodeType": "Block", - "src": "1683:391:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1760, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "1915:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1920:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1915:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1766, - "nodeType": "IfStatement", - "src": "1911:45:5", - "trueBody": { - "id": 1765, - "nodeType": "Block", - "src": "1923:33:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1944:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1759, - "id": 1764, - "nodeType": "Return", - "src": "1937:8:5" - } - ] - } - }, - { - "assignments": [ - 1768 - ], - "declarations": [ - { - "constant": false, - "id": 1768, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1784, - "src": "1966:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1767, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1966:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1772, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1769, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "1977:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1770, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "1981:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1977:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1966:16:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1774, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1768, - "src": "2000:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1775, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "2004:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2000:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1777, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "2009:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2000:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 1779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2012:35:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 1773, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1992:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1992:56:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1781, - "nodeType": "ExpressionStatement", - "src": "1992:56:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1782, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1768, - "src": "2066:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1759, - "id": 1783, - "nodeType": "Return", - "src": "2059:8:5" - } - ] - }, - "documentation": { - "id": 1751, - "nodeType": "StructuredDocumentation", - "src": "1378:236:5", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 1785, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1753, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1785, - "src": "1632:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1752, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1632:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1755, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1785, - "src": "1642:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1754, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1642:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1631:20:5" - }, - "returnParameters": { - "id": 1759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1758, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1785, - "src": "1675:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1757, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1675:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1674:8:5" - }, - "scope": 1872, - "src": "1619:455:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1801, - "nodeType": "Block", - "src": "2600:63:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1796, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1788, - "src": "2621:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 1797, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "2624:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2627:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 1795, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1802, - 1830 - ], - "referencedDeclaration": 1830, - "src": "2617:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" - } - }, - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:39:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1794, - "id": 1800, - "nodeType": "Return", - "src": "2610:46:5" - } - ] - }, - "documentation": { - "id": 1786, - "nodeType": "StructuredDocumentation", - "src": "2080:451:5", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1802, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1788, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1802, - "src": "2549:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1787, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2549:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1790, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1802, - "src": "2559:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1789, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2559:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2548:20:5" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1793, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1802, - "src": "2592:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1792, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2592:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2591:8:5" - }, - "scope": 1872, - "src": "2536:127:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1829, - "nodeType": "Block", - "src": "3237:176:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1815, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "3255:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3255:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1818, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "3262:12:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1814, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3247:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3247:28:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1820, - "nodeType": "ExpressionStatement", - "src": "3247:28:5" - }, - { - "assignments": [ - 1822 - ], - "declarations": [ - { - "constant": false, - "id": 1822, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1829, - "src": "3285:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1821, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3285:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1826, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1823, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "3296:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1824, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "3300:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3296:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3285:16:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1827, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "3405:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1813, - "id": 1828, - "nodeType": "Return", - "src": "3398:8:5" - } - ] - }, - "documentation": { - "id": 1803, - "nodeType": "StructuredDocumentation", - "src": "2669:471:5", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1830, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1805, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3158:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1804, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3158:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1807, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3168:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1806, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3168:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1809, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3178:26:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1808, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3178:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3157:48:5" - }, - "returnParameters": { - "id": 1813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1812, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3229:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1811, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3229:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3228:8:5" - }, - "scope": 1872, - "src": "3145:268:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1846, - "nodeType": "Block", - "src": "3928:61:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1841, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1833, - "src": "3949:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 1842, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1835, - "src": "3952:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 1843, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:26:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 1840, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1847, - 1871 - ], - "referencedDeclaration": 1871, - "src": "3945:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" - } - }, - "id": 1844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3945:37:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1839, - "id": 1845, - "nodeType": "Return", - "src": "3938:44:5" - } - ] - }, - "documentation": { - "id": 1831, - "nodeType": "StructuredDocumentation", - "src": "3419:440:5", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1847, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1833, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1847, - "src": "3877:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1832, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3877:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1835, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1847, - "src": "3887:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1834, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3887:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:20:5" - }, - "returnParameters": { - "id": 1839, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1838, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1847, - "src": "3920:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1837, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3920:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3919:8:5" - }, - "scope": 1872, - "src": "3864:125:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1870, - "nodeType": "Block", - "src": "4552:68:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1860, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "4570:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4575:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4570:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1863, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1854, - "src": "4578:12:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1859, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4562:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4562:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1865, - "nodeType": "ExpressionStatement", - "src": "4562:29:5" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1866, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1850, - "src": "4608:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 1867, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "4612:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "4608:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1858, - "id": 1869, - "nodeType": "Return", - "src": "4601:12:5" - } - ] - }, - "documentation": { - "id": 1848, - "nodeType": "StructuredDocumentation", - "src": "3995:460:5", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1871, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1855, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1850, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4473:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1849, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4473:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1852, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4483:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1851, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4483:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1854, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4493:26:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1853, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4493:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4472:48:5" - }, - "returnParameters": { - "id": 1858, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1857, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4544:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1856, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4544:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4543:8:5" - }, - "scope": 1872, - "src": "4460:160:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1873, - "src": "70:4552:5" - } - ], - "src": "0:4623:5" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath16.sol", - "exportedSymbols": { - "SafeMath16": [ - 1872 - ] - }, - "id": 1873, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1679, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 1872, - "linearizedBaseContracts": [ - 1872 - ], - "name": "SafeMath16", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1704, - "nodeType": "Block", - "src": "388:108:5", - "statements": [ - { - "assignments": [ - 1690 - ], - "declarations": [ - { - "constant": false, - "id": 1690, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1704, - "src": "398:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1689, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "398:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1694, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1693, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1691, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "409:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1692, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1684, - "src": "413:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "409:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "398:16:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1696, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "432:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1697, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1682, - "src": "437:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "432:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:29:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 1695, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "424:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "424:46:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "ExpressionStatement", - "src": "424:46:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1702, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1690, - "src": "488:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1688, - "id": 1703, - "nodeType": "Return", - "src": "481:8:5" - } - ] - }, - "documentation": { - "id": 1680, - "nodeType": "StructuredDocumentation", - "src": "95:224:5", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 1705, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1682, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1705, - "src": "337:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1681, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "337:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1684, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1705, - "src": "347:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1683, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "347:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:20:5" - }, - "returnParameters": { - "id": 1688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1687, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1705, - "src": "380:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1686, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "380:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "379:8:5" - }, - "scope": 1872, - "src": "324:172:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1721, - "nodeType": "Block", - "src": "831:67:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1708, - "src": "852:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 1717, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1710, - "src": "855:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "858:32:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 1715, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1722, - 1750 - ], - "referencedDeclaration": 1750, - "src": "848:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" - } - }, - "id": 1719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "848:43:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1714, - "id": 1720, - "nodeType": "Return", - "src": "841:50:5" - } - ] - }, - "documentation": { - "id": 1706, - "nodeType": "StructuredDocumentation", - "src": "502:260:5", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1722, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1708, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1722, - "src": "780:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1707, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "780:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1710, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1722, - "src": "790:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1709, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "790:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "779:20:5" - }, - "returnParameters": { - "id": 1714, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1713, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1722, - "src": "823:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1712, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "823:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:8:5" - }, - "scope": 1872, - "src": "767:131:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1749, - "nodeType": "Block", - "src": "1281:91:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1737, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1735, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "1299:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1736, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "1304:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1299:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1738, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "1307:12:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1734, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1291:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1291:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1740, - "nodeType": "ExpressionStatement", - "src": "1291:29:5" - }, - { - "assignments": [ - 1742 - ], - "declarations": [ - { - "constant": false, - "id": 1742, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1749, - "src": "1330:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1741, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1330:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1746, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1743, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "1341:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1744, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "1345:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1341:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1330:16:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1747, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1742, - "src": "1364:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1733, - "id": 1748, - "nodeType": "Return", - "src": "1357:8:5" - } - ] - }, - "documentation": { - "id": 1723, - "nodeType": "StructuredDocumentation", - "src": "904:280:5", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1750, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1725, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1202:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1724, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1202:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1727, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1212:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1726, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1212:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1729, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1222:26:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1728, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1222:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1201:48:5" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1732, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1750, - "src": "1273:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1731, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1273:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1272:8:5" - }, - "scope": 1872, - "src": "1189:183:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1784, - "nodeType": "Block", - "src": "1683:391:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1760, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "1915:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1920:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1915:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1766, - "nodeType": "IfStatement", - "src": "1911:45:5", - "trueBody": { - "id": 1765, - "nodeType": "Block", - "src": "1923:33:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1944:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1759, - "id": 1764, - "nodeType": "Return", - "src": "1937:8:5" - } - ] - } - }, - { - "assignments": [ - 1768 - ], - "declarations": [ - { - "constant": false, - "id": 1768, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1784, - "src": "1966:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1767, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1966:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1772, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1769, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "1977:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1770, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "1981:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "1977:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1966:16:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1774, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1768, - "src": "2000:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1775, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1753, - "src": "2004:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2000:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1777, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1755, - "src": "2009:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2000:10:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 1779, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2012:35:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 1773, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1992:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1992:56:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1781, - "nodeType": "ExpressionStatement", - "src": "1992:56:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1782, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1768, - "src": "2066:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1759, - "id": 1783, - "nodeType": "Return", - "src": "2059:8:5" - } - ] - }, - "documentation": { - "id": 1751, - "nodeType": "StructuredDocumentation", - "src": "1378:236:5", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 1785, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1753, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1785, - "src": "1632:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1752, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1632:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1755, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1785, - "src": "1642:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1754, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1642:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1631:20:5" - }, - "returnParameters": { - "id": 1759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1758, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1785, - "src": "1675:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1757, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1675:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1674:8:5" - }, - "scope": 1872, - "src": "1619:455:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1801, - "nodeType": "Block", - "src": "2600:63:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1796, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1788, - "src": "2621:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 1797, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "2624:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2627:28:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 1795, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1802, - 1830 - ], - "referencedDeclaration": 1830, - "src": "2617:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" - } - }, - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:39:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1794, - "id": 1800, - "nodeType": "Return", - "src": "2610:46:5" - } - ] - }, - "documentation": { - "id": 1786, - "nodeType": "StructuredDocumentation", - "src": "2080:451:5", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1802, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1788, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1802, - "src": "2549:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1787, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2549:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1790, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1802, - "src": "2559:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1789, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2559:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2548:20:5" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1793, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1802, - "src": "2592:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1792, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2592:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2591:8:5" - }, - "scope": 1872, - "src": "2536:127:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1829, - "nodeType": "Block", - "src": "3237:176:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1815, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "3255:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3255:5:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1818, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "3262:12:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1814, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3247:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3247:28:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1820, - "nodeType": "ExpressionStatement", - "src": "3247:28:5" - }, - { - "assignments": [ - 1822 - ], - "declarations": [ - { - "constant": false, - "id": 1822, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1829, - "src": "3285:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1821, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3285:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1826, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1823, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "3296:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1824, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "3300:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3296:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3285:16:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 1827, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "3405:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1813, - "id": 1828, - "nodeType": "Return", - "src": "3398:8:5" - } - ] - }, - "documentation": { - "id": 1803, - "nodeType": "StructuredDocumentation", - "src": "2669:471:5", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1830, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1805, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3158:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1804, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3158:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1807, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3168:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1806, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3168:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1809, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3178:26:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1808, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3178:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3157:48:5" - }, - "returnParameters": { - "id": 1813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1812, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1830, - "src": "3229:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1811, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3229:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3228:8:5" - }, - "scope": 1872, - "src": "3145:268:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1846, - "nodeType": "Block", - "src": "3928:61:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1841, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1833, - "src": "3949:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 1842, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1835, - "src": "3952:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 1843, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:26:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 1840, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1847, - 1871 - ], - "referencedDeclaration": 1871, - "src": "3945:3:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint16_$_t_string_memory_ptr_$returns$_t_uint16_$", - "typeString": "function (uint16,uint16,string memory) pure returns (uint16)" - } - }, - "id": 1844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3945:37:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1839, - "id": 1845, - "nodeType": "Return", - "src": "3938:44:5" - } - ] - }, - "documentation": { - "id": 1831, - "nodeType": "StructuredDocumentation", - "src": "3419:440:5", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1847, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1836, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1833, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1847, - "src": "3877:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1832, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3877:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1835, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1847, - "src": "3887:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1834, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3887:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:20:5" - }, - "returnParameters": { - "id": 1839, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1838, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1847, - "src": "3920:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1837, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3920:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3919:8:5" - }, - "scope": 1872, - "src": "3864:125:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1870, - "nodeType": "Block", - "src": "4552:68:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1860, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "4570:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4575:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4570:6:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1863, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1854, - "src": "4578:12:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1859, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4562:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4562:29:5", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1865, - "nodeType": "ExpressionStatement", - "src": "4562:29:5" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "id": 1868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1866, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1850, - "src": "4608:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 1867, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1852, - "src": "4612:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "4608:5:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "functionReturnParameters": 1858, - "id": 1869, - "nodeType": "Return", - "src": "4601:12:5" - } - ] - }, - "documentation": { - "id": 1848, - "nodeType": "StructuredDocumentation", - "src": "3995:460:5", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1871, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1855, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1850, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4473:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1849, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4473:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1852, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4483:8:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1851, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4483:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1854, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4493:26:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1853, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4493:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4472:48:5" - }, - "returnParameters": { - "id": 1858, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1857, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1871, - "src": "4544:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 1856, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4544:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4543:8:5" - }, - "scope": 1872, - "src": "4460:160:5", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 1873, - "src": "70:4552:5" - } - ], - "src": "0:4623:5" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.547Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath32.json b/smart-contracts/build/contracts/SafeMath32.json deleted file mode 100644 index e560aad2d7..0000000000 --- a/smart-contracts/build/contracts/SafeMath32.json +++ /dev/null @@ -1,5137 +0,0 @@ -{ - "contractName": "SafeMath32", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":\"SafeMath32\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol\":{\"keccak256\":\"0xd64cd90a31a07d4449b9c5b603023c8f529ddc877d944bf32cb27195d1973f55\",\"urls\":[\"bzz-raw://3f9448f8e17d94d268d8fb6ff9ee45f5cec40b8dd76d2d9a1fe81a31399366fc\",\"dweb:/ipfs/QmXnV4S7dCXcUr7nKoRwku6oP3rBuFUm3AwjsbkKGsNvGX\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220850da4e04fd442cb4bac09a608c69852651a1fbea0f7e7448588abe3245b404a64736f6c634300060c0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220850da4e04fd442cb4bac09a608c69852651a1fbea0f7e7448588abe3245b404a64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "70:4552:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "70:4552:6:-:0;;;;;;;;", - "source": "pragma solidity ^0.6.0;\n\n// uint32 version of OpenZeppelin's SafeMath\nlibrary SafeMath32 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint32 a, uint32 b) internal pure returns (uint32) {\n uint32 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint32 a, uint32 b) internal pure returns (uint32) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) {\n require(b <= a, errorMessage);\n uint32 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint32 a, uint32 b) internal pure returns (uint32) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint32 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint32 a, uint32 b) internal pure returns (uint32) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) {\n require(b > 0, errorMessage);\n uint32 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint32 a, uint32 b) internal pure returns (uint32) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "exportedSymbols": { - "SafeMath32": [ - 2067 - ] - }, - "id": 2068, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1874, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2067, - "linearizedBaseContracts": [ - 2067 - ], - "name": "SafeMath32", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1899, - "nodeType": "Block", - "src": "388:108:6", - "statements": [ - { - "assignments": [ - 1885 - ], - "declarations": [ - { - "constant": false, - "id": 1885, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1899, - "src": "398:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1884, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "398:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1889, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1886, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "409:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1887, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "413:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "409:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "398:16:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1891, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1885, - "src": "432:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1892, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "437:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "432:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 1894, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 1890, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "424:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "424:46:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1896, - "nodeType": "ExpressionStatement", - "src": "424:46:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1897, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1885, - "src": "488:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1883, - "id": 1898, - "nodeType": "Return", - "src": "481:8:6" - } - ] - }, - "documentation": { - "id": 1875, - "nodeType": "StructuredDocumentation", - "src": "95:224:6", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 1900, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1877, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1900, - "src": "337:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1876, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "337:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1879, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1900, - "src": "347:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1878, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "347:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:20:6" - }, - "returnParameters": { - "id": 1883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1882, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1900, - "src": "380:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1881, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "380:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "379:8:6" - }, - "scope": 2067, - "src": "324:172:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1916, - "nodeType": "Block", - "src": "831:67:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1911, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1903, - "src": "852:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 1912, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1905, - "src": "855:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "858:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 1910, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1917, - 1945 - ], - "referencedDeclaration": 1945, - "src": "848:3:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", - "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" - } - }, - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "848:43:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1909, - "id": 1915, - "nodeType": "Return", - "src": "841:50:6" - } - ] - }, - "documentation": { - "id": 1901, - "nodeType": "StructuredDocumentation", - "src": "502:260:6", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1917, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1906, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1903, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1917, - "src": "780:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1902, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "780:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1905, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1917, - "src": "790:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1904, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "790:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "779:20:6" - }, - "returnParameters": { - "id": 1909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1908, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1917, - "src": "823:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1907, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "823:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:8:6" - }, - "scope": 2067, - "src": "767:131:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1944, - "nodeType": "Block", - "src": "1281:91:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1930, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1922, - "src": "1299:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1920, - "src": "1304:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1299:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1933, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1924, - "src": "1307:12:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1929, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1291:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1291:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1935, - "nodeType": "ExpressionStatement", - "src": "1291:29:6" - }, - { - "assignments": [ - 1937 - ], - "declarations": [ - { - "constant": false, - "id": 1937, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1944, - "src": "1330:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1936, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1330:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1941, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1938, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1920, - "src": "1341:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1939, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1922, - "src": "1345:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1341:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1330:16:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1942, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1937, - "src": "1364:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1928, - "id": 1943, - "nodeType": "Return", - "src": "1357:8:6" - } - ] - }, - "documentation": { - "id": 1918, - "nodeType": "StructuredDocumentation", - "src": "904:280:6", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1945, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1920, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1202:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1919, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1202:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1922, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1212:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1921, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1212:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1924, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1222:26:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1923, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1222:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1201:48:6" - }, - "returnParameters": { - "id": 1928, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1927, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1273:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1926, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1273:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1272:8:6" - }, - "scope": 2067, - "src": "1189:183:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1979, - "nodeType": "Block", - "src": "1683:391:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1955, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "1915:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1920:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1915:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1961, - "nodeType": "IfStatement", - "src": "1911:45:6", - "trueBody": { - "id": 1960, - "nodeType": "Block", - "src": "1923:33:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1944:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1954, - "id": 1959, - "nodeType": "Return", - "src": "1937:8:6" - } - ] - } - }, - { - "assignments": [ - 1963 - ], - "declarations": [ - { - "constant": false, - "id": 1963, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1979, - "src": "1966:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1962, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1966:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1967, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1964, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "1977:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1965, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "1981:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1977:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1966:16:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1969, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "2000:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1970, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "2004:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2000:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1972, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "2009:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2000:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 1974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2012:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 1968, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1992:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1992:56:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1976, - "nodeType": "ExpressionStatement", - "src": "1992:56:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1977, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "2066:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1954, - "id": 1978, - "nodeType": "Return", - "src": "2059:8:6" - } - ] - }, - "documentation": { - "id": 1946, - "nodeType": "StructuredDocumentation", - "src": "1378:236:6", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 1980, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1948, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1980, - "src": "1632:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1947, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1632:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1950, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1980, - "src": "1642:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1949, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1642:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1631:20:6" - }, - "returnParameters": { - "id": 1954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1953, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1980, - "src": "1675:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1952, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1675:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1674:8:6" - }, - "scope": 2067, - "src": "1619:455:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1996, - "nodeType": "Block", - "src": "2600:63:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1991, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2621:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 1992, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2624:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 1993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2627:28:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 1990, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1997, - 2025 - ], - "referencedDeclaration": 2025, - "src": "2617:3:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", - "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" - } - }, - "id": 1994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:39:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1989, - "id": 1995, - "nodeType": "Return", - "src": "2610:46:6" - } - ] - }, - "documentation": { - "id": 1981, - "nodeType": "StructuredDocumentation", - "src": "2080:451:6", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1986, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1983, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1997, - "src": "2549:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1982, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2549:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1985, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1997, - "src": "2559:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1984, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2559:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2548:20:6" - }, - "returnParameters": { - "id": 1989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1988, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1997, - "src": "2592:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1987, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2592:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2591:8:6" - }, - "scope": 2067, - "src": "2536:127:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2024, - "nodeType": "Block", - "src": "3237:176:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2010, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2002, - "src": "3255:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3255:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2013, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2004, - "src": "3262:12:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2009, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3247:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3247:28:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2015, - "nodeType": "ExpressionStatement", - "src": "3247:28:6" - }, - { - "assignments": [ - 2017 - ], - "declarations": [ - { - "constant": false, - "id": 2017, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2024, - "src": "3285:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2016, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3285:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2021, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2018, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2000, - "src": "3296:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2019, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2002, - "src": "3300:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3296:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3285:16:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 2022, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2017, - "src": "3405:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 2008, - "id": 2023, - "nodeType": "Return", - "src": "3398:8:6" - } - ] - }, - "documentation": { - "id": 1998, - "nodeType": "StructuredDocumentation", - "src": "2669:471:6", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2025, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2005, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2000, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3158:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1999, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3158:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2002, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3168:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2001, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3168:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2004, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3178:26:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2003, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3178:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3157:48:6" - }, - "returnParameters": { - "id": 2008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2007, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3229:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2006, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3229:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3228:8:6" - }, - "scope": 2067, - "src": "3145:268:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2041, - "nodeType": "Block", - "src": "3928:61:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2036, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "3949:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 2037, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3952:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 2038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:26:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 2035, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2042, - 2066 - ], - "referencedDeclaration": 2066, - "src": "3945:3:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", - "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3945:37:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 2034, - "id": 2040, - "nodeType": "Return", - "src": "3938:44:6" - } - ] - }, - "documentation": { - "id": 2026, - "nodeType": "StructuredDocumentation", - "src": "3419:440:6", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2042, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2028, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2042, - "src": "3877:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2027, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3877:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2042, - "src": "3887:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2029, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3887:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:20:6" - }, - "returnParameters": { - "id": 2034, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2033, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2042, - "src": "3920:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2032, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3920:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3919:8:6" - }, - "scope": 2067, - "src": "3864:125:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2065, - "nodeType": "Block", - "src": "4552:68:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2055, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2047, - "src": "4570:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4575:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4570:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2058, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "4578:12:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2054, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4562:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4562:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2060, - "nodeType": "ExpressionStatement", - "src": "4562:29:6" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2045, - "src": "4608:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2062, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2047, - "src": "4612:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4608:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 2053, - "id": 2064, - "nodeType": "Return", - "src": "4601:12:6" - } - ] - }, - "documentation": { - "id": 2043, - "nodeType": "StructuredDocumentation", - "src": "3995:460:6", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2066, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2045, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4473:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2044, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4473:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2047, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4483:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2046, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4483:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2049, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4493:26:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2048, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4493:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4472:48:6" - }, - "returnParameters": { - "id": 2053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2052, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4544:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2051, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4544:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4543:8:6" - }, - "scope": 2067, - "src": "4460:160:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2068, - "src": "70:4552:6" - } - ], - "src": "0:4623:6" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath32.sol", - "exportedSymbols": { - "SafeMath32": [ - 2067 - ] - }, - "id": 2068, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1874, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2067, - "linearizedBaseContracts": [ - 2067 - ], - "name": "SafeMath32", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1899, - "nodeType": "Block", - "src": "388:108:6", - "statements": [ - { - "assignments": [ - 1885 - ], - "declarations": [ - { - "constant": false, - "id": 1885, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1899, - "src": "398:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1884, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "398:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1889, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1886, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "409:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 1887, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "413:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "409:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "398:16:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1893, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1891, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1885, - "src": "432:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1892, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "437:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "432:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 1894, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:29:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 1890, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "424:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "424:46:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1896, - "nodeType": "ExpressionStatement", - "src": "424:46:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1897, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1885, - "src": "488:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1883, - "id": 1898, - "nodeType": "Return", - "src": "481:8:6" - } - ] - }, - "documentation": { - "id": 1875, - "nodeType": "StructuredDocumentation", - "src": "95:224:6", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 1900, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1880, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1877, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1900, - "src": "337:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1876, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "337:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1879, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1900, - "src": "347:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1878, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "347:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:20:6" - }, - "returnParameters": { - "id": 1883, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1882, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1900, - "src": "380:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1881, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "380:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "379:8:6" - }, - "scope": 2067, - "src": "324:172:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1916, - "nodeType": "Block", - "src": "831:67:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1911, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1903, - "src": "852:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 1912, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1905, - "src": "855:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "858:32:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 1910, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1917, - 1945 - ], - "referencedDeclaration": 1945, - "src": "848:3:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", - "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" - } - }, - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "848:43:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1909, - "id": 1915, - "nodeType": "Return", - "src": "841:50:6" - } - ] - }, - "documentation": { - "id": 1901, - "nodeType": "StructuredDocumentation", - "src": "502:260:6", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1917, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1906, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1903, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1917, - "src": "780:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1902, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "780:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1905, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1917, - "src": "790:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1904, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "790:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "779:20:6" - }, - "returnParameters": { - "id": 1909, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1908, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1917, - "src": "823:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1907, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "823:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:8:6" - }, - "scope": 2067, - "src": "767:131:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1944, - "nodeType": "Block", - "src": "1281:91:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1930, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1922, - "src": "1299:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 1931, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1920, - "src": "1304:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1299:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 1933, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1924, - "src": "1307:12:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 1929, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1291:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1291:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1935, - "nodeType": "ExpressionStatement", - "src": "1291:29:6" - }, - { - "assignments": [ - 1937 - ], - "declarations": [ - { - "constant": false, - "id": 1937, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1944, - "src": "1330:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1936, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1330:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1941, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1940, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1938, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1920, - "src": "1341:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 1939, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1922, - "src": "1345:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1341:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1330:16:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1942, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1937, - "src": "1364:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1928, - "id": 1943, - "nodeType": "Return", - "src": "1357:8:6" - } - ] - }, - "documentation": { - "id": 1918, - "nodeType": "StructuredDocumentation", - "src": "904:280:6", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 1945, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1920, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1202:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1919, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1202:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1922, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1212:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1921, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1212:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1924, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1222:26:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1923, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1222:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1201:48:6" - }, - "returnParameters": { - "id": 1928, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1927, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1945, - "src": "1273:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1926, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1273:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1272:8:6" - }, - "scope": 2067, - "src": "1189:183:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1979, - "nodeType": "Block", - "src": "1683:391:6", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1955, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "1915:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1956, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1920:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1915:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1961, - "nodeType": "IfStatement", - "src": "1911:45:6", - "trueBody": { - "id": 1960, - "nodeType": "Block", - "src": "1923:33:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1944:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 1954, - "id": 1959, - "nodeType": "Return", - "src": "1937:8:6" - } - ] - } - }, - { - "assignments": [ - 1963 - ], - "declarations": [ - { - "constant": false, - "id": 1963, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1979, - "src": "1966:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1962, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1966:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1967, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1964, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "1977:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 1965, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "1981:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "1977:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1966:16:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1969, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "2000:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 1970, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1948, - "src": "2004:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2000:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1972, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1950, - "src": "2009:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "2000:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 1974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2012:35:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 1968, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1992:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1992:56:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1976, - "nodeType": "ExpressionStatement", - "src": "1992:56:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 1977, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "2066:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1954, - "id": 1978, - "nodeType": "Return", - "src": "2059:8:6" - } - ] - }, - "documentation": { - "id": 1946, - "nodeType": "StructuredDocumentation", - "src": "1378:236:6", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 1980, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1948, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1980, - "src": "1632:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1947, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1632:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1950, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1980, - "src": "1642:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1949, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1642:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1631:20:6" - }, - "returnParameters": { - "id": 1954, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1953, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1980, - "src": "1675:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1952, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "1675:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1674:8:6" - }, - "scope": 2067, - "src": "1619:455:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 1996, - "nodeType": "Block", - "src": "2600:63:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1991, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1983, - "src": "2621:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 1992, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1985, - "src": "2624:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 1993, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2627:28:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 1990, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1997, - 2025 - ], - "referencedDeclaration": 2025, - "src": "2617:3:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", - "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" - } - }, - "id": 1994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:39:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 1989, - "id": 1995, - "nodeType": "Return", - "src": "2610:46:6" - } - ] - }, - "documentation": { - "id": 1981, - "nodeType": "StructuredDocumentation", - "src": "2080:451:6", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 1997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 1986, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1983, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1997, - "src": "2549:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1982, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2549:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1985, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1997, - "src": "2559:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1984, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2559:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2548:20:6" - }, - "returnParameters": { - "id": 1989, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1988, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 1997, - "src": "2592:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1987, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "2592:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2591:8:6" - }, - "scope": 2067, - "src": "2536:127:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2024, - "nodeType": "Block", - "src": "3237:176:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2012, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2010, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2002, - "src": "3255:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3255:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2013, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2004, - "src": "3262:12:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2009, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3247:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3247:28:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2015, - "nodeType": "ExpressionStatement", - "src": "3247:28:6" - }, - { - "assignments": [ - 2017 - ], - "declarations": [ - { - "constant": false, - "id": 2017, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2024, - "src": "3285:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2016, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3285:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2021, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2018, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2000, - "src": "3296:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2019, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2002, - "src": "3300:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "3296:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3285:16:6" - }, - { - "expression": { - "argumentTypes": null, - "id": 2022, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2017, - "src": "3405:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 2008, - "id": 2023, - "nodeType": "Return", - "src": "3398:8:6" - } - ] - }, - "documentation": { - "id": 1998, - "nodeType": "StructuredDocumentation", - "src": "2669:471:6", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2025, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2005, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2000, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3158:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 1999, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3158:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2002, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3168:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2001, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3168:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2004, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3178:26:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2003, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3178:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3157:48:6" - }, - "returnParameters": { - "id": 2008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2007, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2025, - "src": "3229:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2006, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3229:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3228:8:6" - }, - "scope": 2067, - "src": "3145:268:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2041, - "nodeType": "Block", - "src": "3928:61:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2036, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "3949:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "id": 2037, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "3952:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 2038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:26:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 2035, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2042, - 2066 - ], - "referencedDeclaration": 2066, - "src": "3945:3:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$_t_string_memory_ptr_$returns$_t_uint32_$", - "typeString": "function (uint32,uint32,string memory) pure returns (uint32)" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3945:37:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 2034, - "id": 2040, - "nodeType": "Return", - "src": "3938:44:6" - } - ] - }, - "documentation": { - "id": 2026, - "nodeType": "StructuredDocumentation", - "src": "3419:440:6", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2042, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2028, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2042, - "src": "3877:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2027, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3877:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2042, - "src": "3887:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2029, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3887:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:20:6" - }, - "returnParameters": { - "id": 2034, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2033, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2042, - "src": "3920:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2032, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "3920:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3919:8:6" - }, - "scope": 2067, - "src": "3864:125:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2065, - "nodeType": "Block", - "src": "4552:68:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2055, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2047, - "src": "4570:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4575:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4570:6:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2058, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "4578:12:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2054, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4562:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4562:29:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2060, - "nodeType": "ExpressionStatement", - "src": "4562:29:6" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2045, - "src": "4608:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2062, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2047, - "src": "4612:1:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "4608:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "functionReturnParameters": 2053, - "id": 2064, - "nodeType": "Return", - "src": "4601:12:6" - } - ] - }, - "documentation": { - "id": 2043, - "nodeType": "StructuredDocumentation", - "src": "3995:460:6", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2066, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2045, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4473:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2044, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4473:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2047, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4483:8:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2046, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4483:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2049, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4493:26:6", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2048, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4493:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4472:48:6" - }, - "returnParameters": { - "id": 2053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2052, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2066, - "src": "4544:6:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2051, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "4544:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4543:8:6" - }, - "scope": 2067, - "src": "4460:160:6", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2068, - "src": "70:4552:6" - } - ], - "src": "0:4623:6" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.550Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath64.json b/smart-contracts/build/contracts/SafeMath64.json deleted file mode 100644 index 1b9f8c670d..0000000000 --- a/smart-contracts/build/contracts/SafeMath64.json +++ /dev/null @@ -1,5137 +0,0 @@ -{ - "contractName": "SafeMath64", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":\"SafeMath64\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7620ab407e888b71e9a9273d92887fc5bb9074d2cdaa9f429bb537be41a72a464736f6c634300060c0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7620ab407e888b71e9a9273d92887fc5bb9074d2cdaa9f429bb537be41a72a464736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "70:4552:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "70:4552:7:-:0;;;;;;;;", - "source": "pragma solidity ^0.6.0;\n\n// uint64 version of OpenZeppelin's SafeMath\nlibrary SafeMath64 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint64 a, uint64 b) internal pure returns (uint64) {\n uint64 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint64 a, uint64 b) internal pure returns (uint64) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) {\n require(b <= a, errorMessage);\n uint64 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint64 a, uint64 b) internal pure returns (uint64) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint64 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint64 a, uint64 b) internal pure returns (uint64) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) {\n require(b > 0, errorMessage);\n uint64 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint64 a, uint64 b) internal pure returns (uint64) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "exportedSymbols": { - "SafeMath64": [ - 2262 - ] - }, - "id": 2263, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2069, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2262, - "linearizedBaseContracts": [ - 2262 - ], - "name": "SafeMath64", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2094, - "nodeType": "Block", - "src": "388:108:7", - "statements": [ - { - "assignments": [ - 2080 - ], - "declarations": [ - { - "constant": false, - "id": 2080, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2094, - "src": "398:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2079, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "398:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2084, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2081, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "409:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2082, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2074, - "src": "413:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "409:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "398:16:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2086, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2080, - "src": "432:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2087, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "437:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "432:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:29:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 2085, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "424:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "424:46:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2091, - "nodeType": "ExpressionStatement", - "src": "424:46:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2092, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2080, - "src": "488:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2078, - "id": 2093, - "nodeType": "Return", - "src": "481:8:7" - } - ] - }, - "documentation": { - "id": 2070, - "nodeType": "StructuredDocumentation", - "src": "95:224:7", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 2095, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2072, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2095, - "src": "337:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2071, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "337:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2074, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2095, - "src": "347:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2073, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "347:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:20:7" - }, - "returnParameters": { - "id": 2078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2077, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2095, - "src": "380:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2076, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "380:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "379:8:7" - }, - "scope": 2262, - "src": "324:172:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2111, - "nodeType": "Block", - "src": "831:67:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2106, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "852:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 2107, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "855:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "858:32:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 2105, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2112, - 2140 - ], - "referencedDeclaration": 2140, - "src": "848:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" - } - }, - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "848:43:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2104, - "id": 2110, - "nodeType": "Return", - "src": "841:50:7" - } - ] - }, - "documentation": { - "id": 2096, - "nodeType": "StructuredDocumentation", - "src": "502:260:7", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2112, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2098, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2112, - "src": "780:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2097, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "780:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2100, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2112, - "src": "790:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2099, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "790:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "779:20:7" - }, - "returnParameters": { - "id": 2104, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2103, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2112, - "src": "823:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2102, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "823:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:8:7" - }, - "scope": 2262, - "src": "767:131:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2139, - "nodeType": "Block", - "src": "1281:91:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2125, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "1299:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2126, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "1304:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "1299:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2128, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2119, - "src": "1307:12:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2124, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1291:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1291:29:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2130, - "nodeType": "ExpressionStatement", - "src": "1291:29:7" - }, - { - "assignments": [ - 2132 - ], - "declarations": [ - { - "constant": false, - "id": 2132, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2139, - "src": "1330:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2131, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1330:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2136, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2133, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "1341:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2134, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "1345:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "1341:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1330:16:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2137, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1364:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2123, - "id": 2138, - "nodeType": "Return", - "src": "1357:8:7" - } - ] - }, - "documentation": { - "id": 2113, - "nodeType": "StructuredDocumentation", - "src": "904:280:7", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2140, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2115, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1202:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2114, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1202:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2117, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1212:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2116, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1212:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2119, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1222:26:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2118, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1222:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1201:48:7" - }, - "returnParameters": { - "id": 2123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2122, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1273:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2121, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1273:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1272:8:7" - }, - "scope": 2262, - "src": "1189:183:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2174, - "nodeType": "Block", - "src": "1683:391:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2150, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "1915:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1920:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1915:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2156, - "nodeType": "IfStatement", - "src": "1911:45:7", - "trueBody": { - "id": 2155, - "nodeType": "Block", - "src": "1923:33:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1944:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 2149, - "id": 2154, - "nodeType": "Return", - "src": "1937:8:7" - } - ] - } - }, - { - "assignments": [ - 2158 - ], - "declarations": [ - { - "constant": false, - "id": 2158, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2174, - "src": "1966:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2157, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1966:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2162, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2159, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "1977:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2160, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "1981:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "1977:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1966:16:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2164, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "2000:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2165, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "2004:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2000:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2167, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2009:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2000:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 2169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2012:35:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 2163, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1992:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1992:56:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2171, - "nodeType": "ExpressionStatement", - "src": "1992:56:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2172, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "2066:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2149, - "id": 2173, - "nodeType": "Return", - "src": "2059:8:7" - } - ] - }, - "documentation": { - "id": 2141, - "nodeType": "StructuredDocumentation", - "src": "1378:236:7", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 2175, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2143, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2175, - "src": "1632:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2142, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1632:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2145, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2175, - "src": "1642:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2144, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1642:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1631:20:7" - }, - "returnParameters": { - "id": 2149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2148, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2175, - "src": "1675:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2147, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1675:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1674:8:7" - }, - "scope": 2262, - "src": "1619:455:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2191, - "nodeType": "Block", - "src": "2600:63:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2621:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "2624:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2627:28:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 2185, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2192, - 2220 - ], - "referencedDeclaration": 2220, - "src": "2617:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" - } - }, - "id": 2189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:39:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2184, - "id": 2190, - "nodeType": "Return", - "src": "2610:46:7" - } - ] - }, - "documentation": { - "id": 2176, - "nodeType": "StructuredDocumentation", - "src": "2080:451:7", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2192, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2178, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2192, - "src": "2549:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2177, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2549:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2180, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2192, - "src": "2559:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2179, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2559:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2548:20:7" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2192, - "src": "2592:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2182, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2592:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2591:8:7" - }, - "scope": 2262, - "src": "2536:127:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2219, - "nodeType": "Block", - "src": "3237:176:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2205, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2197, - "src": "3255:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3255:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2208, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2199, - "src": "3262:12:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3247:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3247:28:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2210, - "nodeType": "ExpressionStatement", - "src": "3247:28:7" - }, - { - "assignments": [ - 2212 - ], - "declarations": [ - { - "constant": false, - "id": 2212, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2219, - "src": "3285:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2211, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3285:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2216, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2213, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "3296:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2214, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2197, - "src": "3300:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "3296:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3285:16:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2217, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2212, - "src": "3405:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2203, - "id": 2218, - "nodeType": "Return", - "src": "3398:8:7" - } - ] - }, - "documentation": { - "id": 2193, - "nodeType": "StructuredDocumentation", - "src": "2669:471:7", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2220, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2195, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3158:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2194, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3158:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2197, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3168:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2196, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3168:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2199, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3178:26:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2198, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3178:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3157:48:7" - }, - "returnParameters": { - "id": 2203, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2202, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3229:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2201, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3229:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3228:8:7" - }, - "scope": 2262, - "src": "3145:268:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2236, - "nodeType": "Block", - "src": "3928:61:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2231, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2223, - "src": "3949:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 2232, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2225, - "src": "3952:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:26:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 2230, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2237, - 2261 - ], - "referencedDeclaration": 2261, - "src": "3945:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" - } - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3945:37:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2229, - "id": 2235, - "nodeType": "Return", - "src": "3938:44:7" - } - ] - }, - "documentation": { - "id": 2221, - "nodeType": "StructuredDocumentation", - "src": "3419:440:7", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2237, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2223, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2237, - "src": "3877:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2222, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3877:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2225, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2237, - "src": "3887:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2224, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3887:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:20:7" - }, - "returnParameters": { - "id": 2229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2228, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2237, - "src": "3920:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2227, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3920:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3919:8:7" - }, - "scope": 2262, - "src": "3864:125:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2260, - "nodeType": "Block", - "src": "4552:68:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2250, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2242, - "src": "4570:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4575:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4570:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2253, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2244, - "src": "4578:12:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2249, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4562:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4562:29:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2255, - "nodeType": "ExpressionStatement", - "src": "4562:29:7" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2256, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4608:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2257, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2242, - "src": "4612:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "4608:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2248, - "id": 2259, - "nodeType": "Return", - "src": "4601:12:7" - } - ] - }, - "documentation": { - "id": 2238, - "nodeType": "StructuredDocumentation", - "src": "3995:460:7", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2261, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2240, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4473:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2239, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4473:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2242, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4483:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2241, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4483:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2244, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4493:26:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2243, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4493:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4472:48:7" - }, - "returnParameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2247, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4544:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2246, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4543:8:7" - }, - "scope": 2262, - "src": "4460:160:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2263, - "src": "70:4552:7" - } - ], - "src": "0:4623:7" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "exportedSymbols": { - "SafeMath64": [ - 2262 - ] - }, - "id": 2263, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2069, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2262, - "linearizedBaseContracts": [ - 2262 - ], - "name": "SafeMath64", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2094, - "nodeType": "Block", - "src": "388:108:7", - "statements": [ - { - "assignments": [ - 2080 - ], - "declarations": [ - { - "constant": false, - "id": 2080, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2094, - "src": "398:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2079, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "398:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2084, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2081, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "409:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2082, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2074, - "src": "413:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "409:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "398:16:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2086, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2080, - "src": "432:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2087, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2072, - "src": "437:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "432:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "440:29:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 2085, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "424:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "424:46:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2091, - "nodeType": "ExpressionStatement", - "src": "424:46:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2092, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2080, - "src": "488:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2078, - "id": 2093, - "nodeType": "Return", - "src": "481:8:7" - } - ] - }, - "documentation": { - "id": 2070, - "nodeType": "StructuredDocumentation", - "src": "95:224:7", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 2095, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2072, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2095, - "src": "337:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2071, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "337:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2074, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2095, - "src": "347:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2073, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "347:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:20:7" - }, - "returnParameters": { - "id": 2078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2077, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2095, - "src": "380:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2076, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "380:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "379:8:7" - }, - "scope": 2262, - "src": "324:172:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2111, - "nodeType": "Block", - "src": "831:67:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2106, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "852:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 2107, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "855:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "858:32:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 2105, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2112, - 2140 - ], - "referencedDeclaration": 2140, - "src": "848:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" - } - }, - "id": 2109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "848:43:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2104, - "id": 2110, - "nodeType": "Return", - "src": "841:50:7" - } - ] - }, - "documentation": { - "id": 2096, - "nodeType": "StructuredDocumentation", - "src": "502:260:7", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2112, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2101, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2098, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2112, - "src": "780:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2097, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "780:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2100, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2112, - "src": "790:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2099, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "790:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "779:20:7" - }, - "returnParameters": { - "id": 2104, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2103, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2112, - "src": "823:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2102, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "823:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "822:8:7" - }, - "scope": 2262, - "src": "767:131:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2139, - "nodeType": "Block", - "src": "1281:91:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2125, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "1299:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2126, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "1304:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "1299:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2128, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2119, - "src": "1307:12:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2124, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1291:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1291:29:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2130, - "nodeType": "ExpressionStatement", - "src": "1291:29:7" - }, - { - "assignments": [ - 2132 - ], - "declarations": [ - { - "constant": false, - "id": 2132, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2139, - "src": "1330:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2131, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1330:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2136, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2133, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "1341:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2134, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "1345:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "1341:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1330:16:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2137, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "1364:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2123, - "id": 2138, - "nodeType": "Return", - "src": "1357:8:7" - } - ] - }, - "documentation": { - "id": 2113, - "nodeType": "StructuredDocumentation", - "src": "904:280:7", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2140, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2115, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1202:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2114, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1202:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2117, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1212:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2116, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1212:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2119, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1222:26:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2118, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1222:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1201:48:7" - }, - "returnParameters": { - "id": 2123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2122, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2140, - "src": "1273:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2121, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1273:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1272:8:7" - }, - "scope": 2262, - "src": "1189:183:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2174, - "nodeType": "Block", - "src": "1683:391:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2150, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "1915:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1920:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1915:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2156, - "nodeType": "IfStatement", - "src": "1911:45:7", - "trueBody": { - "id": 2155, - "nodeType": "Block", - "src": "1923:33:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2153, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1944:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 2149, - "id": 2154, - "nodeType": "Return", - "src": "1937:8:7" - } - ] - } - }, - { - "assignments": [ - 2158 - ], - "declarations": [ - { - "constant": false, - "id": 2158, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2174, - "src": "1966:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2157, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1966:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2162, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2159, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "1977:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2160, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "1981:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "1977:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1966:16:7" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2164, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "2000:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2165, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2143, - "src": "2004:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2000:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2167, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2009:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "2000:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 2169, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2012:35:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 2163, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1992:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1992:56:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2171, - "nodeType": "ExpressionStatement", - "src": "1992:56:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2172, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2158, - "src": "2066:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2149, - "id": 2173, - "nodeType": "Return", - "src": "2059:8:7" - } - ] - }, - "documentation": { - "id": 2141, - "nodeType": "StructuredDocumentation", - "src": "1378:236:7", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 2175, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2143, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2175, - "src": "1632:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2142, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1632:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2145, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2175, - "src": "1642:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2144, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1642:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1631:20:7" - }, - "returnParameters": { - "id": 2149, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2148, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2175, - "src": "1675:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2147, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1675:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1674:8:7" - }, - "scope": 2262, - "src": "1619:455:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2191, - "nodeType": "Block", - "src": "2600:63:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "2621:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "2624:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2627:28:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 2185, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2192, - 2220 - ], - "referencedDeclaration": 2220, - "src": "2617:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" - } - }, - "id": 2189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:39:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2184, - "id": 2190, - "nodeType": "Return", - "src": "2610:46:7" - } - ] - }, - "documentation": { - "id": 2176, - "nodeType": "StructuredDocumentation", - "src": "2080:451:7", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2192, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2178, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2192, - "src": "2549:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2177, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2549:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2180, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2192, - "src": "2559:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2179, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2559:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2548:20:7" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2192, - "src": "2592:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2182, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "2592:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2591:8:7" - }, - "scope": 2262, - "src": "2536:127:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2219, - "nodeType": "Block", - "src": "3237:176:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2205, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2197, - "src": "3255:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3259:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3255:5:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2208, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2199, - "src": "3262:12:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3247:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3247:28:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2210, - "nodeType": "ExpressionStatement", - "src": "3247:28:7" - }, - { - "assignments": [ - 2212 - ], - "declarations": [ - { - "constant": false, - "id": 2212, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2219, - "src": "3285:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2211, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3285:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2216, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2213, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "3296:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2214, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2197, - "src": "3300:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "3296:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3285:16:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 2217, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2212, - "src": "3405:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2203, - "id": 2218, - "nodeType": "Return", - "src": "3398:8:7" - } - ] - }, - "documentation": { - "id": 2193, - "nodeType": "StructuredDocumentation", - "src": "2669:471:7", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2220, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2200, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2195, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3158:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2194, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3158:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2197, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3168:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2196, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3168:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2199, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3178:26:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2198, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3178:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3157:48:7" - }, - "returnParameters": { - "id": 2203, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2202, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2220, - "src": "3229:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2201, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3229:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3228:8:7" - }, - "scope": 2262, - "src": "3145:268:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2236, - "nodeType": "Block", - "src": "3928:61:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2231, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2223, - "src": "3949:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "id": 2232, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2225, - "src": "3952:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:26:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 2230, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2237, - 2261 - ], - "referencedDeclaration": 2261, - "src": "3945:3:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$_t_string_memory_ptr_$returns$_t_uint64_$", - "typeString": "function (uint64,uint64,string memory) pure returns (uint64)" - } - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3945:37:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2229, - "id": 2235, - "nodeType": "Return", - "src": "3938:44:7" - } - ] - }, - "documentation": { - "id": 2221, - "nodeType": "StructuredDocumentation", - "src": "3419:440:7", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2237, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2226, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2223, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2237, - "src": "3877:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2222, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3877:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2225, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2237, - "src": "3887:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2224, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3887:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3876:20:7" - }, - "returnParameters": { - "id": 2229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2228, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2237, - "src": "3920:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2227, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "3920:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3919:8:7" - }, - "scope": 2262, - "src": "3864:125:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2260, - "nodeType": "Block", - "src": "4552:68:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2250, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2242, - "src": "4570:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4575:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4570:6:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2253, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2244, - "src": "4578:12:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2249, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4562:7:7", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4562:29:7", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2255, - "nodeType": "ExpressionStatement", - "src": "4562:29:7" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2256, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4608:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2257, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2242, - "src": "4612:1:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "4608:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 2248, - "id": 2259, - "nodeType": "Return", - "src": "4601:12:7" - } - ] - }, - "documentation": { - "id": 2238, - "nodeType": "StructuredDocumentation", - "src": "3995:460:7", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2261, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2240, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4473:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2239, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4473:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2242, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4483:8:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2241, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4483:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2244, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4493:26:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2243, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4493:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4472:48:7" - }, - "returnParameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2247, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2261, - "src": "4544:6:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 2246, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "4544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4543:8:7" - }, - "scope": 2262, - "src": "4460:160:7", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2263, - "src": "70:4552:7" - } - ], - "src": "0:4623:7" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.554Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/SafeMath8.json b/smart-contracts/build/contracts/SafeMath8.json deleted file mode 100644 index ea6d335651..0000000000 --- a/smart-contracts/build/contracts/SafeMath8.json +++ /dev/null @@ -1,5137 +0,0 @@ -{ - "contractName": "SafeMath8", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":\"SafeMath8\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol\":{\"keccak256\":\"0xad7031eb97c64c9dff0b4db53835514e46c79d710ab873cdd2d36a5fd20b8c1c\",\"urls\":[\"bzz-raw://866dcdd27d00364da1e05739d9d4b586227a66d8bc4a61f4638064774b74e9d2\",\"dweb:/ipfs/QmUbC1VsPf4Cj5xTqMiHcNBo1WLPcmmczp6M3WFAb4cpap\"]}},\"version\":1}", - "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d4ccefe32172b6255ebb1f26c77cbcbe9d67edd020c47a4d88019a9593a9ccc64736f6c634300060c0033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208d4ccefe32172b6255ebb1f26c77cbcbe9d67edd020c47a4d88019a9593a9ccc64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "69:4523:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "69:4523:8:-:0;;;;;;;;", - "source": "pragma solidity ^0.6.0;\n\n// uint8 version of OpenZeppelin's SafeMath\nlibrary SafeMath8 {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint8 a, uint8 b) internal pure returns (uint8) {\n uint8 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint8 a, uint8 b) internal pure returns (uint8) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) {\n require(b <= a, errorMessage);\n uint8 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint8 a, uint8 b) internal pure returns (uint8) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint8 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint8 a, uint8 b) internal pure returns (uint8) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) {\n require(b > 0, errorMessage);\n uint8 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint8 a, uint8 b) internal pure returns (uint8) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", - "exportedSymbols": { - "SafeMath8": [ - 2457 - ] - }, - "id": 2458, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2264, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2457, - "linearizedBaseContracts": [ - 2457 - ], - "name": "SafeMath8", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2289, - "nodeType": "Block", - "src": "383:107:8", - "statements": [ - { - "assignments": [ - 2275 - ], - "declarations": [ - { - "constant": false, - "id": 2275, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2289, - "src": "393:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2274, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "393:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2276, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "403:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2277, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "407:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "403:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "393:15:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2281, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2275, - "src": "426:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2282, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "431:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "426:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 2284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "434:29:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 2280, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "418:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "418:46:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2286, - "nodeType": "ExpressionStatement", - "src": "418:46:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2287, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2275, - "src": "482:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2273, - "id": 2288, - "nodeType": "Return", - "src": "475:8:8" - } - ] - }, - "documentation": { - "id": 2265, - "nodeType": "StructuredDocumentation", - "src": "93:224:8", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 2290, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2267, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2290, - "src": "335:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2266, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "335:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2269, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2290, - "src": "344:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2268, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "344:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "334:18:8" - }, - "returnParameters": { - "id": 2273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2272, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2290, - "src": "376:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2271, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "376:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "375:7:8" - }, - "scope": 2457, - "src": "322:168:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2306, - "nodeType": "Block", - "src": "822:67:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2301, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2293, - "src": "843:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2302, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "846:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "849:32:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 2300, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2307, - 2335 - ], - "referencedDeclaration": 2335, - "src": "839:3:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", - "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" - } - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "839:43:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2299, - "id": 2305, - "nodeType": "Return", - "src": "832:50:8" - } - ] - }, - "documentation": { - "id": 2291, - "nodeType": "StructuredDocumentation", - "src": "496:260:8", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2293, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2307, - "src": "774:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2292, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "774:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2295, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2307, - "src": "783:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2294, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "783:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "773:18:8" - }, - "returnParameters": { - "id": 2299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2298, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2307, - "src": "815:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2297, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "815:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "814:7:8" - }, - "scope": 2457, - "src": "761:128:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2334, - "nodeType": "Block", - "src": "1269:90:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2320, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2312, - "src": "1287:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2321, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2310, - "src": "1292:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1287:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2323, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2314, - "src": "1295:12:8", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2319, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1279:29:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2325, - "nodeType": "ExpressionStatement", - "src": "1279:29:8" - }, - { - "assignments": [ - 2327 - ], - "declarations": [ - { - "constant": false, - "id": 2327, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2334, - "src": "1318:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2326, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1318:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2331, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2328, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2310, - "src": "1328:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2329, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2312, - "src": "1332:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1328:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1318:15:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2332, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "1351:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2318, - "id": 2333, - "nodeType": "Return", - "src": "1344:8:8" - } - ] - }, - "documentation": { - "id": 2308, - "nodeType": "StructuredDocumentation", - "src": "895:280:8", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2310, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1193:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2309, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1193:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2312, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1202:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2311, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1202:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2314, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1211:26:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2313, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1211:6:8", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1192:46:8" - }, - "returnParameters": { - "id": 2318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2317, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1262:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2316, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1262:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1261:7:8" - }, - "scope": 2457, - "src": "1180:179:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2369, - "nodeType": "Block", - "src": "1667:390:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2345, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2338, - "src": "1899:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1904:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1899:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2351, - "nodeType": "IfStatement", - "src": "1895:45:8", - "trueBody": { - "id": 2350, - "nodeType": "Block", - "src": "1907:33:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1928:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 2344, - "id": 2349, - "nodeType": "Return", - "src": "1921:8:8" - } - ] - } - }, - { - "assignments": [ - 2353 - ], - "declarations": [ - { - "constant": false, - "id": 2353, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2369, - "src": "1950:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2352, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1950:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2357, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2354, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2338, - "src": "1960:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2355, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2340, - "src": "1964:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1960:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1950:15:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2359, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2353, - "src": "1983:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2360, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2338, - "src": "1987:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1983:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2362, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2340, - "src": "1992:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1983:10:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 2364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1995:35:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 2358, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1975:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1975:56:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2366, - "nodeType": "ExpressionStatement", - "src": "1975:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2367, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2353, - "src": "2049:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2344, - "id": 2368, - "nodeType": "Return", - "src": "2042:8:8" - } - ] - }, - "documentation": { - "id": 2336, - "nodeType": "StructuredDocumentation", - "src": "1365:236:8", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 2370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2338, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2370, - "src": "1619:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2337, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1619:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2340, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2370, - "src": "1628:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2339, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1628:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1618:18:8" - }, - "returnParameters": { - "id": 2344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2343, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2370, - "src": "1660:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2342, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1660:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1659:7:8" - }, - "scope": 2457, - "src": "1606:451:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2386, - "nodeType": "Block", - "src": "2580:63:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2381, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "2601:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2382, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "2604:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 2383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2607:28:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 2380, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2387, - 2415 - ], - "referencedDeclaration": 2415, - "src": "2597:3:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", - "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" - } - }, - "id": 2384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2597:39:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2379, - "id": 2385, - "nodeType": "Return", - "src": "2590:46:8" - } - ] - }, - "documentation": { - "id": 2371, - "nodeType": "StructuredDocumentation", - "src": "2063:451:8", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2387, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2373, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2387, - "src": "2532:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2372, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2532:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2375, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2387, - "src": "2541:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2374, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2541:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2531:18:8" - }, - "returnParameters": { - "id": 2379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2378, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2387, - "src": "2573:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2377, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2573:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2572:7:8" - }, - "scope": 2457, - "src": "2519:124:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2414, - "nodeType": "Block", - "src": "3214:175:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2400, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3232:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3236:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3232:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2403, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "3239:12:8", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2399, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3224:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3224:28:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2405, - "nodeType": "ExpressionStatement", - "src": "3224:28:8" - }, - { - "assignments": [ - 2407 - ], - "declarations": [ - { - "constant": false, - "id": 2407, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2414, - "src": "3262:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2406, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3262:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2411, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2408, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "3272:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2409, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3276:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3272:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3262:15:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2412, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "3381:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2398, - "id": 2413, - "nodeType": "Return", - "src": "3374:8:8" - } - ] - }, - "documentation": { - "id": 2388, - "nodeType": "StructuredDocumentation", - "src": "2649:471:8", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2415, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2395, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2390, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3138:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2389, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3138:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2392, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3147:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2391, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3147:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2394, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3156:26:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2393, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3156:6:8", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3137:46:8" - }, - "returnParameters": { - "id": 2398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2397, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3207:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2396, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3207:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3206:7:8" - }, - "scope": 2457, - "src": "3125:264:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2431, - "nodeType": "Block", - "src": "3901:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2426, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3922:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2427, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3925:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 2428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3928:26:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 2425, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2432, - 2456 - ], - "referencedDeclaration": 2456, - "src": "3918:3:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", - "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" - } - }, - "id": 2429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3918:37:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2424, - "id": 2430, - "nodeType": "Return", - "src": "3911:44:8" - } - ] - }, - "documentation": { - "id": 2416, - "nodeType": "StructuredDocumentation", - "src": "3395:440:8", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2432, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2418, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2432, - "src": "3853:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2417, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3853:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2420, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2432, - "src": "3862:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2419, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3862:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3852:18:8" - }, - "returnParameters": { - "id": 2424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2423, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2432, - "src": "3894:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2422, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3894:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3893:7:8" - }, - "scope": 2457, - "src": "3840:122:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2455, - "nodeType": "Block", - "src": "4522:68:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2445, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "4540:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4545:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4540:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2448, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2439, - "src": "4548:12:8", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2444, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4532:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:29:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2450, - "nodeType": "ExpressionStatement", - "src": "4532:29:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2451, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "4578:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2452, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "4582:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4578:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2443, - "id": 2454, - "nodeType": "Return", - "src": "4571:12:8" - } - ] - }, - "documentation": { - "id": 2433, - "nodeType": "StructuredDocumentation", - "src": "3968:460:8", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2456, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2440, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2435, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4446:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2434, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4446:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2437, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4455:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2436, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4455:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2439, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4464:26:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2438, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4464:6:8", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4445:46:8" - }, - "returnParameters": { - "id": 2443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2442, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4515:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2441, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4515:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4514:7:8" - }, - "scope": 2457, - "src": "4433:157:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2458, - "src": "69:4523:8" - } - ], - "src": "0:4593:8" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath8.sol", - "exportedSymbols": { - "SafeMath8": [ - 2457 - ] - }, - "id": 2458, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2264, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:8" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 2457, - "linearizedBaseContracts": [ - 2457 - ], - "name": "SafeMath8", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2289, - "nodeType": "Block", - "src": "383:107:8", - "statements": [ - { - "assignments": [ - 2275 - ], - "declarations": [ - { - "constant": false, - "id": 2275, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2289, - "src": "393:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2274, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "393:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2276, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "403:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 2277, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "407:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "403:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "393:15:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2283, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2281, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2275, - "src": "426:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 2282, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2267, - "src": "431:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "426:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", - "id": 2284, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "434:29:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - }, - "value": "SafeMath: addition overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", - "typeString": "literal_string \"SafeMath: addition overflow\"" - } - ], - "id": 2280, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "418:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "418:46:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2286, - "nodeType": "ExpressionStatement", - "src": "418:46:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2287, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2275, - "src": "482:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2273, - "id": 2288, - "nodeType": "Return", - "src": "475:8:8" - } - ] - }, - "documentation": { - "id": 2265, - "nodeType": "StructuredDocumentation", - "src": "93:224:8", - "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." - }, - "id": 2290, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2267, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2290, - "src": "335:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2266, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "335:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2269, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2290, - "src": "344:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2268, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "344:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "334:18:8" - }, - "returnParameters": { - "id": 2273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2272, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2290, - "src": "376:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2271, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "376:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "375:7:8" - }, - "scope": 2457, - "src": "322:168:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2306, - "nodeType": "Block", - "src": "822:67:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2301, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2293, - "src": "843:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2302, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "846:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "849:32:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - }, - "value": "SafeMath: subtraction overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", - "typeString": "literal_string \"SafeMath: subtraction overflow\"" - } - ], - "id": 2300, - "name": "sub", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2307, - 2335 - ], - "referencedDeclaration": 2335, - "src": "839:3:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", - "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" - } - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "839:43:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2299, - "id": 2305, - "nodeType": "Return", - "src": "832:50:8" - } - ] - }, - "documentation": { - "id": 2291, - "nodeType": "StructuredDocumentation", - "src": "496:260:8", - "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2307, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2296, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2293, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2307, - "src": "774:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2292, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "774:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2295, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2307, - "src": "783:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2294, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "783:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "773:18:8" - }, - "returnParameters": { - "id": 2299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2298, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2307, - "src": "815:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2297, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "815:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "814:7:8" - }, - "scope": 2457, - "src": "761:128:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2334, - "nodeType": "Block", - "src": "1269:90:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2320, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2312, - "src": "1287:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 2321, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2310, - "src": "1292:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1287:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2323, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2314, - "src": "1295:12:8", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2319, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1279:29:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2325, - "nodeType": "ExpressionStatement", - "src": "1279:29:8" - }, - { - "assignments": [ - 2327 - ], - "declarations": [ - { - "constant": false, - "id": 2327, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2334, - "src": "1318:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2326, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1318:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2331, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2328, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2310, - "src": "1328:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 2329, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2312, - "src": "1332:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1328:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1318:15:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2332, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2327, - "src": "1351:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2318, - "id": 2333, - "nodeType": "Return", - "src": "1344:8:8" - } - ] - }, - "documentation": { - "id": 2308, - "nodeType": "StructuredDocumentation", - "src": "895:280:8", - "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." - }, - "id": 2335, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2310, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1193:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2309, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1193:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2312, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1202:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2311, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1202:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2314, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1211:26:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2313, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1211:6:8", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1192:46:8" - }, - "returnParameters": { - "id": 2318, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2317, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2335, - "src": "1262:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2316, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1262:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1261:7:8" - }, - "scope": 2457, - "src": "1180:179:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2369, - "nodeType": "Block", - "src": "1667:390:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2345, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2338, - "src": "1899:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2346, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1904:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1899:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2351, - "nodeType": "IfStatement", - "src": "1895:45:8", - "trueBody": { - "id": 2350, - "nodeType": "Block", - "src": "1907:33:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1928:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 2344, - "id": 2349, - "nodeType": "Return", - "src": "1921:8:8" - } - ] - } - }, - { - "assignments": [ - 2353 - ], - "declarations": [ - { - "constant": false, - "id": 2353, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2369, - "src": "1950:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2352, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1950:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2357, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2354, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2338, - "src": "1960:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 2355, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2340, - "src": "1964:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1960:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1950:15:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2359, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2353, - "src": "1983:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2360, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2338, - "src": "1987:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1983:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2362, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2340, - "src": "1992:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "1983:10:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", - "id": 2364, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1995:35:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - }, - "value": "SafeMath: multiplication overflow" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", - "typeString": "literal_string \"SafeMath: multiplication overflow\"" - } - ], - "id": 2358, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1975:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1975:56:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2366, - "nodeType": "ExpressionStatement", - "src": "1975:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2367, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2353, - "src": "2049:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2344, - "id": 2368, - "nodeType": "Return", - "src": "2042:8:8" - } - ] - }, - "documentation": { - "id": 2336, - "nodeType": "StructuredDocumentation", - "src": "1365:236:8", - "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." - }, - "id": 2370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2338, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2370, - "src": "1619:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2337, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1619:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2340, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2370, - "src": "1628:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2339, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1628:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1618:18:8" - }, - "returnParameters": { - "id": 2344, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2343, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2370, - "src": "1660:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2342, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1660:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1659:7:8" - }, - "scope": 2457, - "src": "1606:451:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2386, - "nodeType": "Block", - "src": "2580:63:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2381, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2373, - "src": "2601:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2382, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2375, - "src": "2604:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", - "id": 2383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2607:28:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - }, - "value": "SafeMath: division by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", - "typeString": "literal_string \"SafeMath: division by zero\"" - } - ], - "id": 2380, - "name": "div", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2387, - 2415 - ], - "referencedDeclaration": 2415, - "src": "2597:3:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", - "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" - } - }, - "id": 2384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2597:39:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2379, - "id": 2385, - "nodeType": "Return", - "src": "2590:46:8" - } - ] - }, - "documentation": { - "id": 2371, - "nodeType": "StructuredDocumentation", - "src": "2063:451:8", - "text": " @dev Returns the integer division of two unsigned integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2387, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2376, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2373, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2387, - "src": "2532:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2372, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2532:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2375, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2387, - "src": "2541:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2374, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2541:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2531:18:8" - }, - "returnParameters": { - "id": 2379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2378, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2387, - "src": "2573:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2377, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2573:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2572:7:8" - }, - "scope": 2457, - "src": "2519:124:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2414, - "nodeType": "Block", - "src": "3214:175:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2400, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3232:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3236:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3232:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2403, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2394, - "src": "3239:12:8", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2399, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "3224:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3224:28:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2405, - "nodeType": "ExpressionStatement", - "src": "3224:28:8" - }, - { - "assignments": [ - 2407 - ], - "declarations": [ - { - "constant": false, - "id": 2407, - "mutability": "mutable", - "name": "c", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2414, - "src": "3262:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2406, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3262:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2411, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2408, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "3272:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 2409, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2392, - "src": "3276:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3272:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3262:15:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 2412, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "3381:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2398, - "id": 2413, - "nodeType": "Return", - "src": "3374:8:8" - } - ] - }, - "documentation": { - "id": 2388, - "nodeType": "StructuredDocumentation", - "src": "2649:471:8", - "text": " @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2415, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2395, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2390, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3138:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2389, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3138:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2392, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3147:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2391, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3147:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2394, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3156:26:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2393, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3156:6:8", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3137:46:8" - }, - "returnParameters": { - "id": 2398, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2397, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2415, - "src": "3207:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2396, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3207:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3206:7:8" - }, - "scope": 2457, - "src": "3125:264:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2431, - "nodeType": "Block", - "src": "3901:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2426, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3922:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2427, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3925:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", - "id": 2428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3928:26:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - }, - "value": "SafeMath: modulo by zero" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", - "typeString": "literal_string \"SafeMath: modulo by zero\"" - } - ], - "id": 2425, - "name": "mod", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2432, - 2456 - ], - "referencedDeclaration": 2456, - "src": "3918:3:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint8_$_t_string_memory_ptr_$returns$_t_uint8_$", - "typeString": "function (uint8,uint8,string memory) pure returns (uint8)" - } - }, - "id": 2429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3918:37:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2424, - "id": 2430, - "nodeType": "Return", - "src": "3911:44:8" - } - ] - }, - "documentation": { - "id": 2416, - "nodeType": "StructuredDocumentation", - "src": "3395:440:8", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2432, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2421, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2418, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2432, - "src": "3853:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2417, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3853:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2420, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2432, - "src": "3862:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2419, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3862:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3852:18:8" - }, - "returnParameters": { - "id": 2424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2423, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2432, - "src": "3894:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2422, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "3894:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3893:7:8" - }, - "scope": 2457, - "src": "3840:122:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "body": { - "id": 2455, - "nodeType": "Block", - "src": "4522:68:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2445, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "4540:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4545:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4540:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 2448, - "name": "errorMessage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2439, - "src": "4548:12:8", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 2444, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "4532:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:29:8", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2450, - "nodeType": "ExpressionStatement", - "src": "4532:29:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2451, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "4578:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "%", - "rightExpression": { - "argumentTypes": null, - "id": 2452, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "4582:1:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "4578:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 2443, - "id": 2454, - "nodeType": "Return", - "src": "4571:12:8" - } - ] - }, - "documentation": { - "id": 2433, - "nodeType": "StructuredDocumentation", - "src": "3968:460:8", - "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n Reverts with custom message when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." - }, - "id": 2456, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mod", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 2440, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2435, - "mutability": "mutable", - "name": "a", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4446:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2434, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4446:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2437, - "mutability": "mutable", - "name": "b", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4455:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2436, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4455:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2439, - "mutability": "mutable", - "name": "errorMessage", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4464:26:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2438, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4464:6:8", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4445:46:8" - }, - "returnParameters": { - "id": 2443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2442, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 2456, - "src": "4515:5:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2441, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "4515:5:8", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4514:7:8" - }, - "scope": 2457, - "src": "4433:157:8", - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - } - ], - "scope": 2458, - "src": "69:4523:8" - } - ], - "src": "0:4593:8" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.558Z", - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/build/contracts/VideoStorage.json b/smart-contracts/build/contracts/VideoStorage.json deleted file mode 100644 index 4aed567d29..0000000000 --- a/smart-contracts/build/contracts/VideoStorage.json +++ /dev/null @@ -1,3873 +0,0 @@ -{ - "contractName": "VideoStorage", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "transferOwnership", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "name": "videoCountByChannelId", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_channelId", - "type": "uint64" - } - ], - "name": "addVideo", - "outputs": [ - { - "internalType": "uint64", - "name": "", - "type": "uint64" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - } - ], - "name": "getExistingVideo", - "outputs": [ - { - "components": [ - { - "internalType": "uint64", - "name": "channelId", - "type": "uint64" - }, - { - "internalType": "bool", - "name": "isActive", - "type": "bool" - }, - { - "internalType": "bool", - "name": "isExisting", - "type": "bool" - } - ], - "internalType": "struct Video", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - }, - { - "internalType": "bool", - "name": "_isActive", - "type": "bool" - } - ], - "name": "updateStatus", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint64", - "name": "_videoId", - "type": "uint64" - } - ], - "name": "removeVideo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_channelId\",\"type\":\"uint64\"}],\"name\":\"addVideo\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"getExistingVideo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"channelId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"isActive\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isExisting\",\"type\":\"bool\"}],\"internalType\":\"struct Video\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"}],\"name\":\"removeVideo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_videoId\",\"type\":\"uint64\"},{\"internalType\":\"bool\",\"name\":\"_isActive\",\"type\":\"bool\"}],\"name\":\"updateStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"name\":\"videoCountByChannelId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol\":\"VideoStorage\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1},\"remappings\":[]},\"sources\":{\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol\":{\"keccak256\":\"0x8bc82907895f53b4869d0eb1339c36dd119e8e8e7befd1d421f6d4a174d8fb94\",\"urls\":[\"bzz-raw://203dddf705e0e2fdff34da4c82b475ad2a7eb104a09dd0948d0684b1ad4efb9f\",\"dweb:/ipfs/QmXSiwFynjS9UEwgV5s6kZCEuYDG6h9tmTNcgS7iAH6NJu\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol\":{\"keccak256\":\"0xeaa1d2609e979107c346e8eb52b83e91732fc79478223c32ee165f9a9c2af6a6\",\"urls\":[\"bzz-raw://60135b3b62c8841761048ae81b4adf4e60f237e4498c9bdc391dde6cfaad689f\",\"dweb:/ipfs/QmaRQsMewgAEkdYxHgm5c8FXuNomwr6p9LAxiGBTEpUn5u\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]}},\"version\":1}", - "bytecode": "0x6080604052600380546001600160401b031916600117905534801561002357600080fd5b50600061002e61007d565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610081565b3390565b61081b806100906000396000f3fe608060405234801561001057600080fd5b50600436106100785760003560e01c8063010529821461007d578063715018a6146100a6578063750a1063146100b05780638da5cb5b146100d05780639a055bbf146100e55780639d8d51f8146100f8578063b5b9dc911461010b578063f2fde38b1461011e575b600080fd5b61009061008b3660046105bd565b610131565b60405161009d91906107b1565b60405180910390f35b6100ae61014c565b005b6100c36100be3660046105bd565b6101c2565b60405161009d9190610783565b6100d8610246565b60405161009d919061062b565b6100ae6100f33660046105bd565b610255565b6100906101063660046105bd565b6102e7565b6100ae6101193660046105e4565b6103ab565b6100ae61012c366004610596565b610415565b6002602052600090815260409020546001600160401b031681565b6101546104b9565b6000546001600160a01b0390811691161461018a5760405162461bcd60e51b81526004016101819061070d565b60405180910390fd5b600080546040516001600160a01b03909116906000805160206107c6833981519152908390a3600080546001600160a01b0319169055565b6101ca610576565b6101d2610576565b506001600160401b0380831660009081526001602090815260409182902082516060810184529054938416815260ff600160401b85048116151592820192909252600160481b9093041615159082018190526102405760405162461bcd60e51b815260040161018190610742565b92915050565b6000546001600160a01b031690565b61025d6104b9565b6000546001600160a01b0390811691161461028a5760405162461bcd60e51b81526004016101819061070d565b6001600160401b03808216600090815260016020818152604080842054851684526002909152909120546102bf9216906104bd565b506001600160401b0316600090815260016020526040902080546001600160501b0319169055565b60006102f16104b9565b6000546001600160a01b0390811691161461031e5760405162461bcd60e51b81526004016101819061070d565b6003546001600160401b0390811660008181526001602081815260408084208054600160401b600160481b60ff60481b199092169190911760ff60401b1916176001600160401b031916898816908117825585526002909252909220549293919261038a921690610506565b506003546103a2906001600160401b03166001610506565b50909392505050565b6103b36104b9565b6000546001600160a01b039081169116146103e05760405162461bcd60e51b81526004016101819061070d565b6001600160401b0390911660009081526001602052604090208054911515600160401b0260ff60401b19909216919091179055565b61041d6104b9565b6000546001600160a01b0390811691161461044a5760405162461bcd60e51b81526004016101819061070d565b6001600160a01b0381166104705760405162461bcd60e51b815260040161018190610692565b600080546040516001600160a01b03808516939216916000805160206107c683398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60006104ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610537565b9392505050565b60008282016001600160401b0380851690821610156104ff5760405162461bcd60e51b8152600401610181906106d8565b6000836001600160401b0316836001600160401b03161115829061056e5760405162461bcd60e51b8152600401610181919061063f565b505050900390565b604080516060810182526000808252602082018190529181019190915290565b6000602082840312156105a7578081fd5b81356001600160a01b03811681146104ff578182fd5b6000602082840312156105ce578081fd5b81356001600160401b03811681146104ff578182fd5b600080604083850312156105f6578081fd5b82356001600160401b038116811461060c578182fd5b915060208301358015158114610620578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b8181101561066b5785810183015185820160400152820161064f565b8181111561067c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e6720766964656040820152606f60f81b606082015260800190565b81516001600160401b0316815260208083015115159082015260409182015115159181019190915260600190565b6001600160401b039190911681526020019056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220bfe2b6e1714a633139d3e0680422359b56bdcc045055314ce8472504e979bb0d64736f6c634300060c0033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100785760003560e01c8063010529821461007d578063715018a6146100a6578063750a1063146100b05780638da5cb5b146100d05780639a055bbf146100e55780639d8d51f8146100f8578063b5b9dc911461010b578063f2fde38b1461011e575b600080fd5b61009061008b3660046105bd565b610131565b60405161009d91906107b1565b60405180910390f35b6100ae61014c565b005b6100c36100be3660046105bd565b6101c2565b60405161009d9190610783565b6100d8610246565b60405161009d919061062b565b6100ae6100f33660046105bd565b610255565b6100906101063660046105bd565b6102e7565b6100ae6101193660046105e4565b6103ab565b6100ae61012c366004610596565b610415565b6002602052600090815260409020546001600160401b031681565b6101546104b9565b6000546001600160a01b0390811691161461018a5760405162461bcd60e51b81526004016101819061070d565b60405180910390fd5b600080546040516001600160a01b03909116906000805160206107c6833981519152908390a3600080546001600160a01b0319169055565b6101ca610576565b6101d2610576565b506001600160401b0380831660009081526001602090815260409182902082516060810184529054938416815260ff600160401b85048116151592820192909252600160481b9093041615159082018190526102405760405162461bcd60e51b815260040161018190610742565b92915050565b6000546001600160a01b031690565b61025d6104b9565b6000546001600160a01b0390811691161461028a5760405162461bcd60e51b81526004016101819061070d565b6001600160401b03808216600090815260016020818152604080842054851684526002909152909120546102bf9216906104bd565b506001600160401b0316600090815260016020526040902080546001600160501b0319169055565b60006102f16104b9565b6000546001600160a01b0390811691161461031e5760405162461bcd60e51b81526004016101819061070d565b6003546001600160401b0390811660008181526001602081815260408084208054600160401b600160481b60ff60481b199092169190911760ff60401b1916176001600160401b031916898816908117825585526002909252909220549293919261038a921690610506565b506003546103a2906001600160401b03166001610506565b50909392505050565b6103b36104b9565b6000546001600160a01b039081169116146103e05760405162461bcd60e51b81526004016101819061070d565b6001600160401b0390911660009081526001602052604090208054911515600160401b0260ff60401b19909216919091179055565b61041d6104b9565b6000546001600160a01b0390811691161461044a5760405162461bcd60e51b81526004016101819061070d565b6001600160a01b0381166104705760405162461bcd60e51b815260040161018190610692565b600080546040516001600160a01b03808516939216916000805160206107c683398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b60006104ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610537565b9392505050565b60008282016001600160401b0380851690821610156104ff5760405162461bcd60e51b8152600401610181906106d8565b6000836001600160401b0316836001600160401b03161115829061056e5760405162461bcd60e51b8152600401610181919061063f565b505050900390565b604080516060810182526000808252602082018190529181019190915290565b6000602082840312156105a7578081fd5b81356001600160a01b03811681146104ff578182fd5b6000602082840312156105ce578081fd5b81356001600160401b03811681146104ff578182fd5b600080604083850312156105f6578081fd5b82356001600160401b038116811461060c578182fd5b915060208301358015158114610620578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b6000602080835283518082850152825b8181101561066b5785810183015185820160400152820161064f565b8181111561067c5783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601b908201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f547279696e6720746f2061636365737320756e6578697374696e6720766964656040820152606f60f81b606082015260800190565b81516001600160401b0316815260208083015115159082015260409182015115159181019190915260600190565b6001600160401b039190911681526020019056fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220bfe2b6e1714a633139d3e0680422359b56bdcc045055314ce8472504e979bb0d64736f6c634300060c0033", - "immutableReferences": {}, - "sourceMap": "305:1439:11:-:0;;;608:22;;;-1:-1:-1;;;;;;608:22:11;629:1;608:22;;;305:1439;;;;;;;;;-1:-1:-1;865:17:14;885:12;:10;:12::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:14;-1:-1:-1;;;;;907:18:14;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:14;940:43;;907:6;;940:43;831:159;305:1439:11;;590:104:13;677:10;590:104;:::o;305:1439:11:-;;;;;;;", - "deployedSourceMap": "305:1439:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;487:55;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1689:145:14;;;:::i;:::-;;1081:208:11;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1066:77:14:-;;;:::i;:::-;;;;;;;:::i;1503:239:11:-;;;;;;:::i;:::-;;:::i;637:399::-;;;;;;:::i;:::-;;:::i;1292:205::-;;;;;;:::i;:::-;;:::i;1983:240:14:-;;;;;;:::i;:::-;;:::i;487:55:11:-;;;;;;;;;;;;-1:-1:-1;;;;;487:55:11;;:::o;1689:145:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;;;;;;;;;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:14;;::::1;::::0;-1:-1:-1;;;;;;;;;;;1758:40:14;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:14::1;::::0;;1689:145::o;1081:208:11:-;1145:12;;:::i;:::-;1163:18;;:::i;:::-;-1:-1:-1;;;;;;1184:19:11;;;;;;;:9;:19;;;;;;;;;1163:40;;;;;;;;;;;;;;;-1:-1:-1;;;1163:40:11;;;;;;;;;;;;;-1:-1:-1;;;1163:40:11;;;;;;;;;;;;1207:62;;;;-1:-1:-1;;;1207:62:11;;;;;;;:::i;:::-;1280:5;1081:208;-1:-1:-1;;1081:208:11:o;1066:77:14:-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:14;1066:77;:::o;1503:239:11:-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;1614:19:11;;::::1;1592:52;1614:19:::0;;;1649:1:::1;1614:19;::::0;;;;;;;:29;;::::1;1592:52:::0;;:21:::1;:52:::0;;;;;;;:59:::1;::::0;:52:::1;::::0;:56:::1;:59::i;:::-;-1:-1:-1::0;;;;;;1719:19:11::1;;::::0;;;:9:::1;:19;::::0;;;;1712:26;;-1:-1:-1;;;;;;1712:26:11;;;1503:239::o;637:399::-;701:6;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;730:11:11::1;::::0;-1:-1:-1;;;;;730:11:11;;::::1;713:14;791:18:::0;;;730:11;791:18:::1;::::0;;;;;;;838:26;;-1:-1:-1;;;;;;;;;;838:26:11;;::::1;::::0;;;::::1;-1:-1:-1::0;;;;868:24:11::1;;-1:-1:-1::0;;;;;;896:31:11::1;::::0;;::::1;::::0;;::::1;::::0;;952:33;;:21:::1;:33:::0;;;;;;;730:11;;791:18;;952:40:::1;::::0;:33:::1;::::0;:37:::1;:40::i;:::-;-1:-1:-1::0;996:11:11::1;::::0;:18:::1;::::0;-1:-1:-1;;;;;996:11:11::1;1012:1;996:15;:18::i;:::-;-1:-1:-1::0;1025:7:11;;637:399;-1:-1:-1;;;637:399:11:o;1292:205::-;1280:12:14;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;1412:19:11;;::::1;1390;1412::::0;;;:9:::1;:19;::::0;;;;1467:26;;;::::1;;-1:-1:-1::0;;;1467:26:11::1;-1:-1:-1::0;;;;1467:26:11;;::::1;::::0;;;::::1;::::0;;1292:205::o;1983:240:14:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:14;;;:22;;;1262:67;;;;-1:-1:-1;;;1262:67:14;;;;;;;:::i;:::-;-1:-1:-1;;;;;2071:22:14;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:14::1;;;;;;;:::i;:::-;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:14;;::::1;::::0;2172:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;2151:38:14;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:14::1;-1:-1:-1::0;;;;;2199:17:14;;;::::1;::::0;;;::::1;::::0;;1983:240::o;590:104:13:-;677:10;590:104;:::o;767:131:7:-;823:6;848:43;852:1;855;848:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;841:50;767:131;-1:-1:-1;;;767:131:7:o;324:172::-;380:6;409:5;;;-1:-1:-1;;;;;432:6:7;;;;;;;;424:46;;;;-1:-1:-1;;;424:46:7;;;;;;;:::i;1189:183::-;1273:6;1304:1;-1:-1:-1;;;;;1299:6:7;:1;-1:-1:-1;;;;;1299:6:7;;;1307:12;1291:29;;;;;-1:-1:-1;;;1291:29:7;;;;;;;;:::i;:::-;-1:-1:-1;;;1341:5:7;;;1189:183::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;408:241::-;;512:2;500:9;491:7;487:23;483:32;480:2;;;-1:-1;;518:12;480:2;72:20;;-1:-1;;;;;7512:54;;8122:35;;8112:2;;-1:-1;;8161:12;656:239;;759:2;747:9;738:7;734:23;730:32;727:2;;;-1:-1;;765:12;727:2;339:20;;-1:-1;;;;;7639:30;;8363:34;;8353:2;;-1:-1;;8401:12;902:358;;;1019:2;1007:9;998:7;994:23;990:32;987:2;;;-1:-1;;1025:12;987:2;339:20;;-1:-1;;;;;7639:30;;8363:34;;8353:2;;-1:-1;;8401:12;8353:2;1077:62;-1:-1;1176:2;1212:22;;206:20;7424:13;;7417:21;8243:32;;8233:2;;-1:-1;;8279:12;8233:2;1184:60;;;;981:279;;;;;:::o;4175:222::-;-1:-1;;;;;7512:54;;;;1338:37;;4302:2;4287:18;;4273:124::o;4404:310::-;;4551:2;;4572:17;4565:47;1633:5;7047:12;7204:6;4551:2;4540:9;4536:18;7192:19;-1:-1;7754:101;7768:6;7765:1;7762:13;7754:101;;;7835:11;;;;;7829:18;7816:11;;;7232:14;7816:11;7809:39;7783:10;;7754:101;;;7870:6;7867:1;7864:13;7861:2;;;-1:-1;7232:14;7926:6;4540:9;7917:16;;7910:27;7861:2;-1:-1;8042:7;8026:14;-1:-1;;8022:28;1791:39;;;;7232:14;1791:39;;4522:192;-1:-1;;;4522:192::o;4721:416::-;4921:2;4935:47;;;2067:2;4906:18;;;7192:19;2103:34;7232:14;;;2083:55;-1:-1;;;2158:12;;;2151:30;2200:12;;;4892:245::o;5144:416::-;5344:2;5358:47;;;2451:2;5329:18;;;7192:19;-1:-1;;;7232:14;;;2467:50;2536:12;;;5315:245::o;5567:416::-;5767:2;5781:47;;;5752:18;;;7192:19;2823:34;7232:14;;;2803:55;2877:12;;;5738:245::o;5990:416::-;6190:2;6204:47;;;3128:2;6175:18;;;7192:19;3164:34;7232:14;;;3144:55;-1:-1;;;3219:12;;;3212:25;3256:12;;;6161:245::o;6413:314::-;3527:23;;-1:-1;;;;;7639:30;4010:36;;3700:4;3689:16;;;3683:23;7424:13;7417:21;3754:14;;;1442:34;7650:18;3843:16;;;3837:23;7424:13;7417:21;3908:14;;;1442:34;;;;6586:2;6571:18;;6557:170::o;6734:218::-;-1:-1;;;;;7639:30;;;;4010:36;;6859:2;6844:18;;6830:122::o", - "source": "pragma solidity ^0.6.0;\npragma experimental ABIEncoderV2;\n\nimport \"../../node_modules/@openzeppelin/contracts/access/Ownable.sol\";\nimport \"../lib/SafeMath64.sol\";\n\n// Any change to this struct requires VideoStorage migration\nstruct Video {\n uint64 channelId;\n bool isActive;\n bool isExisting;\n}\n\ncontract VideoStorage is Ownable {\n\tusing SafeMath64 for uint64;\n\n mapping (uint64 => Video) private videoById;\n\t// TODO: Use logic contract to update this in ChannelStorage?\n mapping (uint64 => uint64) public videoCountByChannelId; // TODO: Either u32 or update this in logic for consistency\n uint64 nextVideoId = 1;\n\n function addVideo (uint64 _channelId) public onlyOwner returns (uint64) {\n\t\tuint64 videoId = nextVideoId;\n\t\t// Get storage ref\n\t\tVideo storage newVideo = videoById[videoId];\n\t\t// Populate the struct\n\t\tnewVideo.isExisting = true;\n\t\tnewVideo.isActive = true;\n\t\tnewVideo.channelId = _channelId;\n\t\t// Update counters\n\t\tvideoCountByChannelId[_channelId].add(1);\n\t\tnextVideoId.add(1);\n\t\treturn videoId;\n\t}\n\n\t// Get channel + perform existance check\n\tfunction getExistingVideo(uint64 _videoId) public view returns (Video memory) {\n\t\tVideo memory video = videoById[_videoId];\n\t\trequire(video.isExisting, \"Trying to access unexisting video\");\n\t\treturn video;\n\t}\n\n\tfunction updateStatus (uint64 _videoId, bool _isActive) public onlyOwner {\n\t\t// Get storage ref\n\t\tVideo storage video = videoById[_videoId];\n\t\t// Update the value in struct\n\t\tvideo.isActive = _isActive;\n\t}\n\n function removeVideo (uint64 _videoId) public onlyOwner {\n\t\t// Dec videoCountByChannel\n\t\tvideoCountByChannelId[videoById[_videoId].channelId].sub(1);\n\t\t// Clear entry in map (setting isExisting to false)\n \tdelete videoById[_videoId];\n\t}\n}\n", - "sourcePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", - "ast": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", - "exportedSymbols": { - "Video": [ - 3126 - ], - "VideoStorage": [ - 3263 - ] - }, - "id": 3264, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3116, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "id": 3117, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:11" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 3118, - "nodeType": "ImportDirective", - "scope": 3264, - "sourceUnit": 3403, - "src": "59:71:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "file": "../lib/SafeMath64.sol", - "id": 3119, - "nodeType": "ImportDirective", - "scope": 3264, - "sourceUnit": 2263, - "src": "131:31:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "Video", - "id": 3126, - "members": [ - { - "constant": false, - "id": 3121, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3126, - "src": "244:16:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3120, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "244:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3123, - "mutability": "mutable", - "name": "isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3126, - "src": "266:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3122, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "266:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3125, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3126, - "src": "285:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "285:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Video", - "nodeType": "StructDefinition", - "scope": 3264, - "src": "225:78:11", - "visibility": "public" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3127, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "330:7:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 3128, - "nodeType": "InheritanceSpecifier", - "src": "330:7:11" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3263, - "linearizedBaseContracts": [ - 3263, - 3402, - 3293 - ], - "name": "VideoStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3131, - "libraryName": { - "contractScope": null, - "id": 3129, - "name": "SafeMath64", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2262, - "src": "347:10:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath64_$2262", - "typeString": "library SafeMath64" - } - }, - "nodeType": "UsingForDirective", - "src": "341:28:11", - "typeName": { - "id": 3130, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "362:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - { - "constant": false, - "id": 3135, - "mutability": "mutable", - "name": "videoById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3263, - "src": "375:43:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video)" - }, - "typeName": { - "id": 3134, - "keyType": { - "id": 3132, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "384:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "375:25:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video)" - }, - "valueType": { - "contractScope": null, - "id": 3133, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "394:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "01052982", - "id": 3139, - "mutability": "mutable", - "name": "videoCountByChannelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3263, - "src": "487:55:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - }, - "typeName": { - "id": 3138, - "keyType": { - "id": 3136, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "496:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "487:26:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - }, - "valueType": { - "id": 3137, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "506:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3142, - "mutability": "mutable", - "name": "nextVideoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3263, - "src": "608:22:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3140, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "608:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 3141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "629:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "internal" - }, - { - "body": { - "id": 3194, - "nodeType": "Block", - "src": "709:327:11", - "statements": [ - { - "assignments": [ - 3152 - ], - "declarations": [ - { - "constant": false, - "id": 3152, - "mutability": "mutable", - "name": "videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3194, - "src": "713:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3151, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "713:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3154, - "initialValue": { - "argumentTypes": null, - "id": 3153, - "name": "nextVideoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "730:11:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "713:28:11" - }, - { - "assignments": [ - 3156 - ], - "declarations": [ - { - "constant": false, - "id": 3156, - "mutability": "mutable", - "name": "newVideo", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3194, - "src": "766:22:11", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3155, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "766:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3160, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3157, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "791:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3159, - "indexExpression": { - "argumentTypes": null, - "id": 3158, - "name": "videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "801:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "791:18:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "766:43:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3161, - "name": "newVideo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3156, - "src": "838:8:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 3125, - "src": "838:19:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "860:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "838:26:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3166, - "nodeType": "ExpressionStatement", - "src": "838:26:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3167, - "name": "newVideo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3156, - "src": "868:8:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3169, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "868:17:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "888:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "868:24:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3172, - "nodeType": "ExpressionStatement", - "src": "868:24:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3173, - "name": "newVideo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3156, - "src": "896:8:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "896:18:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3176, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "917:10:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "896:31:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3178, - "nodeType": "ExpressionStatement", - "src": "896:31:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "990:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3179, - "name": "videoCountByChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "952:21:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - } - }, - "id": 3181, - "indexExpression": { - "argumentTypes": null, - "id": 3180, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "974:10:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "952:33:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "952:37:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 3184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "952:40:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3185, - "nodeType": "ExpressionStatement", - "src": "952:40:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1012:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "nextVideoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "996:11:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "996:15:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "996:18:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "996:18:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3192, - "name": "videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "1025:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 3150, - "id": 3193, - "nodeType": "Return", - "src": "1018:14:11" - } - ] - }, - "documentation": null, - "functionSelector": "9d8d51f8", - "id": 3195, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3147, - "modifierName": { - "argumentTypes": null, - "id": 3146, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "682:9:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "682:9:11" - } - ], - "name": "addVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3144, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3195, - "src": "656:17:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3143, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "656:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "655:19:11" - }, - "returnParameters": { - "id": 3150, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3149, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3195, - "src": "701:6:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3148, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "701:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "700:8:11" - }, - "scope": 3263, - "src": "637:399:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3216, - "nodeType": "Block", - "src": "1159:130:11", - "statements": [ - { - "assignments": [ - 3203 - ], - "declarations": [ - { - "constant": false, - "id": 3203, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3216, - "src": "1163:18:11", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3202, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "1163:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3207, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3204, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1184:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3206, - "indexExpression": { - "argumentTypes": null, - "id": 3205, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3197, - "src": "1194:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1184:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1163:40:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3209, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3203, - "src": "1215:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 3210, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 3125, - "src": "1215:16:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e6720766964656f", - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1233:35:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", - "typeString": "literal_string \"Trying to access unexisting video\"" - }, - "value": "Trying to access unexisting video" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", - "typeString": "literal_string \"Trying to access unexisting video\"" - } - ], - "id": 3208, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1207:7:11", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1207:62:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3213, - "nodeType": "ExpressionStatement", - "src": "1207:62:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3203, - "src": "1280:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "functionReturnParameters": 3201, - "id": 3215, - "nodeType": "Return", - "src": "1273:12:11" - } - ] - }, - "documentation": null, - "functionSelector": "750a1063", - "id": 3217, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3197, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3217, - "src": "1107:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3196, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1107:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1106:17:11" - }, - "returnParameters": { - "id": 3201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3200, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3217, - "src": "1145:12:11", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3199, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "1145:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1144:14:11" - }, - "scope": 3263, - "src": "1081:208:11", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3238, - "nodeType": "Block", - "src": "1365:132:11", - "statements": [ - { - "assignments": [ - 3227 - ], - "declarations": [ - { - "constant": false, - "id": 3227, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3238, - "src": "1390:19:11", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3226, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "1390:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3231, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3228, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1412:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3230, - "indexExpression": { - "argumentTypes": null, - "id": 3229, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "1422:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1412:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1390:41:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3232, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "1467:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3234, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "1467:14:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3235, - "name": "_isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3221, - "src": "1484:9:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1467:26:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3237, - "nodeType": "ExpressionStatement", - "src": "1467:26:11" - } - ] - }, - "documentation": null, - "functionSelector": "b5b9dc91", - "id": 3239, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3224, - "modifierName": { - "argumentTypes": null, - "id": 3223, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1355:9:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1355:9:11" - } - ], - "name": "updateStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3219, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3239, - "src": "1315:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3218, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1315:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3221, - "mutability": "mutable", - "name": "_isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3239, - "src": "1332:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3220, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1332:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1314:33:11" - }, - "returnParameters": { - "id": 3225, - "nodeType": "ParameterList", - "parameters": [], - "src": "1365:0:11" - }, - "scope": 3263, - "src": "1292:205:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3261, - "nodeType": "Block", - "src": "1559:183:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1649:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3246, - "name": "videoCountByChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "1592:21:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - } - }, - "id": 3251, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3247, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1614:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3249, - "indexExpression": { - "argumentTypes": null, - "id": 3248, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "1624:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1614:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "id": 3250, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "1614:29:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1592:52:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2112, - "src": "1592:56:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1592:59:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3255, - "nodeType": "ExpressionStatement", - "src": "1592:59:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "1712:26:11", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3256, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1719:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3258, - "indexExpression": { - "argumentTypes": null, - "id": 3257, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "1729:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1719:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3260, - "nodeType": "ExpressionStatement", - "src": "1712:26:11" - } - ] - }, - "documentation": null, - "functionSelector": "9a055bbf", - "id": 3262, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3244, - "modifierName": { - "argumentTypes": null, - "id": 3243, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1549:9:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1549:9:11" - } - ], - "name": "removeVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3241, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3262, - "src": "1525:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3240, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1525:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1524:17:11" - }, - "returnParameters": { - "id": 3245, - "nodeType": "ParameterList", - "parameters": [], - "src": "1559:0:11" - }, - "scope": 3263, - "src": "1503:239:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 3264, - "src": "305:1439:11" - } - ], - "src": "0:1745:11" - }, - "legacyAST": { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/storage/VideoStorage.sol", - "exportedSymbols": { - "Video": [ - 3126 - ], - "VideoStorage": [ - 3263 - ] - }, - "id": 3264, - "license": null, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3116, - "literals": [ - "solidity", - "^", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "id": 3117, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "24:33:11" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/node_modules/@openzeppelin/contracts/access/Ownable.sol", - "file": "../../node_modules/@openzeppelin/contracts/access/Ownable.sol", - "id": 3118, - "nodeType": "ImportDirective", - "scope": 3264, - "sourceUnit": 3403, - "src": "59:71:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/leszek/projects/joystream/joystream/smart-contracts/contracts/lib/SafeMath64.sol", - "file": "../lib/SafeMath64.sol", - "id": 3119, - "nodeType": "ImportDirective", - "scope": 3264, - "sourceUnit": 2263, - "src": "131:31:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "canonicalName": "Video", - "id": 3126, - "members": [ - { - "constant": false, - "id": 3121, - "mutability": "mutable", - "name": "channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3126, - "src": "244:16:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3120, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "244:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3123, - "mutability": "mutable", - "name": "isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3126, - "src": "266:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3122, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "266:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3125, - "mutability": "mutable", - "name": "isExisting", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3126, - "src": "285:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "285:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Video", - "nodeType": "StructDefinition", - "scope": 3264, - "src": "225:78:11", - "visibility": "public" - }, - { - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3127, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3402, - "src": "330:7:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$3402", - "typeString": "contract Ownable" - } - }, - "id": 3128, - "nodeType": "InheritanceSpecifier", - "src": "330:7:11" - } - ], - "contractDependencies": [ - 3293, - 3402 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3263, - "linearizedBaseContracts": [ - 3263, - 3402, - 3293 - ], - "name": "VideoStorage", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 3131, - "libraryName": { - "contractScope": null, - "id": 3129, - "name": "SafeMath64", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2262, - "src": "347:10:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath64_$2262", - "typeString": "library SafeMath64" - } - }, - "nodeType": "UsingForDirective", - "src": "341:28:11", - "typeName": { - "id": 3130, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "362:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - { - "constant": false, - "id": 3135, - "mutability": "mutable", - "name": "videoById", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3263, - "src": "375:43:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video)" - }, - "typeName": { - "id": 3134, - "keyType": { - "id": 3132, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "384:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "375:25:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video)" - }, - "valueType": { - "contractScope": null, - "id": 3133, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "394:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "functionSelector": "01052982", - "id": 3139, - "mutability": "mutable", - "name": "videoCountByChannelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3263, - "src": "487:55:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - }, - "typeName": { - "id": 3138, - "keyType": { - "id": 3136, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "496:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Mapping", - "src": "487:26:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - }, - "valueType": { - "id": 3137, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "506:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 3142, - "mutability": "mutable", - "name": "nextVideoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3263, - "src": "608:22:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3140, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "608:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 3141, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "629:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "internal" - }, - { - "body": { - "id": 3194, - "nodeType": "Block", - "src": "709:327:11", - "statements": [ - { - "assignments": [ - 3152 - ], - "declarations": [ - { - "constant": false, - "id": 3152, - "mutability": "mutable", - "name": "videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3194, - "src": "713:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3151, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "713:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3154, - "initialValue": { - "argumentTypes": null, - "id": 3153, - "name": "nextVideoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "730:11:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "713:28:11" - }, - { - "assignments": [ - 3156 - ], - "declarations": [ - { - "constant": false, - "id": 3156, - "mutability": "mutable", - "name": "newVideo", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3194, - "src": "766:22:11", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3155, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "766:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3160, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3157, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "791:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3159, - "indexExpression": { - "argumentTypes": null, - "id": 3158, - "name": "videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "801:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "791:18:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "766:43:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3161, - "name": "newVideo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3156, - "src": "838:8:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 3125, - "src": "838:19:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3164, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "860:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "838:26:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3166, - "nodeType": "ExpressionStatement", - "src": "838:26:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3167, - "name": "newVideo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3156, - "src": "868:8:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3169, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "868:17:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3170, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "888:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "868:24:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3172, - "nodeType": "ExpressionStatement", - "src": "868:24:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3173, - "name": "newVideo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3156, - "src": "896:8:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "896:18:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3176, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "917:10:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "src": "896:31:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3178, - "nodeType": "ExpressionStatement", - "src": "896:31:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "990:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3179, - "name": "videoCountByChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "952:21:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - } - }, - "id": 3181, - "indexExpression": { - "argumentTypes": null, - "id": 3180, - "name": "_channelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3144, - "src": "974:10:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "952:33:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "952:37:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 3184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "952:40:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3185, - "nodeType": "ExpressionStatement", - "src": "952:40:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1012:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "nextVideoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3142, - "src": "996:11:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 2095, - "src": "996:15:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 3190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "996:18:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3191, - "nodeType": "ExpressionStatement", - "src": "996:18:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3192, - "name": "videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "1025:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "functionReturnParameters": 3150, - "id": 3193, - "nodeType": "Return", - "src": "1018:14:11" - } - ] - }, - "documentation": null, - "functionSelector": "9d8d51f8", - "id": 3195, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3147, - "modifierName": { - "argumentTypes": null, - "id": 3146, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "682:9:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "682:9:11" - } - ], - "name": "addVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3145, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3144, - "mutability": "mutable", - "name": "_channelId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3195, - "src": "656:17:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3143, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "656:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "655:19:11" - }, - "returnParameters": { - "id": 3150, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3149, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3195, - "src": "701:6:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3148, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "701:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "700:8:11" - }, - "scope": 3263, - "src": "637:399:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3216, - "nodeType": "Block", - "src": "1159:130:11", - "statements": [ - { - "assignments": [ - 3203 - ], - "declarations": [ - { - "constant": false, - "id": 3203, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3216, - "src": "1163:18:11", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3202, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "1163:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3207, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3204, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1184:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3206, - "indexExpression": { - "argumentTypes": null, - "id": 3205, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3197, - "src": "1194:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1184:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1163:40:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3209, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3203, - "src": "1215:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "id": 3210, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "isExisting", - "nodeType": "MemberAccess", - "referencedDeclaration": 3125, - "src": "1215:16:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "547279696e6720746f2061636365737320756e6578697374696e6720766964656f", - "id": 3211, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1233:35:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", - "typeString": "literal_string \"Trying to access unexisting video\"" - }, - "value": "Trying to access unexisting video" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ef84195aa65b690d040381fa261002a097fd97c1858b61bd1a73caa5f2638470", - "typeString": "literal_string \"Trying to access unexisting video\"" - } - ], - "id": 3208, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "1207:7:11", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1207:62:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3213, - "nodeType": "ExpressionStatement", - "src": "1207:62:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3203, - "src": "1280:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video memory" - } - }, - "functionReturnParameters": 3201, - "id": 3215, - "nodeType": "Return", - "src": "1273:12:11" - } - ] - }, - "documentation": null, - "functionSelector": "750a1063", - "id": 3217, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExistingVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3198, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3197, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3217, - "src": "1107:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3196, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1107:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1106:17:11" - }, - "returnParameters": { - "id": 3201, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3200, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3217, - "src": "1145:12:11", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_memory_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3199, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "1145:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1144:14:11" - }, - "scope": 3263, - "src": "1081:208:11", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3238, - "nodeType": "Block", - "src": "1365:132:11", - "statements": [ - { - "assignments": [ - 3227 - ], - "declarations": [ - { - "constant": false, - "id": 3227, - "mutability": "mutable", - "name": "video", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3238, - "src": "1390:19:11", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - }, - "typeName": { - "contractScope": null, - "id": 3226, - "name": "Video", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3126, - "src": "1390:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3231, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3228, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1412:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3230, - "indexExpression": { - "argumentTypes": null, - "id": 3229, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3219, - "src": "1422:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1412:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1390:41:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3232, - "name": "video", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3227, - "src": "1467:5:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage_ptr", - "typeString": "struct Video storage pointer" - } - }, - "id": 3234, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "isActive", - "nodeType": "MemberAccess", - "referencedDeclaration": 3123, - "src": "1467:14:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3235, - "name": "_isActive", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3221, - "src": "1484:9:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1467:26:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3237, - "nodeType": "ExpressionStatement", - "src": "1467:26:11" - } - ] - }, - "documentation": null, - "functionSelector": "b5b9dc91", - "id": 3239, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3224, - "modifierName": { - "argumentTypes": null, - "id": 3223, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1355:9:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1355:9:11" - } - ], - "name": "updateStatus", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3219, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3239, - "src": "1315:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3218, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1315:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3221, - "mutability": "mutable", - "name": "_isActive", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3239, - "src": "1332:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3220, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1332:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1314:33:11" - }, - "returnParameters": { - "id": 3225, - "nodeType": "ParameterList", - "parameters": [], - "src": "1365:0:11" - }, - "scope": 3263, - "src": "1292:205:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 3261, - "nodeType": "Block", - "src": "1559:183:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1649:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3246, - "name": "videoCountByChannelId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3139, - "src": "1592:21:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", - "typeString": "mapping(uint64 => uint64)" - } - }, - "id": 3251, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3247, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1614:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3249, - "indexExpression": { - "argumentTypes": null, - "id": 3248, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "1624:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1614:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "id": 3250, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "channelId", - "nodeType": "MemberAccess", - "referencedDeclaration": 3121, - "src": "1614:29:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1592:52:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 2112, - "src": "1592:56:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint64_$_t_uint64_$returns$_t_uint64_$bound_to$_t_uint64_$", - "typeString": "function (uint64,uint64) pure returns (uint64)" - } - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1592:59:11", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "id": 3255, - "nodeType": "ExpressionStatement", - "src": "1592:59:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 3259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "1712:26:11", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3256, - "name": "videoById", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3135, - "src": "1719:9:11", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Video_$3126_storage_$", - "typeString": "mapping(uint64 => struct Video storage ref)" - } - }, - "id": 3258, - "indexExpression": { - "argumentTypes": null, - "id": 3257, - "name": "_videoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "1729:8:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1719:19:11", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Video_$3126_storage", - "typeString": "struct Video storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3260, - "nodeType": "ExpressionStatement", - "src": "1712:26:11" - } - ] - }, - "documentation": null, - "functionSelector": "9a055bbf", - "id": 3262, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3244, - "modifierName": { - "argumentTypes": null, - "id": 3243, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3351, - "src": "1549:9:11", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1549:9:11" - } - ], - "name": "removeVideo", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3241, - "mutability": "mutable", - "name": "_videoId", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 3262, - "src": "1525:15:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - }, - "typeName": { - "id": 3240, - "name": "uint64", - "nodeType": "ElementaryTypeName", - "src": "1525:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint64", - "typeString": "uint64" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1524:17:11" - }, - "returnParameters": { - "id": 3245, - "nodeType": "ParameterList", - "parameters": [], - "src": "1559:0:11" - }, - "scope": 3263, - "src": "1503:239:11", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 3264, - "src": "305:1439:11" - } - ], - "src": "0:1745:11" - }, - "compiler": { - "name": "solc", - "version": "0.6.12+commit.27d51765.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.3.2", - "updatedAt": "2020-11-17T12:09:37.589Z", - "devdoc": { - "kind": "dev", - "methods": { - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - } - }, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } -} \ No newline at end of file diff --git a/smart-contracts/package.json b/smart-contracts/package.json index ce0510b9d1..37f8c97756 100644 --- a/smart-contracts/package.json +++ b/smart-contracts/package.json @@ -2,8 +2,9 @@ "name": "@joystream/cd-smart-contract", "version": "0.1.0", "scripts": { - "test": "truffle test", + "test": "truffle test --network development", "start": "ganache-cli --hardfork istanbul --network-id 5777 --gasLimit 10000000", + "compile": "truffle compile", "lint:contracts": "solhint 'contracts/**/*.sol'" }, "dependencies": { From 3b7d396a9d75a22c416632bcf6daf2ee4ccddb2a Mon Sep 17 00:00:00 2001 From: Leszek Wiesner Date: Wed, 18 Nov 2020 16:34:33 +0100 Subject: [PATCH 3/3] Formatting setup + fix --- smart-contracts/.prettierrc | 3 + smart-contracts/.solhint.json | 7 +- .../contracts/ContentDirectory.sol | 757 +++++++++--------- smart-contracts/contracts/Migrations.sol | 4 +- .../bridge/ContentWorkingGroupBridge.sol | 65 +- .../contracts/bridge/MembershipBridge.sol | 21 +- smart-contracts/contracts/bridge/auth.sol | 52 +- smart-contracts/contracts/lib/SafeMath16.sol | 268 ++++--- smart-contracts/contracts/lib/SafeMath32.sol | 268 ++++--- smart-contracts/contracts/lib/SafeMath64.sol | 268 ++++--- smart-contracts/contracts/lib/SafeMath8.sol | 268 ++++--- .../contracts/storage/ChannelStorage.sol | 196 +++-- .../contracts/storage/CuratorGroupStorage.sol | 102 ++- .../contracts/storage/VideoStorage.sol | 78 +- smart-contracts/package.json | 12 +- smart-contracts/yarn.lock | 113 ++- 16 files changed, 1297 insertions(+), 1185 deletions(-) create mode 100644 smart-contracts/.prettierrc diff --git a/smart-contracts/.prettierrc b/smart-contracts/.prettierrc new file mode 100644 index 0000000000..1ca87ab7d8 --- /dev/null +++ b/smart-contracts/.prettierrc @@ -0,0 +1,3 @@ +{ + "singleQuote": false +} diff --git a/smart-contracts/.solhint.json b/smart-contracts/.solhint.json index d7c3de9895..61594b5143 100644 --- a/smart-contracts/.solhint.json +++ b/smart-contracts/.solhint.json @@ -1,3 +1,8 @@ { - "extends": "solhint:default" + "extends": ["solhint:recommended"], + "rules": { + "prettier/prettier": "error", + "compiler-version": ["error", "^0.6.0"] + }, + "plugins": ["prettier"] } diff --git a/smart-contracts/contracts/ContentDirectory.sol b/smart-contracts/contracts/ContentDirectory.sol index 3a5bf1ea51..09d1282cf6 100644 --- a/smart-contracts/contracts/ContentDirectory.sol +++ b/smart-contracts/contracts/ContentDirectory.sol @@ -19,9 +19,9 @@ contract ContentDirectory is RuntimeManageable, Pausable { ChannelStorage public channelStorage; VideoStorage public videoStorage; CuratorGroupStorage public curatorGroupStorage; - // "Bridge" contracts - MembershipBridge public membershipBridge; - ContentWorkingGroupBridge public contentWorkingGroupBridge; + // "Bridge" contracts + MembershipBridge public membershipBridge; + ContentWorkingGroupBridge public contentWorkingGroupBridge; // Limits // (they can me "migrated" just be setting a default value here, so no need to keep them in a separate storage) @@ -30,12 +30,7 @@ contract ContentDirectory is RuntimeManageable, Pausable { uint32 public videosPerChannelMaxLimit = 1000; // Enum + constant related to group permissions - enum ContentDirectoryOperation { - UpdateChannelMetadata, - AddVideo, - UpdateVideoMetadata, - RemoveVideo - } + enum ContentDirectoryOperation {UpdateChannelMetadata, AddVideo, UpdateVideoMetadata, RemoveVideo} uint8 constant GROUP_PERMISSIONS_FLAGS_LENGTH = 4; // Reason validation consts @@ -43,145 +38,144 @@ contract ContentDirectory is RuntimeManageable, Pausable { uint16 constant DEACTIVATE_VIDEO_REASON_MIN_LENGTH = 2; uint16 constant REMOVE_VIDEO_REASON_MIN_LENGTH = 2; - // Limits change events - event ChannelInstancesLimitUpdated(uint64 _newLimit); - event VideosPerChannelDefaultLimitUpdated(uint32 _newLimit); - event VideosPerChannelMaxLimitUpdated(uint32 _newLimit); + event ChannelInstancesLimitUpdated(uint64 _newLimit); + event VideosPerChannelDefaultLimitUpdated(uint32 _newLimit); + event VideosPerChannelMaxLimitUpdated(uint32 _newLimit); // Migration event - event Migrated(address _logic, address _videoStorage, address _channelStorage, address _curatorGroupStorage); - - // Channel-related events - event ChannelCreated(uint64 _id, ChannelOwnership _ownership, string[2][] _metadata); - event ChannelMetadataUpdated(uint64 _id, string[2][] _metadata); - event ChannelOwnershipUpdated(uint64 _id, ChannelOwnership _ownership); - event ChannelVideoLimitUpdated(uint64 _id, uint64 _newLimit); - event ChannelDeactivated(uint64 _id, string _reason); - event ChannelReactivated(uint64 _id); + event Migrated(address _logic, address _videoStorage, address _channelStorage, address _curatorGroupStorage); + + // Channel-related events + event ChannelCreated(uint64 _id, ChannelOwnership _ownership, string[2][] _metadata); + event ChannelMetadataUpdated(uint64 _id, string[2][] _metadata); + event ChannelOwnershipUpdated(uint64 _id, ChannelOwnership _ownership); + event ChannelVideoLimitUpdated(uint64 _id, uint64 _newLimit); + event ChannelDeactivated(uint64 _id, string _reason); + event ChannelReactivated(uint64 _id); event ChannelRemoved(uint64 _id); - // CuratorGroup-related events + // CuratorGroup-related events event CuratorGroupCreated(uint16 _groupId, bool[] _permissions); event CuratorGroupPermissionsUpdated(uint16 _groupId, bool[] _permissions); - event CuratorAddedToGroup(uint64 _curatorId, uint16 _groupId); - event CuratorRemovedFromGroup(uint64 _curatorId, uint16 _groupId); - event CuratorRemovedFromAllGroups(uint64 _curatorId); + event CuratorAddedToGroup(uint64 _curatorId, uint16 _groupId); + event CuratorRemovedFromGroup(uint64 _curatorId, uint16 _groupId); + event CuratorRemovedFromAllGroups(uint64 _curatorId); event CuratorGroupRemoved(uint16 _groupId); // Video-related events - event VideoAdded(uint64 _id, uint64 _channelId, string[2][] _metadata); - event VideoMetadataUpdated(uint64 _id, string[2][] _metadata); - event VideoRemoved(uint64 _id); - event VideoRemovedByCurator(uint64 _id, string _reason); - event VideoDeactivated(uint64 _id, string _reason); - event VideoReactivated(uint64 _id); - - // Common modifiers/helpers - function _isActiveLead (address _address) internal view returns (bool) { - return contentWorkingGroupBridge.isActiveLead(_address); - } - - function _isCurator (address _address, uint64 _curatorId) internal view returns (bool) { - return contentWorkingGroupBridge.isCurator(_address, _curatorId); - } - - modifier onlyLead () { - require(_isActiveLead(msg.sender), "Active lead access required!"); - _; - } - - // Pause/unpause contract (can be done through proposal) - function pause () public onlyCouncil { - _pause(); - } - - function unpause () public onlyCouncil { - _unpause(); - } - - // Limit setters that can be called via proposal module - function setChannelInstancesLimit (uint64 _newLimit) public onlyCouncil whenNotPaused { - channelInstancesLimit = _newLimit; - emit ChannelInstancesLimitUpdated(_newLimit); - } - - function setVideosPerChannelDefaultLimit (uint32 _newLimit) public onlyCouncil whenNotPaused { - require( - _newLimit <= videosPerChannelMaxLimit, - "videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit" - ); - videosPerChannelDefaultLimit = _newLimit; - emit VideosPerChannelDefaultLimitUpdated(_newLimit); - } - - function setVideosPerChannelMaxLimit (uint32 _newLimit) public onlyCouncil whenNotPaused { - require( - _newLimit >= videosPerChannelDefaultLimit, - "videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit" - ); - videosPerChannelMaxLimit = _newLimit; - emit VideosPerChannelMaxLimitUpdated(_newLimit); - } - - constructor ( - RuntimeAddressProvider _provider, - MembershipBridge _membershipBridge, - ContentWorkingGroupBridge _contentWorkingGroupBridge + event VideoAdded(uint64 _id, uint64 _channelId, string[2][] _metadata); + event VideoMetadataUpdated(uint64 _id, string[2][] _metadata); + event VideoRemoved(uint64 _id); + event VideoRemovedByCurator(uint64 _id, string _reason); + event VideoDeactivated(uint64 _id, string _reason); + event VideoReactivated(uint64 _id); + + // Common modifiers/helpers + function _isActiveLead(address _address) internal view returns (bool) { + return contentWorkingGroupBridge.isActiveLead(_address); + } + + function _isCurator(address _address, uint64 _curatorId) internal view returns (bool) { + return contentWorkingGroupBridge.isCurator(_address, _curatorId); + } + + modifier onlyLead() { + require(_isActiveLead(msg.sender), "Active lead access required!"); + _; + } + + // Pause/unpause contract (can be done through proposal) + function pause() public onlyCouncil { + _pause(); + } + + function unpause() public onlyCouncil { + _unpause(); + } + + // Limit setters that can be called via proposal module + function setChannelInstancesLimit(uint64 _newLimit) public onlyCouncil whenNotPaused { + channelInstancesLimit = _newLimit; + emit ChannelInstancesLimitUpdated(_newLimit); + } + + function setVideosPerChannelDefaultLimit(uint32 _newLimit) public onlyCouncil whenNotPaused { + require( + _newLimit <= videosPerChannelMaxLimit, + "videosPerChannelDefaultLimit cannot exceed current videosPerChannelMaxLimit" + ); + videosPerChannelDefaultLimit = _newLimit; + emit VideosPerChannelDefaultLimitUpdated(_newLimit); + } + + function setVideosPerChannelMaxLimit(uint32 _newLimit) public onlyCouncil whenNotPaused { + require( + _newLimit >= videosPerChannelDefaultLimit, + "videosPerChannelMaxLimit must be greater than or equal to videosPerChannelDefaultLimit" + ); + videosPerChannelMaxLimit = _newLimit; + emit VideosPerChannelMaxLimitUpdated(_newLimit); + } + + constructor( + RuntimeAddressProvider _provider, + MembershipBridge _membershipBridge, + ContentWorkingGroupBridge _contentWorkingGroupBridge + ) + public // TODO: The upgraded logic contract would take those as args: - // ChannelStorage _channelStorage, - // VideoStorage _videoStorage, - // CuratorGroupStorage _curatorGroupStorage - ) public RuntimeManageable(_provider) { - membershipBridge = _membershipBridge; - contentWorkingGroupBridge = _contentWorkingGroupBridge; - channelStorage = new ChannelStorage(); - videoStorage = new VideoStorage(); - curatorGroupStorage = new CuratorGroupStorage(); - } - - // Faciliates migration to new logic contract - function migrate ( - address _newLogic, + // ChannelStorage _channelStorage, + // VideoStorage _videoStorage, + // CuratorGroupStorage _curatorGroupStorage + RuntimeManageable(_provider) + { + membershipBridge = _membershipBridge; + contentWorkingGroupBridge = _contentWorkingGroupBridge; + channelStorage = new ChannelStorage(); + videoStorage = new VideoStorage(); + curatorGroupStorage = new CuratorGroupStorage(); + } + + // Faciliates migration to new logic contract + function migrate( + address _newLogic, address _newVideoStorage, address _newChannelStorage, address _newCuratorGroupStorage - ) public onlyCouncil { - _migrateStorage(address(videoStorage), _newVideoStorage, _newLogic); - _migrateStorage(address(channelStorage), _newChannelStorage, _newLogic); - _migrateStorage(address(curatorGroupStorage), _newCuratorGroupStorage, _newLogic); - emit Migrated( - _newLogic, - _newVideoStorage == address(0) ? address(videoStorage) : _newVideoStorage, - _newChannelStorage == address(0) ? address(channelStorage) : _newChannelStorage, - _newCuratorGroupStorage == address(0) ? address(curatorGroupStorage) : _newCuratorGroupStorage - ); - selfdestruct(msg.sender); - } - - function _migrateStorage ( - address _oldStorageAddress, - address _newStorageAddress, - address _newLogicAddress - ) internal { - if (_newStorageAddress != address(0)) { - // TODO: Set upgraded storage contract owner - } - Ownable oldStorage = Ownable(_oldStorageAddress); - oldStorage.transferOwnership(_newLogicAddress); - } - - // CHANNELS - using ChannelOwnershipDecoder for ChannelOwnership; + ) public onlyCouncil { + _migrateStorage(address(videoStorage), _newVideoStorage, _newLogic); + _migrateStorage(address(channelStorage), _newChannelStorage, _newLogic); + _migrateStorage(address(curatorGroupStorage), _newCuratorGroupStorage, _newLogic); + emit Migrated( + _newLogic, + _newVideoStorage == address(0) ? address(videoStorage) : _newVideoStorage, + _newChannelStorage == address(0) ? address(channelStorage) : _newChannelStorage, + _newCuratorGroupStorage == address(0) ? address(curatorGroupStorage) : _newCuratorGroupStorage + ); + selfdestruct(msg.sender); + } + + function _migrateStorage( + address _oldStorageAddress, + address _newStorageAddress, + address _newLogicAddress + ) internal { + if (_newStorageAddress != address(0)) { + // TODO: Set upgraded storage contract owner + } + Ownable oldStorage = Ownable(_oldStorageAddress); + oldStorage.transferOwnership(_newLogicAddress); + } + + // CHANNELS + using ChannelOwnershipDecoder for ChannelOwnership; // Access/validation utils: - function _validateOwnership (ChannelOwnership memory _ownership) internal view returns (bool) { - require(_ownership.isValid(), "Invalid ownership data"); + function _validateOwnership(ChannelOwnership memory _ownership) internal view returns (bool) { + require(_ownership.isValid(), "Invalid ownership data"); if (_ownership.isMember()) { - require( - membershipBridge.memberExists(_ownership.asMember()), - "Member ownership - member does not exist!" - ); + require(membershipBridge.memberExists(_ownership.asMember()), "Member ownership - member does not exist!"); } if (_ownership.isCuratorGroup()) { require( @@ -189,132 +183,122 @@ contract ContentDirectory is RuntimeManageable, Pausable { "CuratorGroup ownership - group does not exist!" ); } - } - - function _hasOwnerAccess (address _address, ChannelOwnership memory _ownership) internal view returns (bool) { - if (_ownership.isAddress()) { - return _address == _ownership.asAddress(); - } - else if (_ownership.isMember()) { - return membershipBridge.isMemberController(_address, _ownership.asMember()); - } - else if (_ownership.isCuratorGroup()) { - // Only lead can act as owner of group channel - return contentWorkingGroupBridge.isActiveLead(_address); - } - - assert(false); // Ensure all cases are covered - } - - function _canCurate ( + } + + function _hasOwnerAccess(address _address, ChannelOwnership memory _ownership) internal view returns (bool) { + if (_ownership.isAddress()) { + return _address == _ownership.asAddress(); + } else if (_ownership.isMember()) { + return membershipBridge.isMemberController(_address, _ownership.asMember()); + } else if (_ownership.isCuratorGroup()) { + // Only lead can act as owner of group channel + return contentWorkingGroupBridge.isActiveLead(_address); + } + + assert(false); // Ensure all cases are covered + } + + function _canCurate( address _address, uint64 _curatorId, ChannelOwnership memory _ownership ) internal view returns (bool) { - return _ownership.isCuratorGroup() ? _isActiveLead(_address) : _isCurator(_address, _curatorId); - } + return _ownership.isCuratorGroup() ? _isActiveLead(_address) : _isCurator(_address, _curatorId); + } - function _hasGroupAccessToOperation ( - address _address, + function _hasGroupAccessToOperation( + address _address, uint64 _curatorId, - ChannelOwnership memory _ownership, - ContentDirectoryOperation _operation - ) internal view returns (bool) { - return ( - _ownership.isCuratorGroup() && + ChannelOwnership memory _ownership, + ContentDirectoryOperation _operation + ) internal view returns (bool) { + return (_ownership.isCuratorGroup() && _isCurator(_address, _curatorId) && curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _ownership.asCuratorGroup()) && - curatorGroupStorage.getExistingGroup(_ownership.asCuratorGroup()).permissions[uint8(_operation)] == true - ); - } + curatorGroupStorage.getExistingGroup(_ownership.asCuratorGroup()).permissions[uint8(_operation)] == true); + } // Channel operations: - function createChannel ( - ChannelOwnership memory _ownership, - string[2][] memory _metadata - ) public whenNotPaused { - require(_ownership.isValid(), "Invalid ownership"); - require(channelStorage.nextChannelId() <= channelInstancesLimit, "Channel instances limit reached"); - require(_hasOwnerAccess(msg.sender, _ownership), "Access denied under provided ownership"); - uint64 channelId = channelStorage.addChannel(_ownership); - emit ChannelCreated(channelId, _ownership, _metadata); - } - - function updateChannelMetadata ( - uint64 _channelId, - string[2][] memory _metadata - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); - emit ChannelMetadataUpdated(_channelId, _metadata); - } + function createChannel(ChannelOwnership memory _ownership, string[2][] memory _metadata) public whenNotPaused { + require(_ownership.isValid(), "Invalid ownership"); + require(channelStorage.nextChannelId() <= channelInstancesLimit, "Channel instances limit reached"); + require(_hasOwnerAccess(msg.sender, _ownership), "Access denied under provided ownership"); + uint64 channelId = channelStorage.addChannel(_ownership); + emit ChannelCreated(channelId, _ownership, _metadata); + } + + function updateChannelMetadata(uint64 _channelId, string[2][] memory _metadata) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + emit ChannelMetadataUpdated(_channelId, _metadata); + } // updateChannelMetadata overload with curator context (_curatorId) - function updateChannelMetadataAsCurator ( - uint64 _channelId, - string[2][] memory _metadata, + function updateChannelMetadataAsCurator( + uint64 _channelId, + string[2][] memory _metadata, uint64 _curatorId - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require( - _canCurate(msg.sender, _curatorId, channel.ownership) || - _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.UpdateChannelMetadata), + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require( + _canCurate(msg.sender, _curatorId, channel.ownership) || + _hasGroupAccessToOperation( + msg.sender, + _curatorId, + channel.ownership, + ContentDirectoryOperation.UpdateChannelMetadata + ), "Access denied" ); - emit ChannelMetadataUpdated(_channelId, _metadata); - } - - function updateChannelOwnership ( - uint64 _channelId, - ChannelOwnership memory _ownership - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); - require(_ownership.isValid(), "Invalid ownership"); - require(!_ownership.isCuratorGroup() || _isActiveLead(msg.sender), "Only lead can update ownership to CuratorGroup"); - channelStorage.updateOwnership(_channelId, _ownership); - emit ChannelOwnershipUpdated(_channelId, _ownership); - } - - function updateChannelVideoLimit ( - uint64 _channelId, - uint32 _limit, // Note that "0" here would mean "use currently default limit" - uint64 _curatorId - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); - require(_limit <= videosPerChannelMaxLimit, "The limit cannot exceed global videosPerChannelMaxLimit"); - channelStorage.setChannelVideoLimit(_channelId, _limit); - emit ChannelVideoLimitUpdated(_channelId, _limit); - } - - function deactivateChannel ( - uint64 _channelId, - string memory _reason, + emit ChannelMetadataUpdated(_channelId, _metadata); + } + + function updateChannelOwnership(uint64 _channelId, ChannelOwnership memory _ownership) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + require(_ownership.isValid(), "Invalid ownership"); + require( + !_ownership.isCuratorGroup() || _isActiveLead(msg.sender), + "Only lead can update ownership to CuratorGroup" + ); + channelStorage.updateOwnership(_channelId, _ownership); + emit ChannelOwnershipUpdated(_channelId, _ownership); + } + + function updateChannelVideoLimit( + uint64 _channelId, + uint32 _limit, // Note that "0" here would mean "use currently default limit" uint64 _curatorId - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); - require(channel.isActive, "Channel already deactivated"); - require(bytes(_reason).length >= DEACTIVATE_CHANNEL_REASON_MIN_LENGTH, "The reason is too short"); - channelStorage.updateStatus(_channelId, false); - emit ChannelDeactivated(_channelId, _reason); - } - - function activateChannel ( - uint64 _channelId, + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(_limit <= videosPerChannelMaxLimit, "The limit cannot exceed global videosPerChannelMaxLimit"); + channelStorage.setChannelVideoLimit(_channelId, _limit); + emit ChannelVideoLimitUpdated(_channelId, _limit); + } + + function deactivateChannel( + uint64 _channelId, + string memory _reason, uint64 _curatorId - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); - require(!channel.isActive, "Channel already active"); - channelStorage.updateStatus(_channelId, true); - emit ChannelReactivated(_channelId); - } - - function removeChannel ( - uint64 _channelId ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(channel.isActive, "Channel already deactivated"); + require(bytes(_reason).length >= DEACTIVATE_CHANNEL_REASON_MIN_LENGTH, "The reason is too short"); + channelStorage.updateStatus(_channelId, false); + emit ChannelDeactivated(_channelId, _reason); + } + + function activateChannel(uint64 _channelId, uint64 _curatorId) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(!channel.isActive, "Channel already active"); + channelStorage.updateStatus(_channelId, true); + emit ChannelReactivated(_channelId); + } + + function removeChannel(uint64 _channelId) public whenNotPaused { Channel memory channel = channelStorage.getExistingChannel(_channelId); require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); require(videoStorage.videoCountByChannelId(_channelId) == 0, "Cannot remove a channel unless it has no videos"); @@ -322,189 +306,170 @@ contract ContentDirectory is RuntimeManageable, Pausable { emit ChannelRemoved(_channelId); } - // CURATOR GROUPS + // CURATOR GROUPS - function createCuratorGroup ( - bool[] memory _permissions - ) public whenNotPaused onlyLead { + function createCuratorGroup(bool[] memory _permissions) public whenNotPaused onlyLead { require(_permissions.length == GROUP_PERMISSIONS_FLAGS_LENGTH, "Invalid permissions array length"); uint16 groupId = curatorGroupStorage.addGroup(_permissions); emit CuratorGroupCreated(groupId, _permissions); } - function updateCuratorGroupPermissions ( - uint16 _groupId, - bool[] memory _permissions - ) public whenNotPaused onlyLead { + function updateCuratorGroupPermissions(uint16 _groupId, bool[] memory _permissions) public whenNotPaused onlyLead { require(_permissions.length == GROUP_PERMISSIONS_FLAGS_LENGTH, "Invalid permissions array length"); curatorGroupStorage.setGroupPermissions(_groupId, _permissions); emit CuratorGroupPermissionsUpdated(_groupId, _permissions); } - function addCuratorToGroup ( - uint64 _curatorId, - uint16 _groupId - ) public whenNotPaused onlyLead { - require(contentWorkingGroupBridge.curatorExists(_curatorId), "Curator id not recognized"); - require(curatorGroupStorage.groupExists(_groupId), "Group id not recognized"); - require(curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _groupId) == false, "Curator is already in the group"); - curatorGroupStorage.addCuratorToGroup(_curatorId, _groupId); - emit CuratorAddedToGroup(_curatorId, _groupId); - } - - function removeCuratorFromGroup ( - uint64 _curatorId, - uint16 _groupId - ) public whenNotPaused onlyLead { - // We don't validate if curator exists here, it's enough to check that isCuratorInGroup == true - require(curatorGroupStorage.groupExists(_groupId), "Group id not recognized"); - require(curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _groupId) == true, "Curator is already not in the group"); - curatorGroupStorage.removeCuratorFromGroup(_curatorId, _groupId); - emit CuratorRemovedFromGroup(_curatorId, _groupId); - } - - function removeCuratorFromAllGroups ( - uint64 _curatorId - ) public whenNotPaused onlyLead { - require(contentWorkingGroupBridge.curatorExists(_curatorId), "Curator id not recognized"); - curatorGroupStorage.removeCuratorFromAllGroups(_curatorId); - emit CuratorRemovedFromAllGroups(_curatorId); - } - - function removeCuratorGroup ( - uint16 _groupId - ) public whenNotPaused onlyLead { - Group memory group = curatorGroupStorage.getExistingGroup(_groupId); - require(group.curatorsCount == 0, "Group's curators count needs to be 0"); - require( - channelStorage.channelCountByOwnership(uint8(ChannelOwnerType.CuratorGroup), _groupId) == 0, - "Group's channels count needs to be 0" - ); - curatorGroupStorage.removeGroup(_groupId); + function addCuratorToGroup(uint64 _curatorId, uint16 _groupId) public whenNotPaused onlyLead { + require(contentWorkingGroupBridge.curatorExists(_curatorId), "Curator id not recognized"); + require(curatorGroupStorage.groupExists(_groupId), "Group id not recognized"); + require( + curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _groupId) == false, + "Curator is already in the group" + ); + curatorGroupStorage.addCuratorToGroup(_curatorId, _groupId); + emit CuratorAddedToGroup(_curatorId, _groupId); + } + + function removeCuratorFromGroup(uint64 _curatorId, uint16 _groupId) public whenNotPaused onlyLead { + // We don't validate if curator exists here, it's enough to check that isCuratorInGroup == true + require(curatorGroupStorage.groupExists(_groupId), "Group id not recognized"); + require( + curatorGroupStorage.isCuratorInExistingGroup(_curatorId, _groupId) == true, + "Curator is already not in the group" + ); + curatorGroupStorage.removeCuratorFromGroup(_curatorId, _groupId); + emit CuratorRemovedFromGroup(_curatorId, _groupId); + } + + function removeCuratorFromAllGroups(uint64 _curatorId) public whenNotPaused onlyLead { + require(contentWorkingGroupBridge.curatorExists(_curatorId), "Curator id not recognized"); + curatorGroupStorage.removeCuratorFromAllGroups(_curatorId); + emit CuratorRemovedFromAllGroups(_curatorId); + } + + function removeCuratorGroup(uint16 _groupId) public whenNotPaused onlyLead { + Group memory group = curatorGroupStorage.getExistingGroup(_groupId); + require(group.curatorsCount == 0, "Group's curators count needs to be 0"); + require( + channelStorage.channelCountByOwnership(uint8(ChannelOwnerType.CuratorGroup), _groupId) == 0, + "Group's channels count needs to be 0" + ); + curatorGroupStorage.removeGroup(_groupId); emit CuratorGroupRemoved(_groupId); - } - - // VIDEOS - function addVideo ( - uint64 _channelId, - string[2][] memory _metadata - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); - require(channel.isActive, "Cannot add video to a channel that isn't active"); - uint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit; - require(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit); - uint64 videoId = videoStorage.addVideo(_channelId); - emit VideoAdded(videoId, _channelId, _metadata); - } + } + + // VIDEOS + function addVideo(uint64 _channelId, string[2][] memory _metadata) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + require(channel.isActive, "Cannot add video to a channel that isn't active"); + uint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit; + require(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit); + uint64 videoId = videoStorage.addVideo(_channelId); + emit VideoAdded(videoId, _channelId, _metadata); + } // addVideo - curator context overload - function addVideoAsCurator ( - uint64 _channelId, - string[2][] memory _metadata, + function addVideoAsCurator( + uint64 _channelId, + string[2][] memory _metadata, uint64 _curatorId - ) public whenNotPaused { - Channel memory channel = channelStorage.getExistingChannel(_channelId); - require( - _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.AddVideo), - "Access denied" - ); - require(channel.isActive, "Cannot add video to a channel that isn't active"); - uint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit; - require(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit); - uint64 videoId = videoStorage.addVideo(_channelId); - emit VideoAdded(videoId, _channelId, _metadata); - } - - function updateVideoMetadata ( - uint64 _videoId, - string[2][] memory _metadata - ) public whenNotPaused { - Video memory video = videoStorage.getExistingVideo(_videoId); - Channel memory channel = channelStorage.getExistingChannel(video.channelId); - require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); - emit VideoMetadataUpdated(_videoId, _metadata); - } + ) public whenNotPaused { + Channel memory channel = channelStorage.getExistingChannel(_channelId); + require( + _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.AddVideo), + "Access denied" + ); + require(channel.isActive, "Cannot add video to a channel that isn't active"); + uint32 channelVideoLimit = channel.videoLimit != 0 ? channel.videoLimit : videosPerChannelDefaultLimit; + require(videoStorage.videoCountByChannelId(_channelId) < channelVideoLimit); + uint64 videoId = videoStorage.addVideo(_channelId); + emit VideoAdded(videoId, _channelId, _metadata); + } + + function updateVideoMetadata(uint64 _videoId, string[2][] memory _metadata) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + emit VideoMetadataUpdated(_videoId, _metadata); + } // updateVideoMetadata - curator context overload - function updateVideoMetadataAsCurator ( - uint64 _videoId, - string[2][] memory _metadata, + function updateVideoMetadataAsCurator( + uint64 _videoId, + string[2][] memory _metadata, uint64 _curatorId - ) public whenNotPaused { - Video memory video = videoStorage.getExistingVideo(_videoId); - Channel memory channel = channelStorage.getExistingChannel(video.channelId); - require( - _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.UpdateVideoMetadata) || - _canCurate(msg.sender, _curatorId, channel.ownership), - "Access denied" - ); - emit VideoMetadataUpdated(_videoId, _metadata); - } - - function removeVideo ( - uint64 _videoId - ) public whenNotPaused { - Video memory video = videoStorage.getExistingVideo(_videoId); - Channel memory channel = channelStorage.getExistingChannel(video.channelId); - require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); - videoStorage.removeVideo(_videoId); - emit VideoRemoved(_videoId); - } + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require( + _hasGroupAccessToOperation( + msg.sender, + _curatorId, + channel.ownership, + ContentDirectoryOperation.UpdateVideoMetadata + ) || _canCurate(msg.sender, _curatorId, channel.ownership), + "Access denied" + ); + emit VideoMetadataUpdated(_videoId, _metadata); + } + + function removeVideo(uint64 _videoId) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_hasOwnerAccess(msg.sender, channel.ownership), "Owner access required"); + videoStorage.removeVideo(_videoId); + emit VideoRemoved(_videoId); + } // removeVideo - group channel video removal overload - function removeGroupChannelVideoAsCurator ( - uint64 _videoId, - uint64 _curatorId - ) public whenNotPaused { - Video memory video = videoStorage.getExistingVideo(_videoId); - Channel memory channel = channelStorage.getExistingChannel(video.channelId); + function removeGroupChannelVideoAsCurator(uint64 _videoId, uint64 _curatorId) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); require(channel.ownership.isCuratorGroup(), "The video does not belong to Curator Group channel"); - require( + require( _hasGroupAccessToOperation(msg.sender, _curatorId, channel.ownership, ContentDirectoryOperation.RemoveVideo), "Access denied" ); - videoStorage.removeVideo(_videoId); - emit VideoRemoved(_videoId); - } + videoStorage.removeVideo(_videoId); + emit VideoRemoved(_videoId); + } // removeVideo - curator context + reason overload - function removeVideoAsCurator ( - uint64 _videoId, + function removeVideoAsCurator( + uint64 _videoId, uint64 _curatorId, - string memory _reason - ) public whenNotPaused { - Video memory video = videoStorage.getExistingVideo(_videoId); - Channel memory channel = channelStorage.getExistingChannel(video.channelId); - require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); - require(bytes(_reason).length > REMOVE_VIDEO_REASON_MIN_LENGTH, "The reason is too short"); - videoStorage.removeVideo(_videoId); - emit VideoRemovedByCurator(_videoId, _reason); - } - - function deactivateVideo ( - uint64 _videoId, - string memory _reason, - uint64 _curatorId - ) public whenNotPaused { - Video memory video = videoStorage.getExistingVideo(_videoId); - Channel memory channel = channelStorage.getExistingChannel(video.channelId); - require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); - require(video.isActive, "Video already deactivated"); - require(bytes(_reason).length >= DEACTIVATE_VIDEO_REASON_MIN_LENGTH, "The reason is too short"); - videoStorage.updateStatus(_videoId, false); - emit VideoDeactivated(_videoId, _reason); - } - - function activateVideo ( - uint64 _videoId, + string memory _reason + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(bytes(_reason).length > REMOVE_VIDEO_REASON_MIN_LENGTH, "The reason is too short"); + videoStorage.removeVideo(_videoId); + emit VideoRemovedByCurator(_videoId, _reason); + } + + function deactivateVideo( + uint64 _videoId, + string memory _reason, uint64 _curatorId - ) public whenNotPaused { - Video memory video = videoStorage.getExistingVideo(_videoId); - Channel memory channel = channelStorage.getExistingChannel(video.channelId); - require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); - require(!video.isActive, "Video already active"); - videoStorage.updateStatus(_videoId, true); - emit VideoReactivated(_videoId); - } + ) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(video.isActive, "Video already deactivated"); + require(bytes(_reason).length >= DEACTIVATE_VIDEO_REASON_MIN_LENGTH, "The reason is too short"); + videoStorage.updateStatus(_videoId, false); + emit VideoDeactivated(_videoId, _reason); + } + + function activateVideo(uint64 _videoId, uint64 _curatorId) public whenNotPaused { + Video memory video = videoStorage.getExistingVideo(_videoId); + Channel memory channel = channelStorage.getExistingChannel(video.channelId); + require(_canCurate(msg.sender, _curatorId, channel.ownership), "Access denied"); + require(!video.isActive, "Video already active"); + videoStorage.updateStatus(_videoId, true); + emit VideoReactivated(_videoId); + } } diff --git a/smart-contracts/contracts/Migrations.sol b/smart-contracts/contracts/Migrations.sol index 5fcab087b9..b17b28e136 100644 --- a/smart-contracts/contracts/Migrations.sol +++ b/smart-contracts/contracts/Migrations.sol @@ -3,7 +3,7 @@ pragma solidity ^0.6.0; contract Migrations { address public owner; - uint public last_completed_migration; + uint256 public last_completed_migration; constructor() public { owner = msg.sender; @@ -13,7 +13,7 @@ contract Migrations { if (msg.sender == owner) _; } - function setCompleted(uint completed) public restricted { + function setCompleted(uint256 completed) public restricted { last_completed_migration = completed; } diff --git a/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol b/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol index c1855a35bc..e84e475b74 100644 --- a/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol +++ b/smart-contracts/contracts/bridge/ContentWorkingGroupBridge.sol @@ -4,45 +4,38 @@ pragma solidity ^0.6.0; import "./auth.sol"; contract ContentWorkingGroupBridge is RuntimeManageable { - // A map of curatorId => evmAddress(roleKey) - mapping (uint64 => address) private addressByCuratorId; + // A map of curatorId => evmAddress(roleKey) + mapping(uint64 => address) private addressByCuratorId; - // evmAddress(roleKey) of current lead + // evmAddress(roleKey) of current lead address public currentLeadAddress; - // Lead status managed by the council + // Lead status managed by the council bool public isLeadActive = true; - constructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {} - - function setCuratorAddress (uint64 _curatorId, address _address) public onlyRuntime { - addressByCuratorId[_curatorId] = _address; - } - - function setLeadAddress (address _address) public onlyRuntime { - currentLeadAddress = _address; - } - - function setLeadStatus (bool _status) public onlyCouncil { - isLeadActive = _status; - } - - function isCurator (address _address, uint64 _curatorId) public view returns (bool) { - return ( - curatorExists(_curatorId) && - addressByCuratorId[_curatorId] == _address - ); - } - - function curatorExists (uint64 _curatorId) public view returns (bool) { - return addressByCuratorId[_curatorId] != address(0); - } - - function isActiveLead (address _address) public view returns (bool) { - return ( - isLeadActive && - currentLeadAddress != address(0) && - currentLeadAddress == _address - ); - } + constructor(RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {} + + function setCuratorAddress(uint64 _curatorId, address _address) public onlyRuntime { + addressByCuratorId[_curatorId] = _address; + } + + function setLeadAddress(address _address) public onlyRuntime { + currentLeadAddress = _address; + } + + function setLeadStatus(bool _status) public onlyCouncil { + isLeadActive = _status; + } + + function isCurator(address _address, uint64 _curatorId) public view returns (bool) { + return (curatorExists(_curatorId) && addressByCuratorId[_curatorId] == _address); + } + + function curatorExists(uint64 _curatorId) public view returns (bool) { + return addressByCuratorId[_curatorId] != address(0); + } + + function isActiveLead(address _address) public view returns (bool) { + return (isLeadActive && currentLeadAddress != address(0) && currentLeadAddress == _address); + } } diff --git a/smart-contracts/contracts/bridge/MembershipBridge.sol b/smart-contracts/contracts/bridge/MembershipBridge.sol index 2f71ed6312..16594daef4 100644 --- a/smart-contracts/contracts/bridge/MembershipBridge.sol +++ b/smart-contracts/contracts/bridge/MembershipBridge.sol @@ -4,22 +4,19 @@ pragma solidity ^0.6.0; import "./auth.sol"; contract MembershipBridge is RuntimeManageable { - mapping (uint64 => address) private controllerAddressByMemberId; + mapping(uint64 => address) private controllerAddressByMemberId; - constructor (RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {} + constructor(RuntimeAddressProvider _provider) public RuntimeManageable(_provider) {} - function setMemberAddress (uint64 _memberId, address _address) public onlyRuntime { + function setMemberAddress(uint64 _memberId, address _address) public onlyRuntime { controllerAddressByMemberId[_memberId] = _address; } - function isMemberController (address _address, uint64 _memberId) public view returns (bool) { - return ( - memberExists(_memberId) && - controllerAddressByMemberId[_memberId] == _address - ); - } + function isMemberController(address _address, uint64 _memberId) public view returns (bool) { + return (memberExists(_memberId) && controllerAddressByMemberId[_memberId] == _address); + } - function memberExists (uint64 _memberId) public view returns (bool) { - return controllerAddressByMemberId[_memberId] != address(0); - } + function memberExists(uint64 _memberId) public view returns (bool) { + return controllerAddressByMemberId[_memberId] != address(0); + } } diff --git a/smart-contracts/contracts/bridge/auth.sol b/smart-contracts/contracts/bridge/auth.sol index 33c7259cad..d5a170ceb3 100644 --- a/smart-contracts/contracts/bridge/auth.sol +++ b/smart-contracts/contracts/bridge/auth.sol @@ -4,40 +4,40 @@ pragma solidity ^0.6.0; // Provider of runtime-hardcoded addresses // (can be customized for testing purposes) contract RuntimeAddressProvider { - address public runtimeAddress; - address public councilAddress; + address public runtimeAddress; + address public councilAddress; - constructor (address _runtimeAddress, address _councilAddress) public { - // The address hardcoded in the runtime, used to update bridges + constructor(address _runtimeAddress, address _councilAddress) public { + // The address hardcoded in the runtime, used to update bridges // (and possibly other operations that shouldn't be done via proposal) - runtimeAddress = _runtimeAddress; - // This is the address hardcoded in the runtime proposal module + runtimeAddress = _runtimeAddress; + // This is the address hardcoded in the runtime proposal module // (can only be used in context of proposal execution) - councilAddress = _councilAddress; - } + councilAddress = _councilAddress; + } } // Abstract contract providing modifiers for contracts that can be managed through runtime/proposals abstract contract RuntimeManageable { - RuntimeAddressProvider public runtimeAddressProvider; + RuntimeAddressProvider public runtimeAddressProvider; - constructor (RuntimeAddressProvider _runtimeAddressProvider) public { - runtimeAddressProvider = _runtimeAddressProvider; - } + constructor(RuntimeAddressProvider _runtimeAddressProvider) public { + runtimeAddressProvider = _runtimeAddressProvider; + } - modifier onlyRuntime { - require( - msg.sender == runtimeAddressProvider.runtimeAddress(), - "This function can only be executed from the runtime" - ); - _; - } + modifier onlyRuntime { + require( + msg.sender == runtimeAddressProvider.runtimeAddress(), + "This function can only be executed from the runtime" + ); + _; + } - modifier onlyCouncil { - require( - msg.sender == runtimeAddressProvider.councilAddress(), - "This function can only be executed through proposal system" - ); - _; - } + modifier onlyCouncil { + require( + msg.sender == runtimeAddressProvider.councilAddress(), + "This function can only be executed through proposal system" + ); + _; + } } diff --git a/smart-contracts/contracts/lib/SafeMath16.sol b/smart-contracts/contracts/lib/SafeMath16.sol index 339d671153..b6ea3996f8 100644 --- a/smart-contracts/contracts/lib/SafeMath16.sol +++ b/smart-contracts/contracts/lib/SafeMath16.sol @@ -3,144 +3,156 @@ pragma solidity ^0.6.0; // uint16 version of OpenZeppelin's SafeMath library SafeMath16 { - /** - * @dev Returns the addition of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(uint16 a, uint16 b) internal pure returns (uint16) { - uint16 c = a + b; - require(c >= a, "SafeMath: addition overflow"); + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint16 a, uint16 b) internal pure returns (uint16) { + uint16 c = a + b; + require(c >= a, "SafeMath: addition overflow"); - return c; - } + return c; + } - /** - * @dev Returns the subtraction of two unsigned integers, reverting on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint16 a, uint16 b) internal pure returns (uint16) { - return sub(a, b, "SafeMath: subtraction overflow"); - } + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint16 a, uint16 b) internal pure returns (uint16) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub( + uint16 a, + uint16 b, + string memory errorMessage + ) internal pure returns (uint16) { + require(b <= a, errorMessage); + uint16 c = a - b; - /** - * @dev Returns the subtraction of two unsigned integers, reverting with custom message on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) { - require(b <= a, errorMessage); - uint16 c = a - b; + return c; + } - return c; + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint16 a, uint16 b) internal pure returns (uint16) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; } - /** - * @dev Returns the multiplication of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(uint16 a, uint16 b) internal pure returns (uint16) { - // Gas optimization: this is cheaper than requiring 'a' not being zero, but the - // benefit is lost if 'b' is also tested. - // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 - if (a == 0) { - return 0; - } + uint16 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); - uint16 c = a * b; - require(c / a == b, "SafeMath: multiplication overflow"); + return c; + } - return c; - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint16 a, uint16 b) internal pure returns (uint16) { + return div(a, b, "SafeMath: division by zero"); + } - /** - * @dev Returns the integer division of two unsigned integers. Reverts on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint16 a, uint16 b) internal pure returns (uint16) { - return div(a, b, "SafeMath: division by zero"); - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div( + uint16 a, + uint16 b, + string memory errorMessage + ) internal pure returns (uint16) { + require(b > 0, errorMessage); + uint16 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold - /** - * @dev Returns the integer division of two unsigned integers. Reverts with custom message on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) { - require(b > 0, errorMessage); - uint16 c = a / b; - // assert(a == b * c + a % b); // There is no case in which this doesn't hold + return c; + } - return c; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint16 a, uint16 b) internal pure returns (uint16) { - return mod(a, b, "SafeMath: modulo by zero"); - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint16 a, uint16 b) internal pure returns (uint16) { + return mod(a, b, "SafeMath: modulo by zero"); + } - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts with custom message when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint16 a, uint16 b, string memory errorMessage) internal pure returns (uint16) { - require(b != 0, errorMessage); - return a % b; - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod( + uint16 a, + uint16 b, + string memory errorMessage + ) internal pure returns (uint16) { + require(b != 0, errorMessage); + return a % b; + } } diff --git a/smart-contracts/contracts/lib/SafeMath32.sol b/smart-contracts/contracts/lib/SafeMath32.sol index 5a9b5a673d..6829f418db 100644 --- a/smart-contracts/contracts/lib/SafeMath32.sol +++ b/smart-contracts/contracts/lib/SafeMath32.sol @@ -3,144 +3,156 @@ pragma solidity ^0.6.0; // uint32 version of OpenZeppelin's SafeMath library SafeMath32 { - /** - * @dev Returns the addition of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(uint32 a, uint32 b) internal pure returns (uint32) { - uint32 c = a + b; - require(c >= a, "SafeMath: addition overflow"); + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint32 a, uint32 b) internal pure returns (uint32) { + uint32 c = a + b; + require(c >= a, "SafeMath: addition overflow"); - return c; - } + return c; + } - /** - * @dev Returns the subtraction of two unsigned integers, reverting on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint32 a, uint32 b) internal pure returns (uint32) { - return sub(a, b, "SafeMath: subtraction overflow"); - } + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint32 a, uint32 b) internal pure returns (uint32) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub( + uint32 a, + uint32 b, + string memory errorMessage + ) internal pure returns (uint32) { + require(b <= a, errorMessage); + uint32 c = a - b; - /** - * @dev Returns the subtraction of two unsigned integers, reverting with custom message on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) { - require(b <= a, errorMessage); - uint32 c = a - b; + return c; + } - return c; + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint32 a, uint32 b) internal pure returns (uint32) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; } - /** - * @dev Returns the multiplication of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(uint32 a, uint32 b) internal pure returns (uint32) { - // Gas optimization: this is cheaper than requiring 'a' not being zero, but the - // benefit is lost if 'b' is also tested. - // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 - if (a == 0) { - return 0; - } + uint32 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); - uint32 c = a * b; - require(c / a == b, "SafeMath: multiplication overflow"); + return c; + } - return c; - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint32 a, uint32 b) internal pure returns (uint32) { + return div(a, b, "SafeMath: division by zero"); + } - /** - * @dev Returns the integer division of two unsigned integers. Reverts on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint32 a, uint32 b) internal pure returns (uint32) { - return div(a, b, "SafeMath: division by zero"); - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div( + uint32 a, + uint32 b, + string memory errorMessage + ) internal pure returns (uint32) { + require(b > 0, errorMessage); + uint32 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold - /** - * @dev Returns the integer division of two unsigned integers. Reverts with custom message on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) { - require(b > 0, errorMessage); - uint32 c = a / b; - // assert(a == b * c + a % b); // There is no case in which this doesn't hold + return c; + } - return c; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint32 a, uint32 b) internal pure returns (uint32) { - return mod(a, b, "SafeMath: modulo by zero"); - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint32 a, uint32 b) internal pure returns (uint32) { + return mod(a, b, "SafeMath: modulo by zero"); + } - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts with custom message when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint32 a, uint32 b, string memory errorMessage) internal pure returns (uint32) { - require(b != 0, errorMessage); - return a % b; - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod( + uint32 a, + uint32 b, + string memory errorMessage + ) internal pure returns (uint32) { + require(b != 0, errorMessage); + return a % b; + } } diff --git a/smart-contracts/contracts/lib/SafeMath64.sol b/smart-contracts/contracts/lib/SafeMath64.sol index fcf9daf142..6f86e800d2 100644 --- a/smart-contracts/contracts/lib/SafeMath64.sol +++ b/smart-contracts/contracts/lib/SafeMath64.sol @@ -3,144 +3,156 @@ pragma solidity ^0.6.0; // uint64 version of OpenZeppelin's SafeMath library SafeMath64 { - /** - * @dev Returns the addition of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(uint64 a, uint64 b) internal pure returns (uint64) { - uint64 c = a + b; - require(c >= a, "SafeMath: addition overflow"); + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint64 a, uint64 b) internal pure returns (uint64) { + uint64 c = a + b; + require(c >= a, "SafeMath: addition overflow"); - return c; - } + return c; + } - /** - * @dev Returns the subtraction of two unsigned integers, reverting on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint64 a, uint64 b) internal pure returns (uint64) { - return sub(a, b, "SafeMath: subtraction overflow"); - } + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint64 a, uint64 b) internal pure returns (uint64) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub( + uint64 a, + uint64 b, + string memory errorMessage + ) internal pure returns (uint64) { + require(b <= a, errorMessage); + uint64 c = a - b; - /** - * @dev Returns the subtraction of two unsigned integers, reverting with custom message on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) { - require(b <= a, errorMessage); - uint64 c = a - b; + return c; + } - return c; + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint64 a, uint64 b) internal pure returns (uint64) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; } - /** - * @dev Returns the multiplication of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(uint64 a, uint64 b) internal pure returns (uint64) { - // Gas optimization: this is cheaper than requiring 'a' not being zero, but the - // benefit is lost if 'b' is also tested. - // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 - if (a == 0) { - return 0; - } + uint64 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); - uint64 c = a * b; - require(c / a == b, "SafeMath: multiplication overflow"); + return c; + } - return c; - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint64 a, uint64 b) internal pure returns (uint64) { + return div(a, b, "SafeMath: division by zero"); + } - /** - * @dev Returns the integer division of two unsigned integers. Reverts on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint64 a, uint64 b) internal pure returns (uint64) { - return div(a, b, "SafeMath: division by zero"); - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div( + uint64 a, + uint64 b, + string memory errorMessage + ) internal pure returns (uint64) { + require(b > 0, errorMessage); + uint64 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold - /** - * @dev Returns the integer division of two unsigned integers. Reverts with custom message on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) { - require(b > 0, errorMessage); - uint64 c = a / b; - // assert(a == b * c + a % b); // There is no case in which this doesn't hold + return c; + } - return c; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint64 a, uint64 b) internal pure returns (uint64) { - return mod(a, b, "SafeMath: modulo by zero"); - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint64 a, uint64 b) internal pure returns (uint64) { + return mod(a, b, "SafeMath: modulo by zero"); + } - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts with custom message when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint64 a, uint64 b, string memory errorMessage) internal pure returns (uint64) { - require(b != 0, errorMessage); - return a % b; - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod( + uint64 a, + uint64 b, + string memory errorMessage + ) internal pure returns (uint64) { + require(b != 0, errorMessage); + return a % b; + } } diff --git a/smart-contracts/contracts/lib/SafeMath8.sol b/smart-contracts/contracts/lib/SafeMath8.sol index 132fd34bbb..8df88eafe2 100644 --- a/smart-contracts/contracts/lib/SafeMath8.sol +++ b/smart-contracts/contracts/lib/SafeMath8.sol @@ -3,144 +3,156 @@ pragma solidity ^0.6.0; // uint8 version of OpenZeppelin's SafeMath library SafeMath8 { - /** - * @dev Returns the addition of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `+` operator. - * - * Requirements: - * - * - Addition cannot overflow. - */ - function add(uint8 a, uint8 b) internal pure returns (uint8) { - uint8 c = a + b; - require(c >= a, "SafeMath: addition overflow"); + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint8 a, uint8 b) internal pure returns (uint8) { + uint8 c = a + b; + require(c >= a, "SafeMath: addition overflow"); - return c; - } + return c; + } - /** - * @dev Returns the subtraction of two unsigned integers, reverting on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint8 a, uint8 b) internal pure returns (uint8) { - return sub(a, b, "SafeMath: subtraction overflow"); - } + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint8 a, uint8 b) internal pure returns (uint8) { + return sub(a, b, "SafeMath: subtraction overflow"); + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub( + uint8 a, + uint8 b, + string memory errorMessage + ) internal pure returns (uint8) { + require(b <= a, errorMessage); + uint8 c = a - b; - /** - * @dev Returns the subtraction of two unsigned integers, reverting with custom message on - * overflow (when the result is negative). - * - * Counterpart to Solidity's `-` operator. - * - * Requirements: - * - * - Subtraction cannot overflow. - */ - function sub(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) { - require(b <= a, errorMessage); - uint8 c = a - b; + return c; + } - return c; + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint8 a, uint8 b) internal pure returns (uint8) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) { + return 0; } - /** - * @dev Returns the multiplication of two unsigned integers, reverting on - * overflow. - * - * Counterpart to Solidity's `*` operator. - * - * Requirements: - * - * - Multiplication cannot overflow. - */ - function mul(uint8 a, uint8 b) internal pure returns (uint8) { - // Gas optimization: this is cheaper than requiring 'a' not being zero, but the - // benefit is lost if 'b' is also tested. - // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 - if (a == 0) { - return 0; - } + uint8 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); - uint8 c = a * b; - require(c / a == b, "SafeMath: multiplication overflow"); + return c; + } - return c; - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint8 a, uint8 b) internal pure returns (uint8) { + return div(a, b, "SafeMath: division by zero"); + } - /** - * @dev Returns the integer division of two unsigned integers. Reverts on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint8 a, uint8 b) internal pure returns (uint8) { - return div(a, b, "SafeMath: division by zero"); - } + /** + * @dev Returns the integer division of two unsigned integers. Reverts with custom message on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div( + uint8 a, + uint8 b, + string memory errorMessage + ) internal pure returns (uint8) { + require(b > 0, errorMessage); + uint8 c = a / b; + // assert(a == b * c + a % b); // There is no case in which this doesn't hold - /** - * @dev Returns the integer division of two unsigned integers. Reverts with custom message on - * division by zero. The result is rounded towards zero. - * - * Counterpart to Solidity's `/` operator. Note: this function uses a - * `revert` opcode (which leaves remaining gas untouched) while Solidity - * uses an invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function div(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) { - require(b > 0, errorMessage); - uint8 c = a / b; - // assert(a == b * c + a % b); // There is no case in which this doesn't hold + return c; + } - return c; - } - - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint8 a, uint8 b) internal pure returns (uint8) { - return mod(a, b, "SafeMath: modulo by zero"); - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint8 a, uint8 b) internal pure returns (uint8) { + return mod(a, b, "SafeMath: modulo by zero"); + } - /** - * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), - * Reverts with custom message when dividing by zero. - * - * Counterpart to Solidity's `%` operator. This function uses a `revert` - * opcode (which leaves remaining gas untouched) while Solidity uses an - * invalid opcode to revert (consuming all remaining gas). - * - * Requirements: - * - * - The divisor cannot be zero. - */ - function mod(uint8 a, uint8 b, string memory errorMessage) internal pure returns (uint8) { - require(b != 0, errorMessage); - return a % b; - } + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * Reverts with custom message when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod( + uint8 a, + uint8 b, + string memory errorMessage + ) internal pure returns (uint8) { + require(b != 0, errorMessage); + return a % b; + } } diff --git a/smart-contracts/contracts/storage/ChannelStorage.sol b/smart-contracts/contracts/storage/ChannelStorage.sol index 5e678e50e7..2b9fde9e9e 100644 --- a/smart-contracts/contracts/storage/ChannelStorage.sol +++ b/smart-contracts/contracts/storage/ChannelStorage.sol @@ -12,129 +12,121 @@ import "../lib/SafeMath64.sol"; // - Identifier (address/id/hash), which is represented by uint256 struct ChannelOwnership { uint8 ownershipType; - uint256 ownerId; + uint256 ownerId; } // Any change to this struct requires ChannelStorage migration struct Channel { ChannelOwnership ownership; bool isActive; - uint32 videoLimit; // 0 = use default + uint32 videoLimit; // 0 = use default bool isExisting; } // A helper library to parse ChannelOwnership. // New ownership types can be added if needed without the need for migration // (but changing/removing existing ones would still require migration to new storage) -enum ChannelOwnerType { Address, Member, CuratorGroup } +enum ChannelOwnerType {Address, Member, CuratorGroup} + library ChannelOwnershipDecoder { - function isAddress(ChannelOwnership memory _ownership) internal pure returns (bool) { - return _ownership.ownershipType == uint8(ChannelOwnerType.Address); - } - - function isMember(ChannelOwnership memory _ownership) internal pure returns (bool) { - return _ownership.ownershipType == uint8(ChannelOwnerType.Member); - } - - function isCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (bool) { - return _ownership.ownershipType == uint8(ChannelOwnerType.CuratorGroup); - } - - function asAddress(ChannelOwnership memory _ownership) internal pure returns (address) { - require( - isAddress(_ownership), - "asAddress called on non-address ChannelOwnership" - ); - return address(uint160(_ownership.ownerId)); - } - - function asMember(ChannelOwnership memory _ownership) internal pure returns (uint64) { - require( - isMember(_ownership), - "asMember called on non-member ChannelOwnership" - ); - return uint64(_ownership.ownerId); - } - - function asCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (uint16) { - require( - isCuratorGroup(_ownership), - "asCuratorGroup called on non-group ChannelOwnership" - ); - return uint16(_ownership.ownerId); - } - - function isValid(ChannelOwnership memory _ownership) internal pure returns (bool) { - if (isAddress(_ownership)) { - return uint256(uint160(asAddress(_ownership))) == _ownership.ownerId; - } - if (isMember(_ownership)) { - return uint256(asMember(_ownership)) == _ownership.ownerId; - } - if (isCuratorGroup(_ownership)) { - return uint256(asCuratorGroup(_ownership)) == _ownership.ownerId; - } - return false; - } + function isAddress(ChannelOwnership memory _ownership) internal pure returns (bool) { + return _ownership.ownershipType == uint8(ChannelOwnerType.Address); + } + + function isMember(ChannelOwnership memory _ownership) internal pure returns (bool) { + return _ownership.ownershipType == uint8(ChannelOwnerType.Member); + } + + function isCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (bool) { + return _ownership.ownershipType == uint8(ChannelOwnerType.CuratorGroup); + } + + function asAddress(ChannelOwnership memory _ownership) internal pure returns (address) { + require(isAddress(_ownership), "asAddress called on non-address ChannelOwnership"); + return address(uint160(_ownership.ownerId)); + } + + function asMember(ChannelOwnership memory _ownership) internal pure returns (uint64) { + require(isMember(_ownership), "asMember called on non-member ChannelOwnership"); + return uint64(_ownership.ownerId); + } + + function asCuratorGroup(ChannelOwnership memory _ownership) internal pure returns (uint16) { + require(isCuratorGroup(_ownership), "asCuratorGroup called on non-group ChannelOwnership"); + return uint16(_ownership.ownerId); + } + + function isValid(ChannelOwnership memory _ownership) internal pure returns (bool) { + if (isAddress(_ownership)) { + return uint256(uint160(asAddress(_ownership))) == _ownership.ownerId; + } + if (isMember(_ownership)) { + return uint256(asMember(_ownership)) == _ownership.ownerId; + } + if (isCuratorGroup(_ownership)) { + return uint256(asCuratorGroup(_ownership)) == _ownership.ownerId; + } + return false; + } } contract ChannelStorage is Ownable { - mapping (uint64 => Channel) private channelById; - // ownershipType => ownerId => channelCount double-map - mapping (uint8 => mapping(uint256 => uint32)) public channelCountByOwnership; + mapping(uint64 => Channel) private channelById; + // ownershipType => ownerId => channelCount double-map + mapping(uint8 => mapping(uint256 => uint32)) public channelCountByOwnership; uint64 public nextChannelId = 1; - using SafeMath32 for uint32; - using SafeMath64 for uint64; + using SafeMath32 for uint32; + using SafeMath64 for uint64; - function _incCountByOwnership (ChannelOwnership memory _ownership) internal { + function _incCountByOwnership(ChannelOwnership memory _ownership) internal { uint32 currentCount = channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId]; channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId] = currentCount.add(1); - } + } - function _decCountByOwnership (ChannelOwnership memory _ownership) internal { + function _decCountByOwnership(ChannelOwnership memory _ownership) internal { uint32 currentCount = channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId]; - channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId] = currentCount.sub(1); - } - - function addChannel (ChannelOwnership memory _ownership) public onlyOwner returns (uint64) { - uint64 channelId = nextChannelId; - // Get storage ref - Channel storage newChannel = channelById[channelId]; - // Populate the struct - newChannel.isExisting = true; - newChannel.ownership = _ownership; - _incCountByOwnership(_ownership); - nextChannelId = nextChannelId.add(1); - return channelId; - } - - // Get channel + perform existance check - function getExistingChannel(uint64 _channelId) public view returns (Channel memory) { - Channel memory channel = channelById[_channelId]; - require(channel.isExisting, "Trying to access unexisting channel"); - return channel; - } - - function updateOwnership (uint64 _channelId, ChannelOwnership memory _ownership) public onlyOwner { - Channel storage channel = channelById[_channelId]; - _decCountByOwnership(channel.ownership); - channel.ownership = _ownership; - _incCountByOwnership(_ownership); - } - - function updateStatus (uint64 _channelId, bool _isActive) public onlyOwner { - Channel storage channel = channelById[_channelId]; - channel.isActive = _isActive; - } - - function setChannelVideoLimit (uint64 _channelId, uint32 _videoLimit) public onlyOwner { - Channel storage channel = channelById[_channelId]; - channel.videoLimit = _videoLimit; - } - - function removeChannel (uint64 _channelId) public onlyOwner { - _decCountByOwnership(channelById[_channelId].ownership); - delete channelById[_channelId]; - } + channelCountByOwnership[_ownership.ownershipType][_ownership.ownerId] = currentCount.sub(1); + } + + function addChannel(ChannelOwnership memory _ownership) public onlyOwner returns (uint64) { + uint64 channelId = nextChannelId; + // Get storage ref + Channel storage newChannel = channelById[channelId]; + // Populate the struct + newChannel.isExisting = true; + newChannel.ownership = _ownership; + _incCountByOwnership(_ownership); + nextChannelId = nextChannelId.add(1); + return channelId; + } + + // Get channel + perform existance check + function getExistingChannel(uint64 _channelId) public view returns (Channel memory) { + Channel memory channel = channelById[_channelId]; + require(channel.isExisting, "Trying to access unexisting channel"); + return channel; + } + + function updateOwnership(uint64 _channelId, ChannelOwnership memory _ownership) public onlyOwner { + Channel storage channel = channelById[_channelId]; + _decCountByOwnership(channel.ownership); + channel.ownership = _ownership; + _incCountByOwnership(_ownership); + } + + function updateStatus(uint64 _channelId, bool _isActive) public onlyOwner { + Channel storage channel = channelById[_channelId]; + channel.isActive = _isActive; + } + + function setChannelVideoLimit(uint64 _channelId, uint32 _videoLimit) public onlyOwner { + Channel storage channel = channelById[_channelId]; + channel.videoLimit = _videoLimit; + } + + function removeChannel(uint64 _channelId) public onlyOwner { + _decCountByOwnership(channelById[_channelId].ownership); + delete channelById[_channelId]; + } } diff --git a/smart-contracts/contracts/storage/CuratorGroupStorage.sol b/smart-contracts/contracts/storage/CuratorGroupStorage.sol index e001f12131..72a9f3c38f 100644 --- a/smart-contracts/contracts/storage/CuratorGroupStorage.sol +++ b/smart-contracts/contracts/storage/CuratorGroupStorage.sol @@ -10,82 +10,76 @@ import "../lib/SafeMath32.sol"; // Any change to this struct requires CuratorGroupStorage migration struct Group { - bool isExisting; - uint32 curatorsCount; - // A generic, storage representation of group permissions' flags - // Those flags can have different meanings depending on current logic implementation + bool isExisting; + uint32 curatorsCount; + // A generic, storage representation of group permissions' flags + // Those flags can have different meanings depending on current logic implementation bool[] permissions; } contract CuratorGroupStorage is Ownable { - using SafeMath8 for uint8; - using SafeMath16 for uint16; - using SafeMath32 for uint32; + using SafeMath8 for uint8; + using SafeMath16 for uint16; + using SafeMath32 for uint32; // curatorId => groupId => boolean double-map representing curator membership in group - mapping (uint64 => mapping (uint16 => bool)) private isCuratorInGroup; + mapping(uint64 => mapping(uint16 => bool)) private isCuratorInGroup; - mapping (uint16 => Group) private groupById; + mapping(uint16 => Group) private groupById; uint16 public nextGroupId = 1; - function addGroup (bool[] memory _permissions) public onlyOwner returns (uint16) { - uint16 groupId = nextGroupId; - // Get storage ref - Group storage newGroup = groupById[groupId]; - // Populate the struct - newGroup.isExisting = true; + function addGroup(bool[] memory _permissions) public onlyOwner returns (uint16) { + uint16 groupId = nextGroupId; + // Get storage ref + Group storage newGroup = groupById[groupId]; + // Populate the struct + newGroup.isExisting = true; newGroup.permissions = _permissions; - nextGroupId = nextGroupId.add(1); + nextGroupId = nextGroupId.add(1); return groupId; - } + } - function setGroupPermissions (uint16 _groupId, bool[] memory _permissions) public onlyOwner returns (uint16) { + function setGroupPermissions(uint16 _groupId, bool[] memory _permissions) public onlyOwner returns (uint16) { Group storage group = groupById[_groupId]; group.permissions = _permissions; } - function groupExists (uint16 _groupId) public view returns (bool) { - return groupById[_groupId].isExisting; - } - - function getExistingGroup (uint16 _groupId) public view returns (Group memory) { - require( - this.groupExists(_groupId), - "Trying to access unexisting group" - ); - return groupById[_groupId]; - } - - function isCuratorInExistingGroup (uint64 _curatorId, uint16 _groupId) public view returns (bool) { - return ( - groupExists(_groupId) && - isCuratorInGroup[_curatorId][_groupId] - ); + function groupExists(uint16 _groupId) public view returns (bool) { + return groupById[_groupId].isExisting; + } + + function getExistingGroup(uint16 _groupId) public view returns (Group memory) { + require(this.groupExists(_groupId), "Trying to access unexisting group"); + return groupById[_groupId]; + } + + function isCuratorInExistingGroup(uint64 _curatorId, uint16 _groupId) public view returns (bool) { + return (groupExists(_groupId) && isCuratorInGroup[_curatorId][_groupId]); } - function addCuratorToGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner { + function addCuratorToGroup(uint64 _curatorId, uint16 _groupId) public onlyOwner { Group storage group = groupById[_groupId]; - isCuratorInGroup[_curatorId][_groupId] = true; - group.curatorsCount = group.curatorsCount.add(1); - } + isCuratorInGroup[_curatorId][_groupId] = true; + group.curatorsCount = group.curatorsCount.add(1); + } - function removeCuratorFromGroup (uint64 _curatorId, uint16 _groupId) public onlyOwner { + function removeCuratorFromGroup(uint64 _curatorId, uint16 _groupId) public onlyOwner { Group storage group = groupById[_groupId]; - isCuratorInGroup[_curatorId][_groupId] = false; - group.curatorsCount = group.curatorsCount.sub(1); - } - - function removeCuratorFromAllGroups(uint64 _curatorId) public onlyOwner { - for (uint16 i = 1; i < nextGroupId; i = i.add(1)) { - if (isCuratorInGroup[_curatorId][i]) { - removeCuratorFromGroup(_curatorId, i); - } - } - } + isCuratorInGroup[_curatorId][_groupId] = false; + group.curatorsCount = group.curatorsCount.sub(1); + } + + function removeCuratorFromAllGroups(uint64 _curatorId) public onlyOwner { + for (uint16 i = 1; i < nextGroupId; i = i.add(1)) { + if (isCuratorInGroup[_curatorId][i]) { + removeCuratorFromGroup(_curatorId, i); + } + } + } // TODO: Is there a value in removing a group that has no curators and no channels anymore? - function removeGroup (uint16 _groupId) public onlyOwner { - delete groupById[_groupId]; // Will set isExisting to false - } + function removeGroup(uint16 _groupId) public onlyOwner { + delete groupById[_groupId]; // Will set isExisting to false + } } diff --git a/smart-contracts/contracts/storage/VideoStorage.sol b/smart-contracts/contracts/storage/VideoStorage.sol index bc203b291d..d1d3955601 100644 --- a/smart-contracts/contracts/storage/VideoStorage.sol +++ b/smart-contracts/contracts/storage/VideoStorage.sol @@ -7,51 +7,51 @@ import "../lib/SafeMath64.sol"; // Any change to this struct requires VideoStorage migration struct Video { - uint64 channelId; - bool isActive; - bool isExisting; + uint64 channelId; + bool isActive; + bool isExisting; } contract VideoStorage is Ownable { - using SafeMath64 for uint64; + using SafeMath64 for uint64; - mapping (uint64 => Video) private videoById; - mapping (uint64 => uint64) public videoCountByChannelId; + mapping(uint64 => Video) private videoById; + mapping(uint64 => uint64) public videoCountByChannelId; uint64 nextVideoId = 1; - function addVideo (uint64 _channelId) public onlyOwner returns (uint64) { - uint64 videoId = nextVideoId; - // Get storage ref - Video storage newVideo = videoById[videoId]; - // Populate the struct - newVideo.isExisting = true; - newVideo.isActive = true; - newVideo.channelId = _channelId; - // Update counters - videoCountByChannelId[_channelId] = videoCountByChannelId[_channelId].add(1); - nextVideoId = nextVideoId.add(1); - return videoId; - } - - // Get video + perform existance check - function getExistingVideo(uint64 _videoId) public view returns (Video memory) { - Video memory video = videoById[_videoId]; - require(video.isExisting, "Trying to access unexisting video"); - return video; - } - - function updateStatus (uint64 _videoId, bool _isActive) public onlyOwner { - // Get storage ref - Video storage video = videoById[_videoId]; - // Update the value in struct - video.isActive = _isActive; - } - - function removeVideo (uint64 _videoId) public onlyOwner { - // Dec videoCountByChannel + function addVideo(uint64 _channelId) public onlyOwner returns (uint64) { + uint64 videoId = nextVideoId; + // Get storage ref + Video storage newVideo = videoById[videoId]; + // Populate the struct + newVideo.isExisting = true; + newVideo.isActive = true; + newVideo.channelId = _channelId; + // Update counters + videoCountByChannelId[_channelId] = videoCountByChannelId[_channelId].add(1); + nextVideoId = nextVideoId.add(1); + return videoId; + } + + // Get video + perform existance check + function getExistingVideo(uint64 _videoId) public view returns (Video memory) { + Video memory video = videoById[_videoId]; + require(video.isExisting, "Trying to access unexisting video"); + return video; + } + + function updateStatus(uint64 _videoId, bool _isActive) public onlyOwner { + // Get storage ref + Video storage video = videoById[_videoId]; + // Update the value in struct + video.isActive = _isActive; + } + + function removeVideo(uint64 _videoId) public onlyOwner { + // Dec videoCountByChannel uint64 _channelId = videoById[_videoId].channelId; - videoCountByChannelId[_channelId] = videoCountByChannelId[_channelId].sub(1); - // Clear entry in map (setting isExisting to false) + videoCountByChannelId[_channelId] = videoCountByChannelId[_channelId].sub(1); + // Clear entry in map (setting isExisting to false) delete videoById[_videoId]; - } + } } diff --git a/smart-contracts/package.json b/smart-contracts/package.json index 37f8c97756..c41d857511 100644 --- a/smart-contracts/package.json +++ b/smart-contracts/package.json @@ -5,7 +5,8 @@ "test": "truffle test --network development", "start": "ganache-cli --hardfork istanbul --network-id 5777 --gasLimit 10000000", "compile": "truffle compile", - "lint:contracts": "solhint 'contracts/**/*.sol'" + "lint:contracts": "solhint 'contracts/**/*.sol'", + "format:contracts": "yarn prettier --write contracts/**/*.sol contracts/*.sol" }, "dependencies": { "@openzeppelin/contracts": "^3.0.0", @@ -14,9 +15,12 @@ "truffle": "^5.1.33" }, "devDependencies": { - "typescript": "^4.0.5", - "ts-node": "^9.0.0", "ganache-cli": "^6.12.1", - "solhint": "^3.3.2" + "solhint": "^3.3.2", + "ts-node": "^9.0.0", + "typescript": "^4.0.5", + "prettier": "^2.1.2", + "prettier-plugin-solidity": "^1.0.0-alpha.60", + "solhint-plugin-prettier": "^0.0.5" } } diff --git a/smart-contracts/yarn.lock b/smart-contracts/yarn.lock index cc50a53e4e..f31c93fc2f 100644 --- a/smart-contracts/yarn.lock +++ b/smart-contracts/yarn.lock @@ -213,6 +213,13 @@ resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.8.2.tgz#a6a5e93ac8dca6884a99a532f133beba59b87b69" integrity sha512-8LySx3qrNXPgB5JiULfG10O3V7QTxI/TLzSw5hFQhXWSkVxZBAv4rZQ0sYgLEbc8g3L2lmnujj1hKul38Eu5NQ== +"@solidity-parser/parser@^0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.9.0.tgz#1f9aedd25bf87983a02d95458c673c017a8857af" + integrity sha512-u1WzZgzOBFsGAcUhyj8DN/kop1SvrsaRT2ZVvDpVYnFI86YwbLrXCTGxefJzYGnA5Vajbbhi4aRtlxxFh69dfA== + dependencies: + antlr4 "^4.8.0" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -421,6 +428,11 @@ ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -440,6 +452,11 @@ antlr4@4.7.1: resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.7.1.tgz#69984014f096e9e775f53dd9744bf994d8959773" integrity sha512-haHyTW7Y9joE5MVs37P2lNYfU2RWBLfcRDD8OWldcdZm5TiCE91B5Xl1oWSwiDUSd4rlExpt2pu1fksYQjRBYQ== +antlr4@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/antlr4/-/antlr4-4.8.0.tgz#f938ec171be7fc2855cd3a533e87647185b32b6a" + integrity sha512-en/MxQ4OkPgGJQ3wD/muzj1uDnFSzdFIhc2+c6bHZokWkuBb6RRvFjpWhPxWLbgQvaEzldJZ0GSQpfSAaE3hqg== + anymatch@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" @@ -1242,6 +1259,11 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dir-to-object@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-to-object/-/dir-to-object-2.0.0.tgz#29723e9bd1c3e58e4f307bd04ff634c0370c8f8a" + integrity sha512-sXs0JKIhymON7T1UZuO2Ud6VTNAx/VTBXIl4+3mjb2RgfOpt+hectX0x04YqPOPdkeOAKoJuKqwqnXXURNPNEA== + doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -1339,6 +1361,16 @@ emoji-regex@^7.0.1: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.0.0: + version "9.2.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.0.tgz#a26da8e832b16a9753309f25e35e3c0efb9a066a" + integrity sha512-DNc3KFPK18bPdElMJnf/Pkv5TXhxFU3YFDEuGLDRtPmV4rkmCjBkCSEp22u6rBHdSN9Vlp/GK7k98prmE1Jgug== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -1462,7 +1494,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@4.0.0: +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -1543,6 +1575,13 @@ espree@^5.0.1: acorn-jsx "^5.0.0" eslint-visitor-keys "^1.0.0" +esprima-extract-comments@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/esprima-extract-comments/-/esprima-extract-comments-1.1.0.tgz#0dacab567a5900240de6d344cf18c33617becbc9" + integrity sha512-sBQUnvJwpeE9QnPrxh7dpI/dp67erYG4WXEAreAMoelPRpMR7NWb4YtwRPn9b+H1uLQKl/qS8WYmyaljTpjIsw== + dependencies: + esprima "^4.0.0" + esprima@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" @@ -1810,6 +1849,14 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +extract-comments@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/extract-comments/-/extract-comments-1.1.0.tgz#b90bca033a056bd69b8ba1c6b6b120fc2ee95c18" + integrity sha512-dzbZV2AdSSVW/4E7Ti5hZdHWbA+Z80RJsJhr5uiL10oyjl/gy7/o+HI1HwK4/WSZhlq4SNKU3oUzXlM13Qx02Q== + dependencies: + esprima-extract-comments "^1.1.0" + parse-code-context "^1.0.0" + extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -2386,6 +2433,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-function@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" @@ -3197,6 +3249,11 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5: pbkdf2 "^3.0.3" safe-buffer "^5.1.1" +parse-code-context@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-code-context/-/parse-code-context-1.0.0.tgz#718c295c593d0d19a37f898473268cc75e98de1e" + integrity sha512-OZQaqKaQnR21iqhlnPfVisFjBWjhnMl5J9MgbP8xC+EwoVqbXrq78lp+9Zb3ahmLzrIX5Us/qbvBnaS3hkH6OA== + parse-headers@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.3.tgz#5e8e7512383d140ba02f0c7aa9f49b4399c92515" @@ -3288,11 +3345,37 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + +prettier-plugin-solidity@^1.0.0-alpha.60: + version "1.0.0-alpha.60" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0-alpha.60.tgz#310a3af7e47d24fa1ef9e174523ff1f7b4d56c42" + integrity sha512-Dd6T0dVfw0kJrlEnLDFFE3mKRSP7zpT6zcIWvnSW+z4NBl+gmwJ7UJRZHD0CNDD6N48c+zb28xs3oF0ylDaYyg== + dependencies: + "@solidity-parser/parser" "^0.9.0" + dir-to-object "^2.0.0" + emoji-regex "^9.0.0" + escape-string-regexp "^4.0.0" + extract-comments "^1.1.0" + prettier "^2.0.5" + semver "^7.3.2" + string-width "^4.2.0" + prettier@^1.14.3: version "1.19.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== +prettier@^2.0.5, prettier@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" + integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== + process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" @@ -3566,6 +3649,11 @@ semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.2: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -3681,6 +3769,13 @@ slice-ansi@^2.1.0: astral-regex "^1.0.0" is-fullwidth-code-point "^2.0.0" +solhint-plugin-prettier@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/solhint-plugin-prettier/-/solhint-plugin-prettier-0.0.5.tgz#e3b22800ba435cd640a9eca805a7f8bc3e3e6a6b" + integrity sha512-7jmWcnVshIrO2FFinIvDQmhQpfpS2rRRn3RejiYgnjIE68xO2bvrYvjqVNfrio4xH9ghOqn83tKuTzLjEbmGIA== + dependencies: + prettier-linter-helpers "^1.0.0" + solhint@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/solhint/-/solhint-3.3.2.tgz#ebd7270bb50fd378b427d7a6fc9f2a7fd00216c0" @@ -3771,6 +3866,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.trimend@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46" @@ -3808,6 +3912,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"