@superfluid-finance/ethereum-contracts 1.2.3-dev.f94fdbb.0 → 1.3.1-dev.7df8a6a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/build/contracts/AccessControl.json +3 -3
  2. package/build/contracts/AccessControlEnumerable.json +3 -3
  3. package/build/contracts/Address.json +5 -5
  4. package/build/contracts/AgreementBase.json +13 -13
  5. package/build/contracts/AgreementLibrary.json +7 -7
  6. package/build/contracts/BaseRelayRecipient.json +5 -5
  7. package/build/contracts/BatchLiquidator.json +179 -179
  8. package/build/contracts/BatchOperation.json +5 -5
  9. package/build/contracts/CFAv1Library.json +5 -5
  10. package/build/contracts/CallUtils.json +7 -7
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +2107 -1917
  12. package/build/contracts/ConstantFlowAgreementV1.json +8 -8
  13. package/build/contracts/Context.json +3 -3
  14. package/build/contracts/ContextDefinitions.json +5 -5
  15. package/build/contracts/Create2.json +5 -5
  16. package/build/contracts/CustomSuperTokenBase.json +3 -3
  17. package/build/contracts/ERC165.json +3 -3
  18. package/build/contracts/ERC1820Implementer.json +5 -5
  19. package/build/contracts/ERC1820RegistryCompiled.json +7 -7
  20. package/build/contracts/ERC20.json +5 -5
  21. package/build/contracts/ERC20Burnable.json +3 -3
  22. package/build/contracts/ERC20Pausable.json +3 -3
  23. package/build/contracts/ERC20PresetMinterPauser.json +5 -5
  24. package/build/contracts/ERC20WithTokenInfo.json +3 -3
  25. package/build/contracts/ERC777Helper.json +7 -7
  26. package/build/contracts/ERC777RecipientDrainingGas.json +839 -839
  27. package/build/contracts/ERC777RecipientReverting.json +839 -839
  28. package/build/contracts/EnumerableSet.json +5 -5
  29. package/build/contracts/EventsEmitter.json +47 -47
  30. package/build/contracts/ExclusiveInflowTestApp.json +2107 -1917
  31. package/build/contracts/FixedSizeData.json +213 -213
  32. package/build/contracts/FlowExchangeTestApp.json +2107 -1917
  33. package/build/contracts/FlowOperatorDefinitions.json +5 -5
  34. package/build/contracts/FullUpgradableSuperTokenProxy.json +226 -312
  35. package/build/contracts/IAccessControl.json +3 -3
  36. package/build/contracts/IAccessControlEnumerable.json +3 -3
  37. package/build/contracts/IConstantFlowAgreementV1.json +451 -444
  38. package/build/contracts/IDAv1Library.json +5 -5
  39. package/build/contracts/IERC165.json +3 -3
  40. package/build/contracts/IERC1820Implementer.json +3 -3
  41. package/build/contracts/IERC1820Registry.json +3 -3
  42. package/build/contracts/IERC20.json +3 -3
  43. package/build/contracts/IERC20Metadata.json +3 -3
  44. package/build/contracts/IERC777.json +3 -3
  45. package/build/contracts/IERC777Recipient.json +3 -3
  46. package/build/contracts/IERC777Sender.json +3 -3
  47. package/build/contracts/IInstantDistributionAgreementV1.json +570 -559
  48. package/build/contracts/IMaticBridgedNativeSuperToken.json +71 -32
  49. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +3 -3
  50. package/build/contracts/IMultiSigWallet.json +3 -3
  51. package/build/contracts/IPureSuperToken.json +71 -32
  52. package/build/contracts/IPureSuperTokenCustom.json +3 -3
  53. package/build/contracts/IRelayRecipient.json +3 -3
  54. package/build/contracts/IResolver.json +3 -3
  55. package/build/contracts/ISETH.json +71 -32
  56. package/build/contracts/ISETHCustom.json +3 -3
  57. package/build/contracts/ISuperAgreement.json +3 -3
  58. package/build/contracts/ISuperApp.json +179 -173
  59. package/build/contracts/ISuperToken.json +522 -483
  60. package/build/contracts/ISuperTokenFactory.json +3 -3
  61. package/build/contracts/ISuperfluid.json +633 -628
  62. package/build/contracts/ISuperfluidGovernance.json +134 -133
  63. package/build/contracts/ISuperfluidToken.json +403 -394
  64. package/build/contracts/ITOGAv1.json +1211 -1211
  65. package/build/contracts/ITOGAv2.json +1211 -1211
  66. package/build/contracts/Initializable.json +3 -3
  67. package/build/contracts/InstantDistributionAgreementV1.json +10 -10
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +194 -194
  69. package/build/contracts/NonClosableOutflowTestApp.json +2107 -1917
  70. package/build/contracts/Ownable.json +3 -3
  71. package/build/contracts/Pausable.json +3 -3
  72. package/build/contracts/Proxy.json +3 -3
  73. package/build/contracts/PureSuperToken.json +91 -91
  74. package/build/contracts/Resolver.json +96 -96
  75. package/build/contracts/SETHProxy.json +199 -199
  76. package/build/contracts/SafeCast.json +5 -5
  77. package/build/contracts/SafeERC20.json +5 -5
  78. package/build/contracts/SafeMath.json +5 -5
  79. package/build/contracts/SelfDeletingFlowTestApp.json +2107 -1917
  80. package/build/contracts/SlotsBitmapLibrary.json +7 -7
  81. package/build/contracts/Strings.json +5 -5
  82. package/build/contracts/SuperAppBase.json +3 -3
  83. package/build/contracts/SuperAppDefinitions.json +5 -5
  84. package/build/contracts/SuperToken.json +2262 -2262
  85. package/build/contracts/SuperTokenFactory.json +582 -582
  86. package/build/contracts/SuperTokenFactoryBase.json +576 -576
  87. package/build/contracts/SuperTokenFactoryHelper.json +578 -578
  88. package/build/contracts/SuperUpgrader.json +687 -687
  89. package/build/contracts/Superfluid.json +6648 -6678
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +526 -526
  91. package/build/contracts/SuperfluidGovernanceBase.json +13 -13
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +5 -5
  93. package/build/contracts/SuperfluidGovernanceII.json +21 -21
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +20 -20
  95. package/build/contracts/SuperfluidLoader.json +147 -147
  96. package/build/contracts/SuperfluidToken.json +1269 -1269
  97. package/build/contracts/TOGA.json +1221 -1221
  98. package/build/contracts/TestGovernance.json +315 -315
  99. package/build/contracts/TestToken.json +475 -561
  100. package/build/contracts/TokenCustodian.json +220 -220
  101. package/build/contracts/TokenInfo.json +3 -3
  102. package/build/contracts/UUPSProxiable.json +136 -136
  103. package/build/contracts/UUPSProxy.json +87 -87
  104. package/build/contracts/UUPSUtils.json +43 -43
  105. package/build/contracts-sizes.txt +6 -6
  106. package/contracts/agreements/AgreementBase.sol +1 -1
  107. package/contracts/agreements/AgreementLibrary.sol +1 -1
  108. package/contracts/agreements/ConstantFlowAgreementV1.sol +1 -1
  109. package/contracts/agreements/InstantDistributionAgreementV1.sol +1 -1
  110. package/contracts/gov/SuperfluidGovernanceBase.sol +1 -1
  111. package/contracts/gov/SuperfluidGovernanceII.sol +1 -1
  112. package/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol +7 -10
  113. package/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol +11 -18
  114. package/contracts/interfaces/superfluid/ISuperApp.sol +7 -9
  115. package/contracts/interfaces/superfluid/ISuperToken.sol +36 -44
  116. package/contracts/interfaces/superfluid/ISuperfluid.sol +17 -21
  117. package/contracts/interfaces/superfluid/ISuperfluidGovernance.sol +1 -1
  118. package/contracts/interfaces/superfluid/ISuperfluidToken.sol +13 -14
  119. package/contracts/libs/BaseRelayRecipient.sol +1 -1
  120. package/contracts/libs/CallUtils.sol +1 -1
  121. package/contracts/libs/ERC1820RegistryCompiled.sol +1 -1
  122. package/contracts/libs/ERC777Helper.sol +1 -1
  123. package/contracts/libs/EventsEmitter.sol +2 -2
  124. package/contracts/libs/FixedSizeData.sol +2 -2
  125. package/contracts/libs/SlotsBitmapLibrary.sol +1 -1
  126. package/contracts/mocks/AgreementMock.sol +1 -1
  127. package/contracts/mocks/CFAAppMocks.sol +6 -6
  128. package/contracts/mocks/CFALibraryMock.sol +2 -2
  129. package/contracts/mocks/CallUtilsMock.sol +1 -1
  130. package/contracts/mocks/CallUtilsTester.sol +1 -1
  131. package/contracts/mocks/CustomSuperTokenMock.sol +1 -1
  132. package/contracts/mocks/ERC777SenderRecipientMock.sol +1 -1
  133. package/contracts/mocks/FakeSuperfluidMock.sol +1 -1
  134. package/contracts/mocks/ForwarderMock.sol +1 -1
  135. package/contracts/mocks/IDASuperAppTester.sol +2 -2
  136. package/contracts/mocks/IDAv1LibraryMock.sol +3 -3
  137. package/contracts/mocks/MockSmartWallet.sol +1 -1
  138. package/contracts/mocks/MultiFlowTesterApp.sol +2 -2
  139. package/contracts/mocks/SuperAppMocks.sol +15 -12
  140. package/contracts/mocks/SuperTokenFactoryMock.sol +1 -1
  141. package/contracts/mocks/SuperTokenMock.sol +1 -1
  142. package/contracts/mocks/SuperfluidDestructorMock.sol +1 -1
  143. package/contracts/mocks/SuperfluidGovernanceIIMock.sol +1 -1
  144. package/contracts/mocks/SuperfluidMock.sol +2 -2
  145. package/contracts/mocks/UUPSProxiableMock.sol +1 -1
  146. package/contracts/superfluid/FullUpgradableSuperTokenProxy.sol +2 -2
  147. package/contracts/superfluid/SuperToken.sol +1 -1
  148. package/contracts/superfluid/SuperTokenFactory.sol +1 -1
  149. package/contracts/superfluid/Superfluid.sol +4 -4
  150. package/contracts/superfluid/SuperfluidToken.sol +1 -1
  151. package/contracts/tokens/MaticBridgedNativeSuperToken.sol +1 -1
  152. package/contracts/tokens/PureSuperToken.sol +1 -1
  153. package/contracts/tokens/SETH.sol +1 -1
  154. package/contracts/upgradability/UUPSProxiable.sol +1 -1
  155. package/contracts/upgradability/UUPSProxy.sol +1 -1
  156. package/contracts/upgradability/UUPSUtils.sol +1 -1
  157. package/contracts/utils/BatchLiquidator.sol +1 -1
  158. package/contracts/utils/Resolver.sol +1 -1
  159. package/contracts/utils/SuperUpgrader.sol +6 -6
  160. package/contracts/utils/SuperfluidLoader.sol +1 -1
  161. package/contracts/utils/TOGA.sol +1 -1
  162. package/contracts/utils/TestGovernance.sol +2 -2
  163. package/contracts/utils/TestToken.sol +2 -2
  164. package/contracts/utils/TokenCustodian.sol +1 -1
  165. package/package.json +5 -3
  166. package/scripts/deploy-framework.js +5 -5
  167. package/scripts/deploy-super-token.js +13 -4
  168. package/scripts/gov-create-new-app-registration-key.js +2 -1
  169. package/scripts/gov-create-new-factory-registration.js +1 -1
  170. package/scripts/libs/getConfig.js +21 -3
  171. package/scripts/resolver-list-super-token.js +1 -0
@@ -310,9 +310,9 @@
310
310
  "type": "function"
311
311
  }
312
312
  ],
313
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"Set\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"get\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"details\":\"A simple implementation of IResolver using OZ AccessControl NOTE: Relevant events for indexing: - OZ Access Control events `RoleGranted`/`RoleRevoked`: admin add/remove - IResolver event `Set`: resolver name updates\",\"kind\":\"dev\",\"methods\":{\"get(string)\":{\"details\":\"Get address by name\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"set(string,address)\":{\"details\":\"Set resolver address name\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Resolver contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/Resolver.sol\":\"Resolver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/interfaces/utils/IResolver.sol\":{\"keccak256\":\"0xac74894c775af067d6caccdde0966c54a5e4ebefb0903bc7334c964359bf2f69\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://393980f96e0a4499a543d86f040339eb06ab4617808a53e33462ff8af8dc974e\",\"dweb:/ipfs/QmZGWZLEBYVp5NyTK5ifDJH9G5rfzQ84Pag7rpF2U1zKH2\"]},\"project:/contracts/utils/Resolver.sol\":{\"keccak256\":\"0x77709215b947b3f47ed7d65b7a112beb0e27ffe3b69b59d3e804893ab07695f8\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://f609f16e08efec144314d249a5812e8b96a363a9ceedd902e4607380f4006942\",\"dweb:/ipfs/QmcayEnvmTEvoNDpabLdmcmgd2jfYkKCAFoEnqybi5Td9f\"]}},\"version\":1}",
314
- "bytecode": "0x608060405234801561001057600080fd5b5061001c600033610021565b610177565b61002b828261002f565b5050565b610043828261006c60201b61043c1760201c565b60008281526001602090815260409091206100679183906104c061010a821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661002b576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100c63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061011f836001600160a01b038416610128565b90505b92915050565b600081815260018301602052604081205461016f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610122565b506000610122565b610cb180620001876000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80639010d07c116100715780639010d07c1461015a57806391d148541461016d578063a217fddf14610180578063a815ff1514610188578063ca15c8731461019b578063d547741f146101ae57600080fd5b806301ffc9a7146100ae578063248a9ca3146100d65780632f2ff15d1461010757806336568abe1461011c578063693ec85e1461012f575b600080fd5b6100c16100bc36600461094a565b6101c1565b60405190151581526020015b60405180910390f35b6100f96100e4366004610974565b60009081526020819052604090206001015490565b6040519081526020016100cd565b61011a6101153660046109a9565b6101ec565b005b61011a61012a3660046109a9565b610217565b61014261013d366004610a1e565b61029a565b6040516001600160a01b0390911681526020016100cd565b610142610168366004610a60565b6102cf565b6100c161017b3660046109a9565b6102ee565b6100f9600081565b61011a610196366004610a82565b610317565b6100f96101a9366004610974565b6103ff565b61011a6101bc3660046109a9565b610416565b60006001600160e01b03198216635a05180f60e01b14806101e657506101e6826104d5565b92915050565b600082815260208190526040902060010154610208813361050a565b610212838361056e565b505050565b6001600160a01b038116331461028c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102968282610590565b5050565b6000600283836040516102ae929190610ad6565b908152604051908190036020019020546001600160a01b0316905092915050565b60008281526001602052604081206102e790836105b2565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103226000336102ee565b6103675760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71030b236b4b760511b6044820152606401610283565b806002848460405161037a929190610ad6565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b0319909316929092179091556103b79084908490610ad6565b6040519081900381206001600160a01b0383168252907f496595ced95720268cf8bc60bae3f35024ff2a130f73ac4e20f5c1eaca35db999060200160405180910390a2505050565b60008181526001602052604081206101e6906105be565b600082815260208190526040902060010154610432813361050a565b6102128383610590565b61044682826102ee565b610296576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561047c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006102e7836001600160a01b0384166105c8565b60006001600160e01b03198216637965db0b60e01b14806101e657506301ffc9a760e01b6001600160e01b03198316146101e6565b61051482826102ee565b6102965761052c816001600160a01b03166014610617565b610537836020610617565b604051602001610548929190610b16565b60408051601f198184030181529082905262461bcd60e51b825261028391600401610b8b565b610578828261043c565b600082815260016020526040902061021290826104c0565b61059a82826107b3565b60008281526001602052604090206102129082610818565b60006102e7838361082d565b60006101e6825490565b600081815260018301602052604081205461060f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101e6565b5060006101e6565b60606000610626836002610bd4565b610631906002610bf3565b67ffffffffffffffff81111561064957610649610c0b565b6040519080825280601f01601f191660200182016040528015610673576020820181803683370190505b509050600360fc1b8160008151811061068e5761068e610c21565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106bd576106bd610c21565b60200101906001600160f81b031916908160001a90535060006106e1846002610bd4565b6106ec906001610bf3565b90505b6001811115610764576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061072057610720610c21565b1a60f81b82828151811061073657610736610c21565b60200101906001600160f81b031916908160001a90535060049490941c9361075d81610c37565b90506106ef565b5083156102e75760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610283565b6107bd82826102ee565b15610296576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006102e7836001600160a01b038416610857565b600082600001828154811061084457610844610c21565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561094057600061087b600183610c4e565b855490915060009061088f90600190610c4e565b90508181146108f45760008660000182815481106108af576108af610c21565b90600052602060002001549050808760000184815481106108d2576108d2610c21565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061090557610905610c65565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101e6565b60009150506101e6565b60006020828403121561095c57600080fd5b81356001600160e01b0319811681146102e757600080fd5b60006020828403121561098657600080fd5b5035919050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b823591506109cc6020840161098d565b90509250929050565b60008083601f8401126109e757600080fd5b50813567ffffffffffffffff8111156109ff57600080fd5b602083019150836020828501011115610a1757600080fd5b9250929050565b60008060208385031215610a3157600080fd5b823567ffffffffffffffff811115610a4857600080fd5b610a54858286016109d5565b90969095509350505050565b60008060408385031215610a7357600080fd5b50508035926020909101359150565b600080600060408486031215610a9757600080fd5b833567ffffffffffffffff811115610aae57600080fd5b610aba868287016109d5565b9094509250610acd90506020850161098d565b90509250925092565b8183823760009101908152919050565b60005b83811015610b01578181015183820152602001610ae9565b83811115610b10576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610b4e816017850160208801610ae6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610b7f816028840160208801610ae6565b01602801949350505050565b6020815260008251806020840152610baa816040850160208701610ae6565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610bee57610bee610bbe565b500290565b60008219821115610c0657610c06610bbe565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081610c4657610c46610bbe565b506000190190565b600082821015610c6057610c60610bbe565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a811b1dcb64b9e1debc20fccba300738ba9fa4d097673a56f4ede7fa89a26e2364736f6c634300080d0033",
315
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80639010d07c116100715780639010d07c1461015a57806391d148541461016d578063a217fddf14610180578063a815ff1514610188578063ca15c8731461019b578063d547741f146101ae57600080fd5b806301ffc9a7146100ae578063248a9ca3146100d65780632f2ff15d1461010757806336568abe1461011c578063693ec85e1461012f575b600080fd5b6100c16100bc36600461094a565b6101c1565b60405190151581526020015b60405180910390f35b6100f96100e4366004610974565b60009081526020819052604090206001015490565b6040519081526020016100cd565b61011a6101153660046109a9565b6101ec565b005b61011a61012a3660046109a9565b610217565b61014261013d366004610a1e565b61029a565b6040516001600160a01b0390911681526020016100cd565b610142610168366004610a60565b6102cf565b6100c161017b3660046109a9565b6102ee565b6100f9600081565b61011a610196366004610a82565b610317565b6100f96101a9366004610974565b6103ff565b61011a6101bc3660046109a9565b610416565b60006001600160e01b03198216635a05180f60e01b14806101e657506101e6826104d5565b92915050565b600082815260208190526040902060010154610208813361050a565b610212838361056e565b505050565b6001600160a01b038116331461028c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102968282610590565b5050565b6000600283836040516102ae929190610ad6565b908152604051908190036020019020546001600160a01b0316905092915050565b60008281526001602052604081206102e790836105b2565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103226000336102ee565b6103675760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71030b236b4b760511b6044820152606401610283565b806002848460405161037a929190610ad6565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b0319909316929092179091556103b79084908490610ad6565b6040519081900381206001600160a01b0383168252907f496595ced95720268cf8bc60bae3f35024ff2a130f73ac4e20f5c1eaca35db999060200160405180910390a2505050565b60008181526001602052604081206101e6906105be565b600082815260208190526040902060010154610432813361050a565b6102128383610590565b61044682826102ee565b610296576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561047c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006102e7836001600160a01b0384166105c8565b60006001600160e01b03198216637965db0b60e01b14806101e657506301ffc9a760e01b6001600160e01b03198316146101e6565b61051482826102ee565b6102965761052c816001600160a01b03166014610617565b610537836020610617565b604051602001610548929190610b16565b60408051601f198184030181529082905262461bcd60e51b825261028391600401610b8b565b610578828261043c565b600082815260016020526040902061021290826104c0565b61059a82826107b3565b60008281526001602052604090206102129082610818565b60006102e7838361082d565b60006101e6825490565b600081815260018301602052604081205461060f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101e6565b5060006101e6565b60606000610626836002610bd4565b610631906002610bf3565b67ffffffffffffffff81111561064957610649610c0b565b6040519080825280601f01601f191660200182016040528015610673576020820181803683370190505b509050600360fc1b8160008151811061068e5761068e610c21565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106bd576106bd610c21565b60200101906001600160f81b031916908160001a90535060006106e1846002610bd4565b6106ec906001610bf3565b90505b6001811115610764576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061072057610720610c21565b1a60f81b82828151811061073657610736610c21565b60200101906001600160f81b031916908160001a90535060049490941c9361075d81610c37565b90506106ef565b5083156102e75760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610283565b6107bd82826102ee565b15610296576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006102e7836001600160a01b038416610857565b600082600001828154811061084457610844610c21565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561094057600061087b600183610c4e565b855490915060009061088f90600190610c4e565b90508181146108f45760008660000182815481106108af576108af610c21565b90600052602060002001549050808760000184815481106108d2576108d2610c21565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061090557610905610c65565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101e6565b60009150506101e6565b60006020828403121561095c57600080fd5b81356001600160e01b0319811681146102e757600080fd5b60006020828403121561098657600080fd5b5035919050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b823591506109cc6020840161098d565b90509250929050565b60008083601f8401126109e757600080fd5b50813567ffffffffffffffff8111156109ff57600080fd5b602083019150836020828501011115610a1757600080fd5b9250929050565b60008060208385031215610a3157600080fd5b823567ffffffffffffffff811115610a4857600080fd5b610a54858286016109d5565b90969095509350505050565b60008060408385031215610a7357600080fd5b50508035926020909101359150565b600080600060408486031215610a9757600080fd5b833567ffffffffffffffff811115610aae57600080fd5b610aba868287016109d5565b9094509250610acd90506020850161098d565b90509250925092565b8183823760009101908152919050565b60005b83811015610b01578181015183820152602001610ae9565b83811115610b10576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610b4e816017850160208801610ae6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610b7f816028840160208801610ae6565b01602801949350505050565b6020815260008251806020840152610baa816040850160208701610ae6565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610bee57610bee610bbe565b500290565b60008219821115610c0657610c06610bbe565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081610c4657610c46610bbe565b506000190190565b600082821015610c6057610c60610bbe565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a811b1dcb64b9e1debc20fccba300738ba9fa4d097673a56f4ede7fa89a26e2364736f6c634300080d0033",
313
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"Set\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"get\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"getRoleMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleMemberCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"set\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"details\":\"A simple implementation of IResolver using OZ AccessControl NOTE: Relevant events for indexing: - OZ Access Control events `RoleGranted`/`RoleRevoked`: admin add/remove - IResolver event `Set`: resolver name updates\",\"kind\":\"dev\",\"methods\":{\"get(string)\":{\"details\":\"Get address by name\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getRoleMember(bytes32,uint256)\":{\"details\":\"Returns one of the accounts that have `role`. `index` must be a value between 0 and {getRoleMemberCount}, non-inclusive. Role bearers are not sorted in any particular way, and their ordering may change at any point. WARNING: When using {getRoleMember} and {getRoleMemberCount}, make sure you perform all queries on the same block. See the following https://forum.openzeppelin.com/t/iterating-over-elements-on-enumerableset-in-openzeppelin-contracts/2296[forum post] for more information.\"},\"getRoleMemberCount(bytes32)\":{\"details\":\"Returns the number of accounts that have `role`. Can be used together with {getRoleMember} to enumerate all bearers of a role.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role.\"},\"set(string,address)\":{\"details\":\"Set resolver address name\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"title\":\"Resolver contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/Resolver.sol\":\"Resolver\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x4a1a0ba12bf1a33f10d9fe226278cf59675c0b929d29e4da99658a079b27fb84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bda1319db846d6d6f92d8a57a9bdee8bde1dc39aa7546165791692c24dd6f30a\",\"dweb:/ipfs/Qma5oZ7DmbdAjd8mpiW7mx896PDtwsQtCQ2hj9Upf7b7JK\"]},\"@openzeppelin/contracts/access/AccessControlEnumerable.sol\":{\"keccak256\":\"0x13f5e15f2a0650c0b6aaee2ef19e89eaf4870d6e79662d572a393334c1397247\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ee05f28f549a5d6515e152580716b87636ed4bfab9812499a6e3803df88288b\",\"dweb:/ipfs/QmeEnhdwY1t5Y3YU5a4ffzgXuToydH2PNdNxV9W7dEPRQJ\"]},\"@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"@openzeppelin/contracts/access/IAccessControlEnumerable.sol\":{\"keccak256\":\"0xba4459ab871dfa300f5212c6c30178b63898c03533a1ede28436f11546626676\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dcc7b09bfa6e18aab262ca372f4a9b1fc82e294b430706a4e1378cf58e6a276\",\"dweb:/ipfs/QmT8oSAcesdctR15HMLhr2a1HRpXymxdjTfdtfTYJcj2N2\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x32c202bd28995dd20c4347b7c6467a6d3241c74c8ad3edcbb610cd9205916c45\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8179c356adb19e70d6b31a1eedc8c5c7f0c00e669e2540f4099e3844c6074d30\",\"dweb:/ipfs/QmWFbivarEobbqhS1go64ootVuHfVohBseerYy9FTEd1W2\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9772845c886f87a3aab315f8d6b68aa599027c20f441b131cd4afaf65b588900\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad2f29a9c17a4f746416c9e254e17671f43c409dbfa6e4d7d76c3e4a83212d31\",\"dweb:/ipfs/QmTqU65L6iu6yqmXKzcNLPioR8etzKPWycpDJCm17ifVdS\"]},\"project:/contracts/interfaces/utils/IResolver.sol\":{\"keccak256\":\"0xac74894c775af067d6caccdde0966c54a5e4ebefb0903bc7334c964359bf2f69\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://393980f96e0a4499a543d86f040339eb06ab4617808a53e33462ff8af8dc974e\",\"dweb:/ipfs/QmZGWZLEBYVp5NyTK5ifDJH9G5rfzQ84Pag7rpF2U1zKH2\"]},\"project:/contracts/utils/Resolver.sol\":{\"keccak256\":\"0x6eefd22b4962ebd52a279afce53e813442cf450d773d5a42dc78ac04f6088a23\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9dbef969096ed217d14593bcd8923624a07eb2e8ee549282a5a4fc213571432f\",\"dweb:/ipfs/QmQi58peCujTeD5PFEd7rRYj7mJ8mWPkq7mCu8cEHR3JNH\"]}},\"version\":1}",
314
+ "bytecode": "0x608060405234801561001057600080fd5b5061001c600033610021565b610177565b61002b828261002f565b5050565b610043828261006c60201b61043c1760201c565b60008281526001602090815260409091206100679183906104c061010a821b17901c565b505050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661002b576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556100c63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061011f836001600160a01b038416610128565b90505b92915050565b600081815260018301602052604081205461016f57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610122565b506000610122565b610cb180620001876000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80639010d07c116100715780639010d07c1461015a57806391d148541461016d578063a217fddf14610180578063a815ff1514610188578063ca15c8731461019b578063d547741f146101ae57600080fd5b806301ffc9a7146100ae578063248a9ca3146100d65780632f2ff15d1461010757806336568abe1461011c578063693ec85e1461012f575b600080fd5b6100c16100bc36600461094a565b6101c1565b60405190151581526020015b60405180910390f35b6100f96100e4366004610974565b60009081526020819052604090206001015490565b6040519081526020016100cd565b61011a6101153660046109a9565b6101ec565b005b61011a61012a3660046109a9565b610217565b61014261013d366004610a1e565b61029a565b6040516001600160a01b0390911681526020016100cd565b610142610168366004610a60565b6102cf565b6100c161017b3660046109a9565b6102ee565b6100f9600081565b61011a610196366004610a82565b610317565b6100f96101a9366004610974565b6103ff565b61011a6101bc3660046109a9565b610416565b60006001600160e01b03198216635a05180f60e01b14806101e657506101e6826104d5565b92915050565b600082815260208190526040902060010154610208813361050a565b610212838361056e565b505050565b6001600160a01b038116331461028c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102968282610590565b5050565b6000600283836040516102ae929190610ad6565b908152604051908190036020019020546001600160a01b0316905092915050565b60008281526001602052604081206102e790836105b2565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103226000336102ee565b6103675760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71030b236b4b760511b6044820152606401610283565b806002848460405161037a929190610ad6565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b0319909316929092179091556103b79084908490610ad6565b6040519081900381206001600160a01b0383168252907f496595ced95720268cf8bc60bae3f35024ff2a130f73ac4e20f5c1eaca35db999060200160405180910390a2505050565b60008181526001602052604081206101e6906105be565b600082815260208190526040902060010154610432813361050a565b6102128383610590565b61044682826102ee565b610296576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561047c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006102e7836001600160a01b0384166105c8565b60006001600160e01b03198216637965db0b60e01b14806101e657506301ffc9a760e01b6001600160e01b03198316146101e6565b61051482826102ee565b6102965761052c816001600160a01b03166014610617565b610537836020610617565b604051602001610548929190610b16565b60408051601f198184030181529082905262461bcd60e51b825261028391600401610b8b565b610578828261043c565b600082815260016020526040902061021290826104c0565b61059a82826107b3565b60008281526001602052604090206102129082610818565b60006102e7838361082d565b60006101e6825490565b600081815260018301602052604081205461060f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101e6565b5060006101e6565b60606000610626836002610bd4565b610631906002610bf3565b67ffffffffffffffff81111561064957610649610c0b565b6040519080825280601f01601f191660200182016040528015610673576020820181803683370190505b509050600360fc1b8160008151811061068e5761068e610c21565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106bd576106bd610c21565b60200101906001600160f81b031916908160001a90535060006106e1846002610bd4565b6106ec906001610bf3565b90505b6001811115610764576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061072057610720610c21565b1a60f81b82828151811061073657610736610c21565b60200101906001600160f81b031916908160001a90535060049490941c9361075d81610c37565b90506106ef565b5083156102e75760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610283565b6107bd82826102ee565b15610296576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006102e7836001600160a01b038416610857565b600082600001828154811061084457610844610c21565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561094057600061087b600183610c4e565b855490915060009061088f90600190610c4e565b90508181146108f45760008660000182815481106108af576108af610c21565b90600052602060002001549050808760000184815481106108d2576108d2610c21565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061090557610905610c65565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101e6565b60009150506101e6565b60006020828403121561095c57600080fd5b81356001600160e01b0319811681146102e757600080fd5b60006020828403121561098657600080fd5b5035919050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b823591506109cc6020840161098d565b90509250929050565b60008083601f8401126109e757600080fd5b50813567ffffffffffffffff8111156109ff57600080fd5b602083019150836020828501011115610a1757600080fd5b9250929050565b60008060208385031215610a3157600080fd5b823567ffffffffffffffff811115610a4857600080fd5b610a54858286016109d5565b90969095509350505050565b60008060408385031215610a7357600080fd5b50508035926020909101359150565b600080600060408486031215610a9757600080fd5b833567ffffffffffffffff811115610aae57600080fd5b610aba868287016109d5565b9094509250610acd90506020850161098d565b90509250925092565b8183823760009101908152919050565b60005b83811015610b01578181015183820152602001610ae9565b83811115610b10576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610b4e816017850160208801610ae6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610b7f816028840160208801610ae6565b01602801949350505050565b6020815260008251806020840152610baa816040850160208701610ae6565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610bee57610bee610bbe565b500290565b60008219821115610c0657610c06610bbe565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081610c4657610c46610bbe565b506000190190565b600082821015610c6057610c60610bbe565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d5ca9ccac978fcea3074fb5f9709293216d272b02926fc03110df6c712ad7db964736f6c634300080e0033",
315
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80639010d07c116100715780639010d07c1461015a57806391d148541461016d578063a217fddf14610180578063a815ff1514610188578063ca15c8731461019b578063d547741f146101ae57600080fd5b806301ffc9a7146100ae578063248a9ca3146100d65780632f2ff15d1461010757806336568abe1461011c578063693ec85e1461012f575b600080fd5b6100c16100bc36600461094a565b6101c1565b60405190151581526020015b60405180910390f35b6100f96100e4366004610974565b60009081526020819052604090206001015490565b6040519081526020016100cd565b61011a6101153660046109a9565b6101ec565b005b61011a61012a3660046109a9565b610217565b61014261013d366004610a1e565b61029a565b6040516001600160a01b0390911681526020016100cd565b610142610168366004610a60565b6102cf565b6100c161017b3660046109a9565b6102ee565b6100f9600081565b61011a610196366004610a82565b610317565b6100f96101a9366004610974565b6103ff565b61011a6101bc3660046109a9565b610416565b60006001600160e01b03198216635a05180f60e01b14806101e657506101e6826104d5565b92915050565b600082815260208190526040902060010154610208813361050a565b610212838361056e565b505050565b6001600160a01b038116331461028c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6102968282610590565b5050565b6000600283836040516102ae929190610ad6565b908152604051908190036020019020546001600160a01b0316905092915050565b60008281526001602052604081206102e790836105b2565b9392505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6103226000336102ee565b6103675760405162461bcd60e51b815260206004820152601660248201527521b0b63632b91034b9903737ba1030b71030b236b4b760511b6044820152606401610283565b806002848460405161037a929190610ad6565b90815260405190819003602001812080546001600160a01b03939093166001600160a01b0319909316929092179091556103b79084908490610ad6565b6040519081900381206001600160a01b0383168252907f496595ced95720268cf8bc60bae3f35024ff2a130f73ac4e20f5c1eaca35db999060200160405180910390a2505050565b60008181526001602052604081206101e6906105be565b600082815260208190526040902060010154610432813361050a565b6102128383610590565b61044682826102ee565b610296576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561047c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006102e7836001600160a01b0384166105c8565b60006001600160e01b03198216637965db0b60e01b14806101e657506301ffc9a760e01b6001600160e01b03198316146101e6565b61051482826102ee565b6102965761052c816001600160a01b03166014610617565b610537836020610617565b604051602001610548929190610b16565b60408051601f198184030181529082905262461bcd60e51b825261028391600401610b8b565b610578828261043c565b600082815260016020526040902061021290826104c0565b61059a82826107b3565b60008281526001602052604090206102129082610818565b60006102e7838361082d565b60006101e6825490565b600081815260018301602052604081205461060f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556101e6565b5060006101e6565b60606000610626836002610bd4565b610631906002610bf3565b67ffffffffffffffff81111561064957610649610c0b565b6040519080825280601f01601f191660200182016040528015610673576020820181803683370190505b509050600360fc1b8160008151811061068e5761068e610c21565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106106bd576106bd610c21565b60200101906001600160f81b031916908160001a90535060006106e1846002610bd4565b6106ec906001610bf3565b90505b6001811115610764576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061072057610720610c21565b1a60f81b82828151811061073657610736610c21565b60200101906001600160f81b031916908160001a90535060049490941c9361075d81610c37565b90506106ef565b5083156102e75760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610283565b6107bd82826102ee565b15610296576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006102e7836001600160a01b038416610857565b600082600001828154811061084457610844610c21565b9060005260206000200154905092915050565b6000818152600183016020526040812054801561094057600061087b600183610c4e565b855490915060009061088f90600190610c4e565b90508181146108f45760008660000182815481106108af576108af610c21565b90600052602060002001549050808760000184815481106108d2576108d2610c21565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061090557610905610c65565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506101e6565b60009150506101e6565b60006020828403121561095c57600080fd5b81356001600160e01b0319811681146102e757600080fd5b60006020828403121561098657600080fd5b5035919050565b80356001600160a01b03811681146109a457600080fd5b919050565b600080604083850312156109bc57600080fd5b823591506109cc6020840161098d565b90509250929050565b60008083601f8401126109e757600080fd5b50813567ffffffffffffffff8111156109ff57600080fd5b602083019150836020828501011115610a1757600080fd5b9250929050565b60008060208385031215610a3157600080fd5b823567ffffffffffffffff811115610a4857600080fd5b610a54858286016109d5565b90969095509350505050565b60008060408385031215610a7357600080fd5b50508035926020909101359150565b600080600060408486031215610a9757600080fd5b833567ffffffffffffffff811115610aae57600080fd5b610aba868287016109d5565b9094509250610acd90506020850161098d565b90509250925092565b8183823760009101908152919050565b60005b83811015610b01578181015183820152602001610ae9565b83811115610b10576000848401525b50505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351610b4e816017850160208801610ae6565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351610b7f816028840160208801610ae6565b01602801949350505050565b6020815260008251806020840152610baa816040850160208701610ae6565b601f01601f19169190910160400192915050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615610bee57610bee610bbe565b500290565b60008219821115610c0657610c06610bbe565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600081610c4657610c46610bbe565b506000190190565b600082821015610c6057610c60610bbe565b500390565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220d5ca9ccac978fcea3074fb5f9709293216d272b02926fc03110df6c712ad7db964736f6c634300080e0033",
316
316
  "immutableReferences": {},
317
317
  "generatedSources": [],
318
318
  "deployedGeneratedSources": [
@@ -5379,7 +5379,7 @@
5379
5379
  ],
5380
5380
  "sourceMap": "524:545:97:-:0;;;638:73;;;;;;;;;-1:-1:-1;662:42:97;2072:4:0;693:10:97;662;:42::i;:::-;524:545;;6257:110:0;6335:25;6346:4;6352:7;6335:10;:25::i;:::-;6257:110;;:::o;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;;;;;:31;;:::i;:::-;2106:18;;;;:12;:18;;;;;;;;:31;;2129:7;;2106:22;;;;;:31;;:::i;:::-;;1978:166;;:::o;6861:233:0:-;2995:4;3018:12;;;;;;;;;;;-1:-1:-1;;;;;3018:29:0;;;;;;;;;;;;6939:149;;6982:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6982:29:0;;;;;;;;;:36;;-1:-1:-1;;6982:36:0;7014:4;6982:36;;;7064:12;719:10:19;;640:96;7064:12:0;-1:-1:-1;;;;;7037:40:0;7055:7;-1:-1:-1;;;;;7037:40:0;7049:4;7037:40;;;;;;;;;;6861:233;;:::o;7612:150:29:-;7682:4;7705:50;7710:3;-1:-1:-1;;;;;7730:23:29;;7705:4;:50::i;:::-;7698:57;;7612:150;;;;;:::o;1697:404::-;1760:4;3834:19;;;:12;;;:19;;;;;;1776:319;;-1:-1:-1;1818:23:29;;;;;;;;:11;:23;;;;;;;;;;;;;1998:18;;1976:19;;;:12;;;:19;;;;;;:40;;;;2030:11;;1776:319;-1:-1:-1;2079:5:29;2072:12;;524:545:97;;;;;;;",
5381
5381
  "deployedSourceMap": "524:545:97:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;634:212:1;;;;;;:::i;:::-;;:::i;:::-;;;470:14:105;;463:22;445:41;;433:2;418:18;634:212:1;;;;;;;;4008:129:0;;;;;;:::i;:::-;4082:7;4108:12;;;;;;;;;;:22;;;;4008:129;;;;828:25:105;;;816:2;801:18;4008:129:0;682:177:105;4387:145:0;;;;;;:::i;:::-;;:::i;:::-;;5404:214;;;;;;:::i;:::-;;:::i;951:115:97:-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2234:32:105;;;2216:51;;2204:2;2189:18;951:115:97;2070:203:105;1431:151:1;;;;;;:::i;:::-;;:::i;2909:145:0:-;;;;;;:::i;:::-;;:::i;2027:49::-;;2072:4;2027:49;;717:228:97;;;;;;:::i;:::-;;:::i;1750:140:1:-;;;;;;:::i;:::-;;:::i;4766:147:0:-;;;;;;:::i;:::-;;:::i;634:212:1:-;719:4;-1:-1:-1;;;;;;742:57:1;;-1:-1:-1;;;742:57:1;;:97;;;803:36;827:11;803:23;:36::i;:::-;735:104;634:212;-1:-1:-1;;634:212:1:o;4387:145:0:-;4082:7;4108:12;;;;;;;;;;:22;;;2505:30;2516:4;719:10:19;2505::0;:30::i;:::-;4500:25:::1;4511:4;4517:7;4500:10;:25::i;:::-;4387:145:::0;;;:::o;5404:214::-;-1:-1:-1;;;;;5499:23:0;;719:10:19;5499:23:0;5491:83;;;;-1:-1:-1;;;5491:83:0;;3405:2:105;5491:83:0;;;3387:21:105;3444:2;3424:18;;;3417:30;3483:34;3463:18;;;3456:62;-1:-1:-1;;;3534:18:105;;;3527:45;3589:19;;5491:83:0;;;;;;;;;5585:26;5597:4;5603:7;5585:11;:26::i;:::-;5404:214;;:::o;951:115:97:-;1018:7;1044:9;1054:4;;1044:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;1044:15:97;;-1:-1:-1;951:115:97;;;;:::o;1431:151:1:-;1521:7;1547:18;;;:12;:18;;;;;:28;;1569:5;1547:21;:28::i;:::-;1540:35;1431:151;-1:-1:-1;;;1431:151:1:o;2909:145:0:-;2995:4;3018:12;;;;;;;;;;;-1:-1:-1;;;;;3018:29:0;;;;;;;;;;;;;;;2909:145::o;717:228:97:-;804:41;2072:4:0;719:10:19;2909:145:0;:::i;804:41:97:-;796:76;;;;-1:-1:-1;;;796:76:97;;4099:2:105;796:76:97;;;4081:21:105;4138:2;4118:18;;;4111:30;-1:-1:-1;;;4157:18:105;;;4150:52;4219:18;;796:76:97;3897:346:105;796:76:97;900:6;882:9;892:4;;882:15;;;;;;;:::i;:::-;;;;;;;;;;;;;;:24;;-1:-1:-1;;;;;882:24:97;;;;-1:-1:-1;;;;;;882:24:97;;;;;;;;;;921:17;;925:4;;;;921:17;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2234:32:105;;2216:51;;921:17:97;;;2204:2:105;2189:18;921:17:97;;;;;;;717:228;;;:::o;1750:140:1:-;1830:7;1856:18;;;:12;:18;;;;;:27;;:25;:27::i;4766:147:0:-;4082:7;4108:12;;;;;;;;;;:22;;;2505:30;2516:4;719:10:19;2505::0;:30::i;:::-;4880:26:::1;4892:4;4898:7;4880:11;:26::i;6861:233::-:0;6944:22;6952:4;6958:7;6944;:22::i;:::-;6939:149;;6982:6;:12;;;;;;;;;;;-1:-1:-1;;;;;6982:29:0;;;;;;;;;:36;;-1:-1:-1;;6982:36:0;7014:4;6982:36;;;7064:12;719:10:19;;640:96;7064:12:0;-1:-1:-1;;;;;7037:40:0;7055:7;-1:-1:-1;;;;;7037:40:0;7049:4;7037:40;;;;;;;;;;6861:233;;:::o;7612:150:29:-;7682:4;7705:50;7710:3;-1:-1:-1;;;;;7730:23:29;;7705:4;:50::i;2620:202:0:-;2705:4;-1:-1:-1;;;;;;2728:47:0;;-1:-1:-1;;;2728:47:0;;:87;;-1:-1:-1;;;;;;;;;;937:40:22;;;2779:36:0;829:155:22;3335:492:0;3423:22;3431:4;3437:7;3423;:22::i;:::-;3418:403;;3606:41;3634:7;-1:-1:-1;;;;;3606:41:0;3644:2;3606:19;:41::i;:::-;3718:38;3746:4;3753:2;3718:19;:38::i;:::-;3513:265;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;3513:265:0;;;;;;;;;;-1:-1:-1;;;3461:349:0;;;;;;;:::i;1978:166:1:-;2065:31;2082:4;2088:7;2065:16;:31::i;:::-;2106:18;;;;:12;:18;;;;;:31;;2129:7;2106:22;:31::i;2233:171::-;2321:32;2339:4;2345:7;2321:17;:32::i;:::-;2363:18;;;;:12;:18;;;;;:34;;2389:7;2363:25;:34::i;8870:156:29:-;8944:7;8994:22;8998:3;9010:5;8994:3;:22::i;8413:115::-;8476:7;8502:19;8510:3;4028:18;;3946:107;1697:404;1760:4;3834:19;;;:12;;;:19;;;;;;1776:319;;-1:-1:-1;1818:23:29;;;;;;;;:11;:23;;;;;;;;;;;;;1998:18;;1976:19;;;:12;;;:19;;;;;;:40;;;;2030:11;;1776:319;-1:-1:-1;2079:5:29;2072:12;;1588:441:21;1663:13;1688:19;1720:10;1724:6;1720:1;:10;:::i;:::-;:14;;1733:1;1720:14;:::i;:::-;1710:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1710:25:21;;1688:47;;-1:-1:-1;;;1745:6:21;1752:1;1745:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1745:15:21;;;;;;;;;-1:-1:-1;;;1770:6:21;1777:1;1770:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1770:15:21;;;;;;;;-1:-1:-1;1800:9:21;1812:10;1816:6;1812:1;:10;:::i;:::-;:14;;1825:1;1812:14;:::i;:::-;1800:26;;1795:132;1832:1;1828;:5;1795:132;;;-1:-1:-1;;;1879:5:21;1887:3;1879:11;1866:25;;;;;;;:::i;:::-;;;;1854:6;1861:1;1854:9;;;;;;;;:::i;:::-;;;;:37;-1:-1:-1;;;;;1854:37:21;;;;;;;;-1:-1:-1;1915:1:21;1905:11;;;;;1835:3;;;:::i;:::-;;;1795:132;;;-1:-1:-1;1944:10:21;;1936:55;;;;-1:-1:-1;;;1936:55:21;;6735:2:105;1936:55:21;;;6717:21:105;;;6754:18;;;6747:30;6813:34;6793:18;;;6786:62;6865:18;;1936:55:21;6533:356:105;7219:234:0;7302:22;7310:4;7316:7;7302;:22::i;:::-;7298:149;;;7372:5;7340:12;;;;;;;;;;;-1:-1:-1;;;;;7340:29:0;;;;;;;;;;:37;;-1:-1:-1;;7340:37:0;;;7396:40;719:10:19;;7340:12:0;;7396:40;;7372:5;7396:40;7219:234;;:::o;7930:156:29:-;8003:4;8026:53;8034:3;-1:-1:-1;;;;;8054:23:29;;8026:7;:53::i;4395:118::-;4462:7;4488:3;:11;;4500:5;4488:18;;;;;;;;:::i;:::-;;;;;;;;;4481:25;;4395:118;;;;:::o;2269:1388::-;2335:4;2472:19;;;:12;;;:19;;;;;;2506:15;;2502:1149;;2875:21;2899:14;2912:1;2899:10;:14;:::i;:::-;2947:18;;2875:38;;-1:-1:-1;2927:17:29;;2947:22;;2968:1;;2947:22;:::i;:::-;2927:42;;3001:13;2988:9;:26;2984:398;;3034:17;3054:3;:11;;3066:9;3054:22;;;;;;;;:::i;:::-;;;;;;;;;3034:42;;3205:9;3176:3;:11;;3188:13;3176:26;;;;;;;;:::i;:::-;;;;;;;;;;;;:38;;;;3288:23;;;:12;;;:23;;;;;:36;;;2984:398;3460:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;3552:3;:12;;:19;3565:5;3552:19;;;;;;;;;;;3545:26;;;3593:4;3586:11;;;;;;;2502:1149;3635:5;3628:12;;;;;14:286:105;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:105;;209:43;;199:71;;266:1;263;256:12;497:180;556:6;609:2;597:9;588:7;584:23;580:32;577:52;;;625:1;622;615:12;577:52;-1:-1:-1;648:23:105;;497:180;-1:-1:-1;497:180:105:o;864:173::-;932:20;;-1:-1:-1;;;;;981:31:105;;971:42;;961:70;;1027:1;1024;1017:12;961:70;864:173;;;:::o;1042:254::-;1110:6;1118;1171:2;1159:9;1150:7;1146:23;1142:32;1139:52;;;1187:1;1184;1177:12;1139:52;1223:9;1210:23;1200:33;;1252:38;1286:2;1275:9;1271:18;1252:38;:::i;:::-;1242:48;;1042:254;;;;;:::o;1301:348::-;1353:8;1363:6;1417:3;1410:4;1402:6;1398:17;1394:27;1384:55;;1435:1;1432;1425:12;1384:55;-1:-1:-1;1458:20:105;;1501:18;1490:30;;1487:50;;;1533:1;1530;1523:12;1487:50;1570:4;1562:6;1558:17;1546:29;;1622:3;1615:4;1606:6;1598;1594:19;1590:30;1587:39;1584:59;;;1639:1;1636;1629:12;1584:59;1301:348;;;;;:::o;1654:411::-;1725:6;1733;1786:2;1774:9;1765:7;1761:23;1757:32;1754:52;;;1802:1;1799;1792:12;1754:52;1842:9;1829:23;1875:18;1867:6;1864:30;1861:50;;;1907:1;1904;1897:12;1861:50;1946:59;1997:7;1988:6;1977:9;1973:22;1946:59;:::i;:::-;2024:8;;1920:85;;-1:-1:-1;1654:411:105;-1:-1:-1;;;;1654:411:105:o;2278:248::-;2346:6;2354;2407:2;2395:9;2386:7;2382:23;2378:32;2375:52;;;2423:1;2420;2413:12;2375:52;-1:-1:-1;;2446:23:105;;;2516:2;2501:18;;;2488:32;;-1:-1:-1;2278:248:105:o;2531:485::-;2611:6;2619;2627;2680:2;2668:9;2659:7;2655:23;2651:32;2648:52;;;2696:1;2693;2686:12;2648:52;2736:9;2723:23;2769:18;2761:6;2758:30;2755:50;;;2801:1;2798;2791:12;2755:50;2840:59;2891:7;2882:6;2871:9;2867:22;2840:59;:::i;:::-;2918:8;;-1:-1:-1;2814:85:105;-1:-1:-1;2972:38:105;;-1:-1:-1;3006:2:105;2991:18;;2972:38;:::i;:::-;2962:48;;2531:485;;;;;:::o;3619:273::-;3804:6;3796;3791:3;3778:33;3760:3;3830:16;;3855:13;;;3830:16;3619:273;-1:-1:-1;3619:273:105:o;4248:258::-;4320:1;4330:113;4344:6;4341:1;4338:13;4330:113;;;4420:11;;;4414:18;4401:11;;;4394:39;4366:2;4359:10;4330:113;;;4461:6;4458:1;4455:13;4452:48;;;4496:1;4487:6;4482:3;4478:16;4471:27;4452:48;;4248:258;;;:::o;4511:786::-;4922:25;4917:3;4910:38;4892:3;4977:6;4971:13;4993:62;5048:6;5043:2;5038:3;5034:12;5027:4;5019:6;5015:17;4993:62;:::i;:::-;-1:-1:-1;;;5114:2:105;5074:16;;;5106:11;;;5099:40;5164:13;;5186:63;5164:13;5235:2;5227:11;;5220:4;5208:17;;5186:63;:::i;:::-;5269:17;5288:2;5265:26;;4511:786;-1:-1:-1;;;;4511:786:105:o;5302:383::-;5451:2;5440:9;5433:21;5414:4;5483:6;5477:13;5526:6;5521:2;5510:9;5506:18;5499:34;5542:66;5601:6;5596:2;5585:9;5581:18;5576:2;5568:6;5564:15;5542:66;:::i;:::-;5669:2;5648:15;-1:-1:-1;;5644:29:105;5629:45;;;;5676:2;5625:54;;5302:383;-1:-1:-1;;5302:383:105:o;5690:127::-;5751:10;5746:3;5742:20;5739:1;5732:31;5782:4;5779:1;5772:15;5806:4;5803:1;5796:15;5822:168;5862:7;5928:1;5924;5920:6;5916:14;5913:1;5910:21;5905:1;5898:9;5891:17;5887:45;5884:71;;;5935:18;;:::i;:::-;-1:-1:-1;5975:9:105;;5822:168::o;5995:128::-;6035:3;6066:1;6062:6;6059:1;6056:13;6053:39;;;6072:18;;:::i;:::-;-1:-1:-1;6108:9:105;;5995:128::o;6128:127::-;6189:10;6184:3;6180:20;6177:1;6170:31;6220:4;6217:1;6210:15;6244:4;6241:1;6234:15;6260:127;6321:10;6316:3;6312:20;6309:1;6302:31;6352:4;6349:1;6342:15;6376:4;6373:1;6366:15;6392:136;6431:3;6459:5;6449:39;;6468:18;;:::i;:::-;-1:-1:-1;;;6504:18:105;;6392:136::o;6894:125::-;6934:4;6962:1;6959;6956:8;6953:34;;;6967:18;;:::i;:::-;-1:-1:-1;7004:9:105;;6894:125::o;7024:127::-;7085:10;7080:3;7076:20;7073:1;7066:31;7116:4;7113:1;7106:15;7140:4;7137:1;7130:15",
5382
- "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.13;\n\nimport { AccessControlEnumerable } from \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\nimport { IResolver } from \"../interfaces/utils/IResolver.sol\";\n\n\n/**\n * @title Resolver contract\n * @author Superfluid\n * @dev A simple implementation of IResolver using OZ AccessControl\n *\n * NOTE:\n * Relevant events for indexing:\n * - OZ Access Control events `RoleGranted`/`RoleRevoked`: admin add/remove\n * - IResolver event `Set`: resolver name updates\n */\ncontract Resolver is IResolver, AccessControlEnumerable {\n\n mapping(string => address) private _registry;\n\n constructor() {\n _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n }\n\n function set(string calldata name, address target) external override {\n require(hasRole(DEFAULT_ADMIN_ROLE, _msgSender()), \"Caller is not an admin\");\n _registry[name] = target;\n emit Set(name, target);\n }\n\n function get(string calldata name) external view override returns (address) {\n return _registry[name];\n }\n\n}\n",
5382
+ "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.14;\n\nimport { AccessControlEnumerable } from \"@openzeppelin/contracts/access/AccessControlEnumerable.sol\";\nimport { IResolver } from \"../interfaces/utils/IResolver.sol\";\n\n\n/**\n * @title Resolver contract\n * @author Superfluid\n * @dev A simple implementation of IResolver using OZ AccessControl\n *\n * NOTE:\n * Relevant events for indexing:\n * - OZ Access Control events `RoleGranted`/`RoleRevoked`: admin add/remove\n * - IResolver event `Set`: resolver name updates\n */\ncontract Resolver is IResolver, AccessControlEnumerable {\n\n mapping(string => address) private _registry;\n\n constructor() {\n _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);\n }\n\n function set(string calldata name, address target) external override {\n require(hasRole(DEFAULT_ADMIN_ROLE, _msgSender()), \"Caller is not an admin\");\n _registry[name] = target;\n emit Set(name, target);\n }\n\n function get(string calldata name) external view override returns (address) {\n return _registry[name];\n }\n\n}\n",
5383
5383
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/utils/Resolver.sol",
5384
5384
  "ast": {
5385
5385
  "absolutePath": "project:/contracts/utils/Resolver.sol",
@@ -5391,19 +5391,19 @@
5391
5391
  18897
5392
5392
  ],
5393
5393
  "Resolver": [
5394
- 35118
5394
+ 35137
5395
5395
  ]
5396
5396
  },
5397
- "id": 35119,
5397
+ "id": 35138,
5398
5398
  "license": "AGPLv3",
5399
5399
  "nodeType": "SourceUnit",
5400
5400
  "nodes": [
5401
5401
  {
5402
- "id": 35052,
5402
+ "id": 35071,
5403
5403
  "literals": [
5404
5404
  "solidity",
5405
5405
  "0.8",
5406
- ".13"
5406
+ ".14"
5407
5407
  ],
5408
5408
  "nodeType": "PragmaDirective",
5409
5409
  "src": "35:23:97"
@@ -5411,16 +5411,16 @@
5411
5411
  {
5412
5412
  "absolutePath": "@openzeppelin/contracts/access/AccessControlEnumerable.sol",
5413
5413
  "file": "@openzeppelin/contracts/access/AccessControlEnumerable.sol",
5414
- "id": 35054,
5414
+ "id": 35073,
5415
5415
  "nameLocation": "-1:-1:-1",
5416
5416
  "nodeType": "ImportDirective",
5417
- "scope": 35119,
5417
+ "scope": 35138,
5418
5418
  "sourceUnit": 434,
5419
5419
  "src": "60:101:97",
5420
5420
  "symbolAliases": [
5421
5421
  {
5422
5422
  "foreign": {
5423
- "id": 35053,
5423
+ "id": 35072,
5424
5424
  "name": "AccessControlEnumerable",
5425
5425
  "nodeType": "Identifier",
5426
5426
  "overloadedDeclarations": [],
@@ -5436,16 +5436,16 @@
5436
5436
  {
5437
5437
  "absolutePath": "project:/contracts/interfaces/utils/IResolver.sol",
5438
5438
  "file": "../interfaces/utils/IResolver.sol",
5439
- "id": 35056,
5439
+ "id": 35075,
5440
5440
  "nameLocation": "-1:-1:-1",
5441
5441
  "nodeType": "ImportDirective",
5442
- "scope": 35119,
5442
+ "scope": 35138,
5443
5443
  "sourceUnit": 18898,
5444
5444
  "src": "162:62:97",
5445
5445
  "symbolAliases": [
5446
5446
  {
5447
5447
  "foreign": {
5448
- "id": 35055,
5448
+ "id": 35074,
5449
5449
  "name": "IResolver",
5450
5450
  "nodeType": "Identifier",
5451
5451
  "overloadedDeclarations": [],
@@ -5463,25 +5463,25 @@
5463
5463
  "baseContracts": [
5464
5464
  {
5465
5465
  "baseName": {
5466
- "id": 35058,
5466
+ "id": 35077,
5467
5467
  "name": "IResolver",
5468
5468
  "nodeType": "IdentifierPath",
5469
5469
  "referencedDeclaration": 18897,
5470
5470
  "src": "545:9:97"
5471
5471
  },
5472
- "id": 35059,
5472
+ "id": 35078,
5473
5473
  "nodeType": "InheritanceSpecifier",
5474
5474
  "src": "545:9:97"
5475
5475
  },
5476
5476
  {
5477
5477
  "baseName": {
5478
- "id": 35060,
5478
+ "id": 35079,
5479
5479
  "name": "AccessControlEnumerable",
5480
5480
  "nodeType": "IdentifierPath",
5481
5481
  "referencedDeclaration": 433,
5482
5482
  "src": "556:23:97"
5483
5483
  },
5484
- "id": 35061,
5484
+ "id": 35080,
5485
5485
  "nodeType": "InheritanceSpecifier",
5486
5486
  "src": "556:23:97"
5487
5487
  }
@@ -5490,15 +5490,15 @@
5490
5490
  "contractDependencies": [],
5491
5491
  "contractKind": "contract",
5492
5492
  "documentation": {
5493
- "id": 35057,
5493
+ "id": 35076,
5494
5494
  "nodeType": "StructuredDocumentation",
5495
5495
  "src": "227:296:97",
5496
5496
  "text": " @title Resolver contract\n @author Superfluid\n @dev A simple implementation of IResolver using OZ AccessControl\n NOTE:\n Relevant events for indexing:\n - OZ Access Control events `RoleGranted`/`RoleRevoked`: admin add/remove\n - IResolver event `Set`: resolver name updates"
5497
5497
  },
5498
5498
  "fullyImplemented": true,
5499
- "id": 35118,
5499
+ "id": 35137,
5500
5500
  "linearizedBaseContracts": [
5501
- 35118,
5501
+ 35137,
5502
5502
  433,
5503
5503
  308,
5504
5504
  2840,
@@ -5514,12 +5514,12 @@
5514
5514
  "nodes": [
5515
5515
  {
5516
5516
  "constant": false,
5517
- "id": 35065,
5517
+ "id": 35084,
5518
5518
  "mutability": "mutable",
5519
5519
  "name": "_registry",
5520
5520
  "nameLocation": "622:9:97",
5521
5521
  "nodeType": "VariableDeclaration",
5522
- "scope": 35118,
5522
+ "scope": 35137,
5523
5523
  "src": "587:44:97",
5524
5524
  "stateVariable": true,
5525
5525
  "storageLocation": "default",
@@ -5528,9 +5528,9 @@
5528
5528
  "typeString": "mapping(string => address)"
5529
5529
  },
5530
5530
  "typeName": {
5531
- "id": 35064,
5531
+ "id": 35083,
5532
5532
  "keyType": {
5533
- "id": 35062,
5533
+ "id": 35081,
5534
5534
  "name": "string",
5535
5535
  "nodeType": "ElementaryTypeName",
5536
5536
  "src": "595:6:97",
@@ -5546,7 +5546,7 @@
5546
5546
  "typeString": "mapping(string => address)"
5547
5547
  },
5548
5548
  "valueType": {
5549
- "id": 35063,
5549
+ "id": 35082,
5550
5550
  "name": "address",
5551
5551
  "nodeType": "ElementaryTypeName",
5552
5552
  "src": "605:7:97",
@@ -5561,7 +5561,7 @@
5561
5561
  },
5562
5562
  {
5563
5563
  "body": {
5564
- "id": 35074,
5564
+ "id": 35093,
5565
5565
  "nodeType": "Block",
5566
5566
  "src": "652:59:97",
5567
5567
  "statements": [
@@ -5569,7 +5569,7 @@
5569
5569
  "expression": {
5570
5570
  "arguments": [
5571
5571
  {
5572
- "id": 35069,
5572
+ "id": 35088,
5573
5573
  "name": "DEFAULT_ADMIN_ROLE",
5574
5574
  "nodeType": "Identifier",
5575
5575
  "overloadedDeclarations": [],
@@ -5582,7 +5582,7 @@
5582
5582
  },
5583
5583
  {
5584
5584
  "expression": {
5585
- "id": 35070,
5585
+ "id": 35089,
5586
5586
  "name": "msg",
5587
5587
  "nodeType": "Identifier",
5588
5588
  "overloadedDeclarations": [],
@@ -5593,7 +5593,7 @@
5593
5593
  "typeString": "msg"
5594
5594
  }
5595
5595
  },
5596
- "id": 35071,
5596
+ "id": 35090,
5597
5597
  "isConstant": false,
5598
5598
  "isLValue": false,
5599
5599
  "isPure": false,
@@ -5618,7 +5618,7 @@
5618
5618
  "typeString": "address"
5619
5619
  }
5620
5620
  ],
5621
- "id": 35068,
5621
+ "id": 35087,
5622
5622
  "name": "_setupRole",
5623
5623
  "nodeType": "Identifier",
5624
5624
  "overloadedDeclarations": [],
@@ -5629,7 +5629,7 @@
5629
5629
  "typeString": "function (bytes32,address)"
5630
5630
  }
5631
5631
  },
5632
- "id": 35072,
5632
+ "id": 35091,
5633
5633
  "isConstant": false,
5634
5634
  "isLValue": false,
5635
5635
  "isPure": false,
@@ -5644,13 +5644,13 @@
5644
5644
  "typeString": "tuple()"
5645
5645
  }
5646
5646
  },
5647
- "id": 35073,
5647
+ "id": 35092,
5648
5648
  "nodeType": "ExpressionStatement",
5649
5649
  "src": "662:42:97"
5650
5650
  }
5651
5651
  ]
5652
5652
  },
5653
- "id": 35075,
5653
+ "id": 35094,
5654
5654
  "implemented": true,
5655
5655
  "kind": "constructor",
5656
5656
  "modifiers": [],
@@ -5658,18 +5658,18 @@
5658
5658
  "nameLocation": "-1:-1:-1",
5659
5659
  "nodeType": "FunctionDefinition",
5660
5660
  "parameters": {
5661
- "id": 35066,
5661
+ "id": 35085,
5662
5662
  "nodeType": "ParameterList",
5663
5663
  "parameters": [],
5664
5664
  "src": "649:2:97"
5665
5665
  },
5666
5666
  "returnParameters": {
5667
- "id": 35067,
5667
+ "id": 35086,
5668
5668
  "nodeType": "ParameterList",
5669
5669
  "parameters": [],
5670
5670
  "src": "652:0:97"
5671
5671
  },
5672
- "scope": 35118,
5672
+ "scope": 35137,
5673
5673
  "src": "638:73:97",
5674
5674
  "stateMutability": "nonpayable",
5675
5675
  "virtual": false,
@@ -5680,7 +5680,7 @@
5680
5680
  18888
5681
5681
  ],
5682
5682
  "body": {
5683
- "id": 35103,
5683
+ "id": 35122,
5684
5684
  "nodeType": "Block",
5685
5685
  "src": "786:159:97",
5686
5686
  "statements": [
@@ -5690,7 +5690,7 @@
5690
5690
  {
5691
5691
  "arguments": [
5692
5692
  {
5693
- "id": 35085,
5693
+ "id": 35104,
5694
5694
  "name": "DEFAULT_ADMIN_ROLE",
5695
5695
  "nodeType": "Identifier",
5696
5696
  "overloadedDeclarations": [],
@@ -5705,7 +5705,7 @@
5705
5705
  "arguments": [],
5706
5706
  "expression": {
5707
5707
  "argumentTypes": [],
5708
- "id": 35086,
5708
+ "id": 35105,
5709
5709
  "name": "_msgSender",
5710
5710
  "nodeType": "Identifier",
5711
5711
  "overloadedDeclarations": [],
@@ -5716,7 +5716,7 @@
5716
5716
  "typeString": "function () view returns (address)"
5717
5717
  }
5718
5718
  },
5719
- "id": 35087,
5719
+ "id": 35106,
5720
5720
  "isConstant": false,
5721
5721
  "isLValue": false,
5722
5722
  "isPure": false,
@@ -5743,7 +5743,7 @@
5743
5743
  "typeString": "address"
5744
5744
  }
5745
5745
  ],
5746
- "id": 35084,
5746
+ "id": 35103,
5747
5747
  "name": "hasRole",
5748
5748
  "nodeType": "Identifier",
5749
5749
  "overloadedDeclarations": [],
@@ -5754,7 +5754,7 @@
5754
5754
  "typeString": "function (bytes32,address) view returns (bool)"
5755
5755
  }
5756
5756
  },
5757
- "id": 35088,
5757
+ "id": 35107,
5758
5758
  "isConstant": false,
5759
5759
  "isLValue": false,
5760
5760
  "isPure": false,
@@ -5771,7 +5771,7 @@
5771
5771
  },
5772
5772
  {
5773
5773
  "hexValue": "43616c6c6572206973206e6f7420616e2061646d696e",
5774
- "id": 35089,
5774
+ "id": 35108,
5775
5775
  "isConstant": false,
5776
5776
  "isLValue": false,
5777
5777
  "isPure": true,
@@ -5797,7 +5797,7 @@
5797
5797
  "typeString": "literal_string \"Caller is not an admin\""
5798
5798
  }
5799
5799
  ],
5800
- "id": 35083,
5800
+ "id": 35102,
5801
5801
  "name": "require",
5802
5802
  "nodeType": "Identifier",
5803
5803
  "overloadedDeclarations": [
@@ -5811,7 +5811,7 @@
5811
5811
  "typeString": "function (bool,string memory) pure"
5812
5812
  }
5813
5813
  },
5814
- "id": 35090,
5814
+ "id": 35109,
5815
5815
  "isConstant": false,
5816
5816
  "isLValue": false,
5817
5817
  "isPure": false,
@@ -5826,37 +5826,37 @@
5826
5826
  "typeString": "tuple()"
5827
5827
  }
5828
5828
  },
5829
- "id": 35091,
5829
+ "id": 35110,
5830
5830
  "nodeType": "ExpressionStatement",
5831
5831
  "src": "796:76:97"
5832
5832
  },
5833
5833
  {
5834
5834
  "expression": {
5835
- "id": 35096,
5835
+ "id": 35115,
5836
5836
  "isConstant": false,
5837
5837
  "isLValue": false,
5838
5838
  "isPure": false,
5839
5839
  "lValueRequested": false,
5840
5840
  "leftHandSide": {
5841
5841
  "baseExpression": {
5842
- "id": 35092,
5842
+ "id": 35111,
5843
5843
  "name": "_registry",
5844
5844
  "nodeType": "Identifier",
5845
5845
  "overloadedDeclarations": [],
5846
- "referencedDeclaration": 35065,
5846
+ "referencedDeclaration": 35084,
5847
5847
  "src": "882:9:97",
5848
5848
  "typeDescriptions": {
5849
5849
  "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
5850
5850
  "typeString": "mapping(string memory => address)"
5851
5851
  }
5852
5852
  },
5853
- "id": 35094,
5853
+ "id": 35113,
5854
5854
  "indexExpression": {
5855
- "id": 35093,
5855
+ "id": 35112,
5856
5856
  "name": "name",
5857
5857
  "nodeType": "Identifier",
5858
5858
  "overloadedDeclarations": [],
5859
- "referencedDeclaration": 35077,
5859
+ "referencedDeclaration": 35096,
5860
5860
  "src": "892:4:97",
5861
5861
  "typeDescriptions": {
5862
5862
  "typeIdentifier": "t_string_calldata_ptr",
@@ -5877,11 +5877,11 @@
5877
5877
  "nodeType": "Assignment",
5878
5878
  "operator": "=",
5879
5879
  "rightHandSide": {
5880
- "id": 35095,
5880
+ "id": 35114,
5881
5881
  "name": "target",
5882
5882
  "nodeType": "Identifier",
5883
5883
  "overloadedDeclarations": [],
5884
- "referencedDeclaration": 35079,
5884
+ "referencedDeclaration": 35098,
5885
5885
  "src": "900:6:97",
5886
5886
  "typeDescriptions": {
5887
5887
  "typeIdentifier": "t_address",
@@ -5894,7 +5894,7 @@
5894
5894
  "typeString": "address"
5895
5895
  }
5896
5896
  },
5897
- "id": 35097,
5897
+ "id": 35116,
5898
5898
  "nodeType": "ExpressionStatement",
5899
5899
  "src": "882:24:97"
5900
5900
  },
@@ -5902,11 +5902,11 @@
5902
5902
  "eventCall": {
5903
5903
  "arguments": [
5904
5904
  {
5905
- "id": 35099,
5905
+ "id": 35118,
5906
5906
  "name": "name",
5907
5907
  "nodeType": "Identifier",
5908
5908
  "overloadedDeclarations": [],
5909
- "referencedDeclaration": 35077,
5909
+ "referencedDeclaration": 35096,
5910
5910
  "src": "925:4:97",
5911
5911
  "typeDescriptions": {
5912
5912
  "typeIdentifier": "t_string_calldata_ptr",
@@ -5914,11 +5914,11 @@
5914
5914
  }
5915
5915
  },
5916
5916
  {
5917
- "id": 35100,
5917
+ "id": 35119,
5918
5918
  "name": "target",
5919
5919
  "nodeType": "Identifier",
5920
5920
  "overloadedDeclarations": [],
5921
- "referencedDeclaration": 35079,
5921
+ "referencedDeclaration": 35098,
5922
5922
  "src": "931:6:97",
5923
5923
  "typeDescriptions": {
5924
5924
  "typeIdentifier": "t_address",
@@ -5937,7 +5937,7 @@
5937
5937
  "typeString": "address"
5938
5938
  }
5939
5939
  ],
5940
- "id": 35098,
5940
+ "id": 35117,
5941
5941
  "name": "Set",
5942
5942
  "nodeType": "Identifier",
5943
5943
  "overloadedDeclarations": [],
@@ -5948,7 +5948,7 @@
5948
5948
  "typeString": "function (string memory,address)"
5949
5949
  }
5950
5950
  },
5951
- "id": 35101,
5951
+ "id": 35120,
5952
5952
  "isConstant": false,
5953
5953
  "isLValue": false,
5954
5954
  "isPure": false,
@@ -5963,14 +5963,14 @@
5963
5963
  "typeString": "tuple()"
5964
5964
  }
5965
5965
  },
5966
- "id": 35102,
5966
+ "id": 35121,
5967
5967
  "nodeType": "EmitStatement",
5968
5968
  "src": "916:22:97"
5969
5969
  }
5970
5970
  ]
5971
5971
  },
5972
5972
  "functionSelector": "a815ff15",
5973
- "id": 35104,
5973
+ "id": 35123,
5974
5974
  "implemented": true,
5975
5975
  "kind": "function",
5976
5976
  "modifiers": [],
@@ -5978,23 +5978,23 @@
5978
5978
  "nameLocation": "726:3:97",
5979
5979
  "nodeType": "FunctionDefinition",
5980
5980
  "overrides": {
5981
- "id": 35081,
5981
+ "id": 35100,
5982
5982
  "nodeType": "OverrideSpecifier",
5983
5983
  "overrides": [],
5984
5984
  "src": "777:8:97"
5985
5985
  },
5986
5986
  "parameters": {
5987
- "id": 35080,
5987
+ "id": 35099,
5988
5988
  "nodeType": "ParameterList",
5989
5989
  "parameters": [
5990
5990
  {
5991
5991
  "constant": false,
5992
- "id": 35077,
5992
+ "id": 35096,
5993
5993
  "mutability": "mutable",
5994
5994
  "name": "name",
5995
5995
  "nameLocation": "746:4:97",
5996
5996
  "nodeType": "VariableDeclaration",
5997
- "scope": 35104,
5997
+ "scope": 35123,
5998
5998
  "src": "730:20:97",
5999
5999
  "stateVariable": false,
6000
6000
  "storageLocation": "calldata",
@@ -6003,7 +6003,7 @@
6003
6003
  "typeString": "string"
6004
6004
  },
6005
6005
  "typeName": {
6006
- "id": 35076,
6006
+ "id": 35095,
6007
6007
  "name": "string",
6008
6008
  "nodeType": "ElementaryTypeName",
6009
6009
  "src": "730:6:97",
@@ -6016,12 +6016,12 @@
6016
6016
  },
6017
6017
  {
6018
6018
  "constant": false,
6019
- "id": 35079,
6019
+ "id": 35098,
6020
6020
  "mutability": "mutable",
6021
6021
  "name": "target",
6022
6022
  "nameLocation": "760:6:97",
6023
6023
  "nodeType": "VariableDeclaration",
6024
- "scope": 35104,
6024
+ "scope": 35123,
6025
6025
  "src": "752:14:97",
6026
6026
  "stateVariable": false,
6027
6027
  "storageLocation": "default",
@@ -6030,7 +6030,7 @@
6030
6030
  "typeString": "address"
6031
6031
  },
6032
6032
  "typeName": {
6033
- "id": 35078,
6033
+ "id": 35097,
6034
6034
  "name": "address",
6035
6035
  "nodeType": "ElementaryTypeName",
6036
6036
  "src": "752:7:97",
@@ -6046,12 +6046,12 @@
6046
6046
  "src": "729:38:97"
6047
6047
  },
6048
6048
  "returnParameters": {
6049
- "id": 35082,
6049
+ "id": 35101,
6050
6050
  "nodeType": "ParameterList",
6051
6051
  "parameters": [],
6052
6052
  "src": "786:0:97"
6053
6053
  },
6054
- "scope": 35118,
6054
+ "scope": 35137,
6055
6055
  "src": "717:228:97",
6056
6056
  "stateMutability": "nonpayable",
6057
6057
  "virtual": false,
@@ -6062,31 +6062,31 @@
6062
6062
  18896
6063
6063
  ],
6064
6064
  "body": {
6065
- "id": 35116,
6065
+ "id": 35135,
6066
6066
  "nodeType": "Block",
6067
6067
  "src": "1027:39:97",
6068
6068
  "statements": [
6069
6069
  {
6070
6070
  "expression": {
6071
6071
  "baseExpression": {
6072
- "id": 35112,
6072
+ "id": 35131,
6073
6073
  "name": "_registry",
6074
6074
  "nodeType": "Identifier",
6075
6075
  "overloadedDeclarations": [],
6076
- "referencedDeclaration": 35065,
6076
+ "referencedDeclaration": 35084,
6077
6077
  "src": "1044:9:97",
6078
6078
  "typeDescriptions": {
6079
6079
  "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$",
6080
6080
  "typeString": "mapping(string memory => address)"
6081
6081
  }
6082
6082
  },
6083
- "id": 35114,
6083
+ "id": 35133,
6084
6084
  "indexExpression": {
6085
- "id": 35113,
6085
+ "id": 35132,
6086
6086
  "name": "name",
6087
6087
  "nodeType": "Identifier",
6088
6088
  "overloadedDeclarations": [],
6089
- "referencedDeclaration": 35106,
6089
+ "referencedDeclaration": 35125,
6090
6090
  "src": "1054:4:97",
6091
6091
  "typeDescriptions": {
6092
6092
  "typeIdentifier": "t_string_calldata_ptr",
@@ -6104,15 +6104,15 @@
6104
6104
  "typeString": "address"
6105
6105
  }
6106
6106
  },
6107
- "functionReturnParameters": 35111,
6108
- "id": 35115,
6107
+ "functionReturnParameters": 35130,
6108
+ "id": 35134,
6109
6109
  "nodeType": "Return",
6110
6110
  "src": "1037:22:97"
6111
6111
  }
6112
6112
  ]
6113
6113
  },
6114
6114
  "functionSelector": "693ec85e",
6115
- "id": 35117,
6115
+ "id": 35136,
6116
6116
  "implemented": true,
6117
6117
  "kind": "function",
6118
6118
  "modifiers": [],
@@ -6120,23 +6120,23 @@
6120
6120
  "nameLocation": "960:3:97",
6121
6121
  "nodeType": "FunctionDefinition",
6122
6122
  "overrides": {
6123
- "id": 35108,
6123
+ "id": 35127,
6124
6124
  "nodeType": "OverrideSpecifier",
6125
6125
  "overrides": [],
6126
6126
  "src": "1000:8:97"
6127
6127
  },
6128
6128
  "parameters": {
6129
- "id": 35107,
6129
+ "id": 35126,
6130
6130
  "nodeType": "ParameterList",
6131
6131
  "parameters": [
6132
6132
  {
6133
6133
  "constant": false,
6134
- "id": 35106,
6134
+ "id": 35125,
6135
6135
  "mutability": "mutable",
6136
6136
  "name": "name",
6137
6137
  "nameLocation": "980:4:97",
6138
6138
  "nodeType": "VariableDeclaration",
6139
- "scope": 35117,
6139
+ "scope": 35136,
6140
6140
  "src": "964:20:97",
6141
6141
  "stateVariable": false,
6142
6142
  "storageLocation": "calldata",
@@ -6145,7 +6145,7 @@
6145
6145
  "typeString": "string"
6146
6146
  },
6147
6147
  "typeName": {
6148
- "id": 35105,
6148
+ "id": 35124,
6149
6149
  "name": "string",
6150
6150
  "nodeType": "ElementaryTypeName",
6151
6151
  "src": "964:6:97",
@@ -6160,17 +6160,17 @@
6160
6160
  "src": "963:22:97"
6161
6161
  },
6162
6162
  "returnParameters": {
6163
- "id": 35111,
6163
+ "id": 35130,
6164
6164
  "nodeType": "ParameterList",
6165
6165
  "parameters": [
6166
6166
  {
6167
6167
  "constant": false,
6168
- "id": 35110,
6168
+ "id": 35129,
6169
6169
  "mutability": "mutable",
6170
6170
  "name": "",
6171
6171
  "nameLocation": "-1:-1:-1",
6172
6172
  "nodeType": "VariableDeclaration",
6173
- "scope": 35117,
6173
+ "scope": 35136,
6174
6174
  "src": "1018:7:97",
6175
6175
  "stateVariable": false,
6176
6176
  "storageLocation": "default",
@@ -6179,7 +6179,7 @@
6179
6179
  "typeString": "address"
6180
6180
  },
6181
6181
  "typeName": {
6182
- "id": 35109,
6182
+ "id": 35128,
6183
6183
  "name": "address",
6184
6184
  "nodeType": "ElementaryTypeName",
6185
6185
  "src": "1018:7:97",
@@ -6194,14 +6194,14 @@
6194
6194
  ],
6195
6195
  "src": "1017:9:97"
6196
6196
  },
6197
- "scope": 35118,
6197
+ "scope": 35137,
6198
6198
  "src": "951:115:97",
6199
6199
  "stateMutability": "view",
6200
6200
  "virtual": false,
6201
6201
  "visibility": "external"
6202
6202
  }
6203
6203
  ],
6204
- "scope": 35119,
6204
+ "scope": 35138,
6205
6205
  "src": "524:545:97",
6206
6206
  "usedErrors": []
6207
6207
  }
@@ -6210,11 +6210,11 @@
6210
6210
  },
6211
6211
  "compiler": {
6212
6212
  "name": "solc",
6213
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
6213
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
6214
6214
  },
6215
6215
  "networks": {},
6216
6216
  "schemaVersion": "3.4.7",
6217
- "updatedAt": "2022-06-03T09:45:14.341Z",
6217
+ "updatedAt": "2022-06-20T11:32:30.092Z",
6218
6218
  "devdoc": {
6219
6219
  "author": "Superfluid",
6220
6220
  "details": "A simple implementation of IResolver using OZ AccessControl NOTE: Relevant events for indexing: - OZ Access Control events `RoleGranted`/`RoleRevoked`: admin add/remove - IResolver event `Set`: resolver name updates",