@superfluid-finance/ethereum-contracts 1.2.3-dev.f94fdbb.0 → 1.3.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
@@ -896,9 +896,9 @@
896
896
  "type": "function"
897
897
  }
898
898
  ],
899
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"}],\"name\":\"CFAv1LiquidationPeriodChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"ConfigChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"}],\"name\":\"PPPConfigurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"}],\"name\":\"RewardAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minimumDeposit\",\"type\":\"uint256\"}],\"name\":\"SuperTokenMinimumDepositChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"TrustedForwarderChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"authorizeAppFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperToken[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"batchUpdateSuperTokenLogic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperToken[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"minimumDeposits\",\"type\":\"uint256[]\"}],\"name\":\"batchUpdateSuperTokenMinimumDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"clearConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"clearPPPConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"clearRewardAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"clearSuperTokenMinimumDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"clearTrustedForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"disableTrustedForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"enableTrustedForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getConfigAsAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getConfigAsUint256\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"period\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"getPPPConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"getRewardAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"getSuperTokenMinimumDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"trustedForwarders\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"isAuthorizedAppFactory\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"}],\"name\":\"registerAgreementClass\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newGov\",\"type\":\"address\"}],\"name\":\"replaceGovernance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"}],\"name\":\"setPPPConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"}],\"name\":\"setRewardAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setSuperTokenMinimumDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"unauthorizeAppFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"hostNewLogic\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"agreementClassNewLogics\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"superTokenFactoryNewLogic\",\"type\":\"address\"}],\"name\":\"updateContracts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid \",\"details\":\"A initializable version of the governance for testing purpose\",\"kind\":\"dev\",\"methods\":{\"authorizeAppFactory(address,address)\":{\"details\":\"allows the given factory to register new apps without requiring onetime keys\",\"params\":{\"factory\":\"must be an initialized contract\"}},\"batchUpdateSuperTokenLogic(address,address[])\":{\"details\":\"Update supertoken logic contract to the latest that is managed by the super token factory\"},\"clearConfig(address,address,bytes32)\":{\"details\":\"Clear configuration\"},\"getConfigAsAddress(address,address,bytes32)\":{\"details\":\"Get configuration as address value\"},\"getConfigAsUint256(address,address,bytes32)\":{\"details\":\"Get configuration as uint256 value\"},\"isAuthorizedAppFactory(address,address)\":{\"details\":\"tells if the given factory is authorized to register apps\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerAgreementClass(address,address)\":{\"details\":\"Register a new agreement class\"},\"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.\"},\"replaceGovernance(address,address)\":{\"details\":\"Replace the current governance with a new governance\"},\"setConfig(address,address,bytes32,address)\":{\"details\":\"Set configuration as address value\"},\"setConfig(address,address,bytes32,uint256)\":{\"details\":\"Set configuration as uint256 value\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unauthorizeAppFactory(address,address)\":{\"details\":\"withdraws authorization from a factory to register new apps. Doesn't affect apps previously registered by the factory.\"},\"updateContracts(address,address,address[],address)\":{\"details\":\"Update logics of the contracts NOTE: - Because they might have inter-dependencies, it is good to have one single function to update them all\"}},\"title\":\"Test governance contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/TestGovernance.sol\":\"TestGovernance\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"project:/contracts/gov/SuperfluidGovernanceBase.sol\":{\"keccak256\":\"0xcbf4daa0e4c1da855ee47011428b4cd75c9fd5b7923749c481a882bbeb241fbb\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://bb93ada4ed13faf08607fc37eefdfa99342a3b766648158e58874acc1ea42861\",\"dweb:/ipfs/Qmdcks7t6bxnbR9f7q2Db9JMsicJeQJo7nEMppwPSCp4pg\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x57f4203168992c940eb6b8c7cc75f854cb36a1f9323b3f39ddc5e4fbe819c043\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://888941dfa3e5004f678f215b98a85d1bf54e412317928a78e0a1cff090773d4c\",\"dweb:/ipfs/QmVe838upcAyqpy1d3oQNHJrbRyWCKHL51zWrMKruvLxFG\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0x3cb0b7216007b942f7611d7b3d983c0df9408fdd4fd6b799c33fc9033e0abf8b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://17901a1fd3635f441671e14ece8ecc6806af20c5eb80cca3b7c6e53a51fef7b6\",\"dweb:/ipfs/QmUXXMfU6nmsyEnufyGEwyZ5M7pzpXNTr6vw32e3JjjoZp\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0x2d9b845469a35b66f1166406149ac85e933dbe9156f57e4a4078948e6a6e71a4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://48e5cb11d4b90e42af521e23b33d57e12187c989d8d56be332b1649308168d45\",\"dweb:/ipfs/QmdaTW4HfpFfHjkHiJ3CmZUmCfLJyFCPTnCygwhiNhx3Tu\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x518b869178aafffde40c654a1e24b3b1a2b5e42e5e8f17562556f404db8b9434\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://458ce84666b418fa3a7569c0e109db4d920fb6d1cb67ebc4c497c9c71107d93b\",\"dweb:/ipfs/QmV9nqhRF7MDGkV6UW3WWcqeXov2vmqHuRcvbqaaV8yP6u\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0x5f50cec21a585dab7b59545aeb51735f36e3222e4b0768370be8d46373d0ef05\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://acdd57d81b5b2d346da335636baf1e37da3d31cf2eef58af493e43bc65a27414\",\"dweb:/ipfs/QmTepRBNAfRBXVDBM37ME1jpw1YgcseVehC17sWpEYeFDc\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xffec084e77ce3c0b595f0612687242f3d8b7a84cab15e5650c17428ee48d0b5b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://be0183816467872b053562d9a737042ac3a91ea67e3c74e03de5db7226f3e73b\",\"dweb:/ipfs/QmUyi4YXh1T7MExbrLwZ6rAdXTPChF8q27YpZxxniR6CHM\"]},\"project:/contracts/utils/TestGovernance.sol\":{\"keccak256\":\"0x88232403c83d71e09b94ff78bf4464d5707c55052247c94b5d0a7808b4ab366b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://b4b364b1555bad346d96ea124597823514c75a0f49b30136d65b3b9be4d09aac\",\"dweb:/ipfs/QmQKztdSztuVcW6EnQzTUvjFS2Dudi89g1sZ2fxBEZSuoy\"]}},\"version\":1}",
900
- "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119188061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c80637f0558e4116101045780638da5cb5b116100a2578063e447cc1d11610071578063e447cc1d1461040c578063f047a2d91461041f578063f2fde38b14610432578063f79a8e631461044557600080fd5b80638da5cb5b146103c25780638ecbd87b146103d3578063ab846f1a146103e6578063cadf8f85146103f957600080fd5b80638a7ff2f7116100de5780638a7ff2f7146103665780638abe04e9146103795780638b93b3f51461039c5780638ce93379146103af57600080fd5b80637f0558e41461032457806380f70cba146103375780638369a0f11461035857600080fd5b8063427942a41161017c578063640b6cc91161014b578063640b6cc9146102e3578063715018a6146102f657806378707cb8146102fe5780637dce4f811461031157600080fd5b8063427942a41461028257806344864b251461029557806345228235146102a85780635a907818146102d057600080fd5b806321964473116101b8578063219644731461023657806325c955c314610249578063325529081461025c57806342148deb1461026f57600080fd5b806286d555146101de57806301a06b97146101f357806319df62ab14610206575b600080fd5b6101f16101ec36600461144d565b610458565b005b6101f1610201366004611493565b610573565b610219610214366004611493565b6105f2565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f1610244366004611518565b610626565b6101f1610257366004611493565b6106ef565b6101f161026a3660046115ab565b610703565b6101f161027d3660046115f6565b61077f565b6101f161029036600461164b565b610834565b6101f16102a3366004611493565b6109c7565b6102bb6102b6366004611493565b610a32565b6040805192835260208301919091520161022d565b6101f16102de3660046116de565b610a7a565b6101f16102f13660046117de565b610b31565b6101f1610b3c565b6101f161030c36600461181f565b610ba2565b6101f161031f3660046115ab565b610bae565b6101f16103323660046117de565b610c1e565b61034a6103453660046117de565b610c94565b60405190815260200161022d565b6102196103453660046117de565b61034a610374366004611493565b610d05565b61038c610387366004611493565b610d32565b604051901515815260200161022d565b6101f16103aa366004611493565b610d4d565b6101f16103bd3660046115ab565b610dbd565b6000546001600160a01b0316610219565b6101f16103e1366004611493565b610e1c565b6101f16103f43660046115ab565b610e90565b6101f1610407366004611493565b610eec565b6101f161041a366004611493565b610f24565b61038c61042d3660046115ab565b610f98565b6101f1610440366004611872565b610fb3565b6101f161045336600461144d565b61107e565b808211801561046a575063ffffffff82105b8015610479575063ffffffff81105b6104e65760405162461bcd60e51b815260206004820152603360248201527f5346476f763a20496e76616c6964206c69717569646174696f6e506572696f64604482015272081bdc881c185d1c9a58da585b94195c9a5bd9606a1b60648201526084015b60405180910390fd5b6040805160018152602081018490529081018290526001600160a01b0380851691908616907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869060600160405180910390a3602082901b811761056b85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f7884611086565b505b50505050565b604080516000808252602082018190528183015290516001600160a01b0383811692908516917f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869181900360600190a36105ee82827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78611139565b5050565b600061061f83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610c94565b9392505050565b8281146106835760405162461bcd60e51b815260206004820152602560248201527f5346476f763a2061727261797320617265206e6f74207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016104dd565b60005b818110156106e7576106d7868686848181106106a4576106a461188f565b90506020020160208101906106b99190611872565b8585858181106106cb576106cb61188f565b90506020020135610c1e565b6106e0816118a5565b9050610686565b505050505050565b6105ee8260006106fe846111fa565b611139565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a361077a83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d098461128d565b505050565b8261078981611342565b60005b8281101561056b57846001600160a01b031663787afde78585848181106107b5576107b561188f565b90506020020160208101906107ca9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b505050508061082d906118a5565b905061078c565b8461083e81611342565b6001600160a01b038516156108a9576040516311a5465560e21b81526001600160a01b038681166004830152871690634695195490602401600060405180830381600087803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b505050505b60005b8381101561095457866001600160a01b03166306cecba88686848181106108d5576108d561188f565b90506020020160208101906108ea9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050508061094d906118a5565b90506108ac565b506001600160a01b038216156106e7576040516354fbc49360e01b81526001600160a01b0383811660048301528716906354fbc49390602401600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b50505050505050505050565b816109d181611342565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b50505050505050565b6000806000610a6285857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610c94565b63ffffffff602082901c811697911695509350505050565b6001600160a01b038516610a9057610a906118cc565b6002546001600160a01b031615610aa957610aa96118cc565b600280546001600160a01b0319166001600160a01b038716908117909155610ad390600086610703565b610ae08560008585610458565b60005b81518110156106e7576002548251610b21916001600160a01b031690600090859085908110610b1457610b1461188f565b6020026020010151610e90565b610b2a816118a5565b9050610ae3565b61077a838383611139565b6000546001600160a01b03163314610b965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b610ba06000611379565b565b61056d8484848461128d565b610bc38383610bbc846113c9565b6000611086565b60408051600181526001600160a01b038381166020830152600092820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d27906060015b60405180910390a3505050565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a361077a83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc484611086565b6001600160a01b03808416600090815260016020908152604080832093861683529281528282208483529052908120805460ff16610cf957506001600160a01b0384166000908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b600061061f83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610c94565b6000610d43836000610345856111fa565b6001149392505050565b803b80610da65760405162461bcd60e51b815260206004820152602160248201527f5346476f763a20666163746f7279206d757374206265206120636f6e747261636044820152601d60fa1b60648201526084016104dd565b506105ee826000610db6846111fa565b6001611086565b6040805160008082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d279060600160405180910390a361077a83836106fe846113c9565b60408051600080825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a36105ee82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4611139565b610e9e8383610db6846113c9565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610c11565b81610ef681611342565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e1906024016109fb565b60408051600080825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a36105ee82827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09611139565b6000610fa88484610345856113c9565b600114949350505050565b6000546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b6001600160a01b0381166110725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dd565b61107b81611379565b50565b61056d848484845b8361109081611342565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788166000908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b8261114381611342565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3908460008060405161119c939291909283529015156020830152604082015260600190565b60405180910390a350604080518082018252600080825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b8361129781611342565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b03938416602080840191825297851660009081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b6002546001600160a01b0382811691161461135f5761135f6118cc565b6000546001600160a01b0316331461107b5761107b6118cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c001611270565b6001600160a01b038116811461107b57600080fd5b6000806000806080858703121561146357600080fd5b843561146e81611438565b9350602085013561147e81611438565b93969395505050506040820135916060013590565b600080604083850312156114a657600080fd5b82356114b181611438565b915060208301356114c181611438565b809150509250929050565b60008083601f8401126114de57600080fd5b50813567ffffffffffffffff8111156114f657600080fd5b6020830191508360208260051b850101111561151157600080fd5b9250929050565b60008060008060006060868803121561153057600080fd5b853561153b81611438565b9450602086013567ffffffffffffffff8082111561155857600080fd5b61156489838a016114cc565b9096509450604088013591508082111561157d57600080fd5b5061158a888289016114cc565b969995985093965092949392505050565b80356115a681611438565b919050565b6000806000606084860312156115c057600080fd5b83356115cb81611438565b925060208401356115db81611438565b915060408401356115eb81611438565b809150509250925092565b60008060006040848603121561160b57600080fd5b833561161681611438565b9250602084013567ffffffffffffffff81111561163257600080fd5b61163e868287016114cc565b9497909650939450505050565b60008060008060006080868803121561166357600080fd5b853561166e81611438565b9450602086013561167e81611438565b9350604086013567ffffffffffffffff81111561169a57600080fd5b6116a6888289016114cc565b90945092505060608601356116ba81611438565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156116f657600080fd5b853561170181611438565b945060208681013561171281611438565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561173d57600080fd5b818901915089601f83011261175157600080fd5b813581811115611763576117636116c8565b8060051b604051601f19603f83011681018181108582111715611788576117886116c8565b60405291825284820192508381018501918c8311156117a657600080fd5b938501935b828510156117cb576117bc8561159b565b845293850193928501926117ab565b8096505050505050509295509295909350565b6000806000606084860312156117f357600080fd5b83356117fe81611438565b9250602084013561180e81611438565b929592945050506040919091013590565b6000806000806080858703121561183557600080fd5b843561184081611438565b9350602085013561185081611438565b925060408501359150606085013561186781611438565b939692955090935050565b60006020828403121561188457600080fd5b813561061f81611438565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c557634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220d55d03fae1077e9654f24de4836d0c79dbf8f3f6fc31f40ab920a491cb0e33d164736f6c634300080d0033",
901
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101d95760003560e01c80637f0558e4116101045780638da5cb5b116100a2578063e447cc1d11610071578063e447cc1d1461040c578063f047a2d91461041f578063f2fde38b14610432578063f79a8e631461044557600080fd5b80638da5cb5b146103c25780638ecbd87b146103d3578063ab846f1a146103e6578063cadf8f85146103f957600080fd5b80638a7ff2f7116100de5780638a7ff2f7146103665780638abe04e9146103795780638b93b3f51461039c5780638ce93379146103af57600080fd5b80637f0558e41461032457806380f70cba146103375780638369a0f11461035857600080fd5b8063427942a41161017c578063640b6cc91161014b578063640b6cc9146102e3578063715018a6146102f657806378707cb8146102fe5780637dce4f811461031157600080fd5b8063427942a41461028257806344864b251461029557806345228235146102a85780635a907818146102d057600080fd5b806321964473116101b8578063219644731461023657806325c955c314610249578063325529081461025c57806342148deb1461026f57600080fd5b806286d555146101de57806301a06b97146101f357806319df62ab14610206575b600080fd5b6101f16101ec36600461144d565b610458565b005b6101f1610201366004611493565b610573565b610219610214366004611493565b6105f2565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f1610244366004611518565b610626565b6101f1610257366004611493565b6106ef565b6101f161026a3660046115ab565b610703565b6101f161027d3660046115f6565b61077f565b6101f161029036600461164b565b610834565b6101f16102a3366004611493565b6109c7565b6102bb6102b6366004611493565b610a32565b6040805192835260208301919091520161022d565b6101f16102de3660046116de565b610a7a565b6101f16102f13660046117de565b610b31565b6101f1610b3c565b6101f161030c36600461181f565b610ba2565b6101f161031f3660046115ab565b610bae565b6101f16103323660046117de565b610c1e565b61034a6103453660046117de565b610c94565b60405190815260200161022d565b6102196103453660046117de565b61034a610374366004611493565b610d05565b61038c610387366004611493565b610d32565b604051901515815260200161022d565b6101f16103aa366004611493565b610d4d565b6101f16103bd3660046115ab565b610dbd565b6000546001600160a01b0316610219565b6101f16103e1366004611493565b610e1c565b6101f16103f43660046115ab565b610e90565b6101f1610407366004611493565b610eec565b6101f161041a366004611493565b610f24565b61038c61042d3660046115ab565b610f98565b6101f1610440366004611872565b610fb3565b6101f161045336600461144d565b61107e565b808211801561046a575063ffffffff82105b8015610479575063ffffffff81105b6104e65760405162461bcd60e51b815260206004820152603360248201527f5346476f763a20496e76616c6964206c69717569646174696f6e506572696f64604482015272081bdc881c185d1c9a58da585b94195c9a5bd9606a1b60648201526084015b60405180910390fd5b6040805160018152602081018490529081018290526001600160a01b0380851691908616907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869060600160405180910390a3602082901b811761056b85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f7884611086565b505b50505050565b604080516000808252602082018190528183015290516001600160a01b0383811692908516917f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869181900360600190a36105ee82827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78611139565b5050565b600061061f83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610c94565b9392505050565b8281146106835760405162461bcd60e51b815260206004820152602560248201527f5346476f763a2061727261797320617265206e6f74207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016104dd565b60005b818110156106e7576106d7868686848181106106a4576106a461188f565b90506020020160208101906106b99190611872565b8585858181106106cb576106cb61188f565b90506020020135610c1e565b6106e0816118a5565b9050610686565b505050505050565b6105ee8260006106fe846111fa565b611139565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a361077a83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d098461128d565b505050565b8261078981611342565b60005b8281101561056b57846001600160a01b031663787afde78585848181106107b5576107b561188f565b90506020020160208101906107ca9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b505050508061082d906118a5565b905061078c565b8461083e81611342565b6001600160a01b038516156108a9576040516311a5465560e21b81526001600160a01b038681166004830152871690634695195490602401600060405180830381600087803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b505050505b60005b8381101561095457866001600160a01b03166306cecba88686848181106108d5576108d561188f565b90506020020160208101906108ea9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050508061094d906118a5565b90506108ac565b506001600160a01b038216156106e7576040516354fbc49360e01b81526001600160a01b0383811660048301528716906354fbc49390602401600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b50505050505050505050565b816109d181611342565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b50505050505050565b6000806000610a6285857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610c94565b63ffffffff602082901c811697911695509350505050565b6001600160a01b038516610a9057610a906118cc565b6002546001600160a01b031615610aa957610aa96118cc565b600280546001600160a01b0319166001600160a01b038716908117909155610ad390600086610703565b610ae08560008585610458565b60005b81518110156106e7576002548251610b21916001600160a01b031690600090859085908110610b1457610b1461188f565b6020026020010151610e90565b610b2a816118a5565b9050610ae3565b61077a838383611139565b6000546001600160a01b03163314610b965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b610ba06000611379565b565b61056d8484848461128d565b610bc38383610bbc846113c9565b6000611086565b60408051600181526001600160a01b038381166020830152600092820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d27906060015b60405180910390a3505050565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a361077a83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc484611086565b6001600160a01b03808416600090815260016020908152604080832093861683529281528282208483529052908120805460ff16610cf957506001600160a01b0384166000908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b600061061f83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610c94565b6000610d43836000610345856111fa565b6001149392505050565b803b80610da65760405162461bcd60e51b815260206004820152602160248201527f5346476f763a20666163746f7279206d757374206265206120636f6e747261636044820152601d60fa1b60648201526084016104dd565b506105ee826000610db6846111fa565b6001611086565b6040805160008082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d279060600160405180910390a361077a83836106fe846113c9565b60408051600080825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a36105ee82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4611139565b610e9e8383610db6846113c9565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610c11565b81610ef681611342565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e1906024016109fb565b60408051600080825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a36105ee82827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09611139565b6000610fa88484610345856113c9565b600114949350505050565b6000546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b6001600160a01b0381166110725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dd565b61107b81611379565b50565b61056d848484845b8361109081611342565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788166000908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b8261114381611342565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3908460008060405161119c939291909283529015156020830152604082015260600190565b60405180910390a350604080518082018252600080825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b8361129781611342565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b03938416602080840191825297851660009081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b6002546001600160a01b0382811691161461135f5761135f6118cc565b6000546001600160a01b0316331461107b5761107b6118cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c001611270565b6001600160a01b038116811461107b57600080fd5b6000806000806080858703121561146357600080fd5b843561146e81611438565b9350602085013561147e81611438565b93969395505050506040820135916060013590565b600080604083850312156114a657600080fd5b82356114b181611438565b915060208301356114c181611438565b809150509250929050565b60008083601f8401126114de57600080fd5b50813567ffffffffffffffff8111156114f657600080fd5b6020830191508360208260051b850101111561151157600080fd5b9250929050565b60008060008060006060868803121561153057600080fd5b853561153b81611438565b9450602086013567ffffffffffffffff8082111561155857600080fd5b61156489838a016114cc565b9096509450604088013591508082111561157d57600080fd5b5061158a888289016114cc565b969995985093965092949392505050565b80356115a681611438565b919050565b6000806000606084860312156115c057600080fd5b83356115cb81611438565b925060208401356115db81611438565b915060408401356115eb81611438565b809150509250925092565b60008060006040848603121561160b57600080fd5b833561161681611438565b9250602084013567ffffffffffffffff81111561163257600080fd5b61163e868287016114cc565b9497909650939450505050565b60008060008060006080868803121561166357600080fd5b853561166e81611438565b9450602086013561167e81611438565b9350604086013567ffffffffffffffff81111561169a57600080fd5b6116a6888289016114cc565b90945092505060608601356116ba81611438565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156116f657600080fd5b853561170181611438565b945060208681013561171281611438565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561173d57600080fd5b818901915089601f83011261175157600080fd5b813581811115611763576117636116c8565b8060051b604051601f19603f83011681018181108582111715611788576117886116c8565b60405291825284820192508381018501918c8311156117a657600080fd5b938501935b828510156117cb576117bc8561159b565b845293850193928501926117ab565b8096505050505050509295509295909350565b6000806000606084860312156117f357600080fd5b83356117fe81611438565b9250602084013561180e81611438565b929592945050506040919091013590565b6000806000806080858703121561183557600080fd5b843561184081611438565b9350602085013561185081611438565b925060408501359150606085013561186781611438565b939692955090935050565b60006020828403121561188457600080fd5b813561061f81611438565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c557634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220d55d03fae1077e9654f24de4836d0c79dbf8f3f6fc31f40ab920a491cb0e33d164736f6c634300080d0033",
899
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"}],\"name\":\"CFAv1LiquidationPeriodChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"ConfigChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"}],\"name\":\"PPPConfigurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"}],\"name\":\"RewardAddressChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minimumDeposit\",\"type\":\"uint256\"}],\"name\":\"SuperTokenMinimumDepositChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isKeySet\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"TrustedForwarderChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"authorizeAppFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperToken[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"name\":\"batchUpdateSuperTokenLogic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperToken[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"minimumDeposits\",\"type\":\"uint256[]\"}],\"name\":\"batchUpdateSuperTokenMinimumDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"clearConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"clearPPPConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"clearRewardAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"clearSuperTokenMinimumDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"clearTrustedForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"disableTrustedForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"enableTrustedForwarder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getConfigAsAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"getConfigAsUint256\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"period\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"getPPPConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"getRewardAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"}],\"name\":\"getSuperTokenMinimumDeposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"trustedForwarders\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"isAuthorizedAppFactory\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"}],\"name\":\"registerAgreementClass\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newGov\",\"type\":\"address\"}],\"name\":\"replaceGovernance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"value\",\"type\":\"address\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"liquidationPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"patricianPeriod\",\"type\":\"uint256\"}],\"name\":\"setPPPConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rewardAddress\",\"type\":\"address\"}],\"name\":\"setRewardAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"superToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"setSuperTokenMinimumDeposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"name\":\"unauthorizeAppFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluid\",\"name\":\"host\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"hostNewLogic\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"agreementClassNewLogics\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"superTokenFactoryNewLogic\",\"type\":\"address\"}],\"name\":\"updateContracts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"details\":\"A initializable version of the governance for testing purpose\",\"kind\":\"dev\",\"methods\":{\"authorizeAppFactory(address,address)\":{\"details\":\"allows the given factory to register new apps without requiring onetime keys\",\"params\":{\"factory\":\"must be an initialized contract\"}},\"batchUpdateSuperTokenLogic(address,address[])\":{\"details\":\"Update supertoken logic contract to the latest that is managed by the super token factory\"},\"clearConfig(address,address,bytes32)\":{\"details\":\"Clear configuration\"},\"getConfigAsAddress(address,address,bytes32)\":{\"details\":\"Get configuration as address value\"},\"getConfigAsUint256(address,address,bytes32)\":{\"details\":\"Get configuration as uint256 value\"},\"isAuthorizedAppFactory(address,address)\":{\"details\":\"tells if the given factory is authorized to register apps\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerAgreementClass(address,address)\":{\"details\":\"Register a new agreement class\"},\"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.\"},\"replaceGovernance(address,address)\":{\"details\":\"Replace the current governance with a new governance\"},\"setConfig(address,address,bytes32,address)\":{\"details\":\"Set configuration as address value\"},\"setConfig(address,address,bytes32,uint256)\":{\"details\":\"Set configuration as uint256 value\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unauthorizeAppFactory(address,address)\":{\"details\":\"withdraws authorization from a factory to register new apps. Doesn't affect apps previously registered by the factory.\"},\"updateContracts(address,address,address[],address)\":{\"details\":\"Update logics of the contracts\"}},\"title\":\"Test governance contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/utils/TestGovernance.sol\":\"TestGovernance\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x24e0364e503a9bbde94c715d26573a76f14cd2a202d45f96f52134ab806b67b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e12cbaa7378fd9b62280e4e1d164bedcb4399ce238f5f98fc0eefb7e50577981\",\"dweb:/ipfs/QmXRoFGUgfsaRkoPT5bxNMtSayKTQ8GZATLPXf69HcRA51\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x4823752b07b8ea4ca971b217e39457930e7cb103c2c91e2a29729e5ca907e4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f319af26a9ade3e6cf3698bf1b84aa6213bdd7a76606ea9ba56ced163593934\",\"dweb:/ipfs/QmZ2u9zen5Htan4dSP1RZCY2XqB9HUwqkNCMzdn7aV2jWc\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xbbc8ac883ac3c0078ce5ad3e288fbb3ffcc8a30c3a98c0fda0114d64fc44fca2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87a7a5d2f6f63f84598af02b8c50ca2df2631cb8ba2453e8d95fcb17e4be9824\",\"dweb:/ipfs/QmR76hqtAcRqoFj33tmNjcWTLrgNsAaakYwnKZ8zoJtKei\"]},\"@openzeppelin/contracts/token/ERC777/IERC777.sol\":{\"keccak256\":\"0xe4e0b7e3f0265ffaa565d26acd2d45f2633f19127ed625e5a05a9f201a87a667\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1762b5bc15a009b5f092ccf547b81e0827c8705884f18e0623e497658514a7ed\",\"dweb:/ipfs/QmTtmVQYuynan3j2uVjdjjRJS1mr7LPRgxSZNnfqC7oxkz\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x2ccf9d2313a313d41a791505f2b5abfdc62191b5d4334f7f7a82691c088a1c87\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b3a57d0854b2fdce6ebff933a48dca2445643d1eccfc27f00292e937f26c6a58\",\"dweb:/ipfs/QmW45rZooS9TqR4YXUbjRbtf2Bpb5ouSarBvfW1LdGprvV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"project:/contracts/gov/SuperfluidGovernanceBase.sol\":{\"keccak256\":\"0x0809d6544bbc2535a8be017b78f134913d3451c2958a3421950df6b57c3499f1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://c726eacb51fe00e96e104d7d4271ca666dbadc0b2452c068d4d31898720c0b97\",\"dweb:/ipfs/QmRXFcCEdcX7pzKuAyQjGpNChRQQQuJw1SG57nGh3KugTR\"]},\"project:/contracts/interfaces/superfluid/Definitions.sol\":{\"keccak256\":\"0x199095781e4221b6015d859558da09977f79199f38d342ab4899c2cecdf8cec1\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://9fd3a5a8b16d8517e2af10e20390a9af5adbfa4e783e3a7dd89eb4588db98385\",\"dweb:/ipfs/QmPDtGR43DeMMVsHjUh7FYzMGsFKPpGriRkaahFpN5T5d3\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperApp.sol\":{\"keccak256\":\"0x42b604992cf67321cc12e8bed16543df0db4eaf125b8c1c82c330ebbeb20c014\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7c18b00caf7b8be7e11f75284fb96263ce48a3984d56f2a91ec44cae4413d2fc\",\"dweb:/ipfs/QmWVzdW9KnkwAVe9g5zRuMoqCf7N89AoBfzzRr8puw5d8a\"]},\"project:/contracts/interfaces/superfluid/ISuperToken.sol\":{\"keccak256\":\"0xcff22ed43df0f34a645e6cbe0d7c5fd08f204d769e9095bc59d7c2fe6d11b7d6\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://944b8c5a37839b40ec8ee1ccfecbaf007808a61ea16c7b1351a7184606772032\",\"dweb:/ipfs/QmbUKZqZtVfqZMKYnQUygE4svatKuN9kT2ibrnxMuWXR7n\"]},\"project:/contracts/interfaces/superfluid/ISuperTokenFactory.sol\":{\"keccak256\":\"0x68a466c978557e47bd7385b1d7d78f1c8fb07462a870efc5a791008e33a4f535\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d109879bdb7f022560a792af2ff481df729bf1b4b8e1831b8022f4d12892d41d\",\"dweb:/ipfs/QmRSWqHq8CP5XWgyV4mJpPxMg33s312s2K5ndHRHVqqZ8n\"]},\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":{\"keccak256\":\"0xf16efd1ba72322e77e0d936b723c0e71eb14c23e11cf69efae8c7caa407012cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://ff4bb321b72dc3332984346e5b66ad131c6132101658fe6707d7a9d043f981ab\",\"dweb:/ipfs/QmXmVD2mZ3LRb7wQZ2VcrpYhtjm21zUe5hPDDDJA1WXbFz\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0xea33d20751ffea4f4446bc04f6c10194fb4da0803a988586d41d49cf4859731c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7716b1f5eec0a7ac8780d82de4f0274ecd7059be4eec46c82b0b7adce110f10b\",\"dweb:/ipfs/QmWRQafvdCBsyfDYnevXSav1AAz8uZRRBwh2be5Z3vSfVN\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x3eec5a3bf337cd319c1918fd1b16f350cf5f6850ac71f6859066fbf86e734ff4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://cda19a2f5ca18e79c1e2300c8efac84c718df76c4fb313f59f84264a4c6b398a\",\"dweb:/ipfs/QmfQiwgDH5Q64w5ufBnDzVaeWv6WCZ6fLTrYu1FSYfBGhq\"]},\"project:/contracts/interfaces/tokens/ERC20WithTokenInfo.sol\":{\"keccak256\":\"0x66708dae3fcd06e6fc0a46f2959fc2d1e6b9361f28598337339d26af8eb8c0f9\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://77b80718cec21b81ef190c19fb9fbe73913a95c71f7e6715f671bbe8a224dafc\",\"dweb:/ipfs/QmUdsc6DF2Bgih5VZm7sfaECjhGmwE7tAx8pMkzGQgVKQw\"]},\"project:/contracts/interfaces/tokens/TokenInfo.sol\":{\"keccak256\":\"0x70e573644a0ff271c0ccef526809e9d9ab4950ec58755ca84e833cde3b8f3df0\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://aea3709687cc37ba625f4cc882fbdb149a7bf5be5afe2b030203c8719641a77b\",\"dweb:/ipfs/QmVpvfR6ZheE5wNUK9CobaVBgVvEnEPkvjWF9cfwyZr7eQ\"]},\"project:/contracts/upgradability/UUPSProxiable.sol\":{\"keccak256\":\"0xabe3beb46dff1433d7ae61fe470fc347967d5a5b09d48fa45f35ddb2735d61f2\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://ad0fdb3210d3b0ed62886decdeef62b43bdbdd59bd55fc5ea3d636e97fbfb65d\",\"dweb:/ipfs/QmPjd6ehqgoiHkrf2g2h9AZRxKakqxsGx1GTiy5DSwfYJg\"]},\"project:/contracts/upgradability/UUPSUtils.sol\":{\"keccak256\":\"0xe624225773a60f62c7a0687afb0536ba19a17e4e5605ae71e8af77a0287aca59\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://4294e5eb5b194477bca3b8ca04ca92a6fe72dd6cf8da8f0d942a4a86c41c1c7f\",\"dweb:/ipfs/QmdfPXZxJPaBjKNfC8joTcvEhWammJHzRACB1S18sFYfd7\"]},\"project:/contracts/utils/TestGovernance.sol\":{\"keccak256\":\"0x12bd3542eae63c908d37179089da815101cde431723ca93006c0fe94440ad678\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d91a96c1d9f1126fb2b1e9898eb28787bfbfbda82092e189afeea6813464c0bb\",\"dweb:/ipfs/QmT8s45UbRMYWkf8cG7KUi128ZpqAfbGxcj1KaFXWw9qs5\"]}},\"version\":1}",
900
+ "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6119188061007e6000396000f3fe608060405234801561001057600080fd5b50600436106101d95760003560e01c80637f0558e4116101045780638da5cb5b116100a2578063e447cc1d11610071578063e447cc1d1461040c578063f047a2d91461041f578063f2fde38b14610432578063f79a8e631461044557600080fd5b80638da5cb5b146103c25780638ecbd87b146103d3578063ab846f1a146103e6578063cadf8f85146103f957600080fd5b80638a7ff2f7116100de5780638a7ff2f7146103665780638abe04e9146103795780638b93b3f51461039c5780638ce93379146103af57600080fd5b80637f0558e41461032457806380f70cba146103375780638369a0f11461035857600080fd5b8063427942a41161017c578063640b6cc91161014b578063640b6cc9146102e3578063715018a6146102f657806378707cb8146102fe5780637dce4f811461031157600080fd5b8063427942a41461028257806344864b251461029557806345228235146102a85780635a907818146102d057600080fd5b806321964473116101b8578063219644731461023657806325c955c314610249578063325529081461025c57806342148deb1461026f57600080fd5b806286d555146101de57806301a06b97146101f357806319df62ab14610206575b600080fd5b6101f16101ec36600461144d565b610458565b005b6101f1610201366004611493565b610573565b610219610214366004611493565b6105f2565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f1610244366004611518565b610626565b6101f1610257366004611493565b6106ef565b6101f161026a3660046115ab565b610703565b6101f161027d3660046115f6565b61077f565b6101f161029036600461164b565b610834565b6101f16102a3366004611493565b6109c7565b6102bb6102b6366004611493565b610a32565b6040805192835260208301919091520161022d565b6101f16102de3660046116de565b610a7a565b6101f16102f13660046117de565b610b31565b6101f1610b3c565b6101f161030c36600461181f565b610ba2565b6101f161031f3660046115ab565b610bae565b6101f16103323660046117de565b610c1e565b61034a6103453660046117de565b610c94565b60405190815260200161022d565b6102196103453660046117de565b61034a610374366004611493565b610d05565b61038c610387366004611493565b610d32565b604051901515815260200161022d565b6101f16103aa366004611493565b610d4d565b6101f16103bd3660046115ab565b610dbd565b6000546001600160a01b0316610219565b6101f16103e1366004611493565b610e1c565b6101f16103f43660046115ab565b610e90565b6101f1610407366004611493565b610eec565b6101f161041a366004611493565b610f24565b61038c61042d3660046115ab565b610f98565b6101f1610440366004611872565b610fb3565b6101f161045336600461144d565b61107e565b808211801561046a575063ffffffff82105b8015610479575063ffffffff81105b6104e65760405162461bcd60e51b815260206004820152603360248201527f5346476f763a20496e76616c6964206c69717569646174696f6e506572696f64604482015272081bdc881c185d1c9a58da585b94195c9a5bd9606a1b60648201526084015b60405180910390fd5b6040805160018152602081018490529081018290526001600160a01b0380851691908616907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869060600160405180910390a3602082901b811761056b85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f7884611086565b505b50505050565b604080516000808252602082018190528183015290516001600160a01b0383811692908516917f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869181900360600190a36105ee82827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78611139565b5050565b600061061f83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610c94565b9392505050565b8281146106835760405162461bcd60e51b815260206004820152602560248201527f5346476f763a2061727261797320617265206e6f74207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016104dd565b60005b818110156106e7576106d7868686848181106106a4576106a461188f565b90506020020160208101906106b99190611872565b8585858181106106cb576106cb61188f565b90506020020135610c1e565b6106e0816118a5565b9050610686565b505050505050565b6105ee8260006106fe846111fa565b611139565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a361077a83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d098461128d565b505050565b8261078981611342565b60005b8281101561056b57846001600160a01b031663787afde78585848181106107b5576107b561188f565b90506020020160208101906107ca9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b505050508061082d906118a5565b905061078c565b8461083e81611342565b6001600160a01b038516156108a9576040516311a5465560e21b81526001600160a01b038681166004830152871690634695195490602401600060405180830381600087803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b505050505b60005b8381101561095457866001600160a01b03166306cecba88686848181106108d5576108d561188f565b90506020020160208101906108ea9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050508061094d906118a5565b90506108ac565b506001600160a01b038216156106e7576040516354fbc49360e01b81526001600160a01b0383811660048301528716906354fbc49390602401600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b50505050505050505050565b816109d181611342565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b50505050505050565b6000806000610a6285857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610c94565b63ffffffff602082901c811697911695509350505050565b6001600160a01b038516610a9057610a906118cc565b6002546001600160a01b031615610aa957610aa96118cc565b600280546001600160a01b0319166001600160a01b038716908117909155610ad390600086610703565b610ae08560008585610458565b60005b81518110156106e7576002548251610b21916001600160a01b031690600090859085908110610b1457610b1461188f565b6020026020010151610e90565b610b2a816118a5565b9050610ae3565b61077a838383611139565b6000546001600160a01b03163314610b965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b610ba06000611379565b565b61056d8484848461128d565b610bc38383610bbc846113c9565b6000611086565b60408051600181526001600160a01b038381166020830152600092820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d27906060015b60405180910390a3505050565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a361077a83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc484611086565b6001600160a01b03808416600090815260016020908152604080832093861683529281528282208483529052908120805460ff16610cf957506001600160a01b0384166000908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b600061061f83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610c94565b6000610d43836000610345856111fa565b6001149392505050565b803b80610da65760405162461bcd60e51b815260206004820152602160248201527f5346476f763a20666163746f7279206d757374206265206120636f6e747261636044820152601d60fa1b60648201526084016104dd565b506105ee826000610db6846111fa565b6001611086565b6040805160008082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d279060600160405180910390a361077a83836106fe846113c9565b60408051600080825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a36105ee82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4611139565b610e9e8383610db6846113c9565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610c11565b81610ef681611342565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e1906024016109fb565b60408051600080825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a36105ee82827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09611139565b6000610fa88484610345856113c9565b600114949350505050565b6000546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b6001600160a01b0381166110725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dd565b61107b81611379565b50565b61056d848484845b8361109081611342565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788166000908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b8261114381611342565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3908460008060405161119c939291909283529015156020830152604082015260600190565b60405180910390a350604080518082018252600080825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b8361129781611342565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b03938416602080840191825297851660009081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b6002546001600160a01b0382811691161461135f5761135f6118cc565b6000546001600160a01b0316331461107b5761107b6118cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c001611270565b6001600160a01b038116811461107b57600080fd5b6000806000806080858703121561146357600080fd5b843561146e81611438565b9350602085013561147e81611438565b93969395505050506040820135916060013590565b600080604083850312156114a657600080fd5b82356114b181611438565b915060208301356114c181611438565b809150509250929050565b60008083601f8401126114de57600080fd5b50813567ffffffffffffffff8111156114f657600080fd5b6020830191508360208260051b850101111561151157600080fd5b9250929050565b60008060008060006060868803121561153057600080fd5b853561153b81611438565b9450602086013567ffffffffffffffff8082111561155857600080fd5b61156489838a016114cc565b9096509450604088013591508082111561157d57600080fd5b5061158a888289016114cc565b969995985093965092949392505050565b80356115a681611438565b919050565b6000806000606084860312156115c057600080fd5b83356115cb81611438565b925060208401356115db81611438565b915060408401356115eb81611438565b809150509250925092565b60008060006040848603121561160b57600080fd5b833561161681611438565b9250602084013567ffffffffffffffff81111561163257600080fd5b61163e868287016114cc565b9497909650939450505050565b60008060008060006080868803121561166357600080fd5b853561166e81611438565b9450602086013561167e81611438565b9350604086013567ffffffffffffffff81111561169a57600080fd5b6116a6888289016114cc565b90945092505060608601356116ba81611438565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156116f657600080fd5b853561170181611438565b945060208681013561171281611438565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561173d57600080fd5b818901915089601f83011261175157600080fd5b813581811115611763576117636116c8565b8060051b604051601f19603f83011681018181108582111715611788576117886116c8565b60405291825284820192508381018501918c8311156117a657600080fd5b938501935b828510156117cb576117bc8561159b565b845293850193928501926117ab565b8096505050505050509295509295909350565b6000806000606084860312156117f357600080fd5b83356117fe81611438565b9250602084013561180e81611438565b929592945050506040919091013590565b6000806000806080858703121561183557600080fd5b843561184081611438565b9350602085013561185081611438565b925060408501359150606085013561186781611438565b939692955090935050565b60006020828403121561188457600080fd5b813561061f81611438565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c557634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220b130387291aea4e7b4f5f5ae4b5552cbccde57b4677afd7ec039e1639777769364736f6c634300080e0033",
901
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101d95760003560e01c80637f0558e4116101045780638da5cb5b116100a2578063e447cc1d11610071578063e447cc1d1461040c578063f047a2d91461041f578063f2fde38b14610432578063f79a8e631461044557600080fd5b80638da5cb5b146103c25780638ecbd87b146103d3578063ab846f1a146103e6578063cadf8f85146103f957600080fd5b80638a7ff2f7116100de5780638a7ff2f7146103665780638abe04e9146103795780638b93b3f51461039c5780638ce93379146103af57600080fd5b80637f0558e41461032457806380f70cba146103375780638369a0f11461035857600080fd5b8063427942a41161017c578063640b6cc91161014b578063640b6cc9146102e3578063715018a6146102f657806378707cb8146102fe5780637dce4f811461031157600080fd5b8063427942a41461028257806344864b251461029557806345228235146102a85780635a907818146102d057600080fd5b806321964473116101b8578063219644731461023657806325c955c314610249578063325529081461025c57806342148deb1461026f57600080fd5b806286d555146101de57806301a06b97146101f357806319df62ab14610206575b600080fd5b6101f16101ec36600461144d565b610458565b005b6101f1610201366004611493565b610573565b610219610214366004611493565b6105f2565b6040516001600160a01b0390911681526020015b60405180910390f35b6101f1610244366004611518565b610626565b6101f1610257366004611493565b6106ef565b6101f161026a3660046115ab565b610703565b6101f161027d3660046115f6565b61077f565b6101f161029036600461164b565b610834565b6101f16102a3366004611493565b6109c7565b6102bb6102b6366004611493565b610a32565b6040805192835260208301919091520161022d565b6101f16102de3660046116de565b610a7a565b6101f16102f13660046117de565b610b31565b6101f1610b3c565b6101f161030c36600461181f565b610ba2565b6101f161031f3660046115ab565b610bae565b6101f16103323660046117de565b610c1e565b61034a6103453660046117de565b610c94565b60405190815260200161022d565b6102196103453660046117de565b61034a610374366004611493565b610d05565b61038c610387366004611493565b610d32565b604051901515815260200161022d565b6101f16103aa366004611493565b610d4d565b6101f16103bd3660046115ab565b610dbd565b6000546001600160a01b0316610219565b6101f16103e1366004611493565b610e1c565b6101f16103f43660046115ab565b610e90565b6101f1610407366004611493565b610eec565b6101f161041a366004611493565b610f24565b61038c61042d3660046115ab565b610f98565b6101f1610440366004611872565b610fb3565b6101f161045336600461144d565b61107e565b808211801561046a575063ffffffff82105b8015610479575063ffffffff81105b6104e65760405162461bcd60e51b815260206004820152603360248201527f5346476f763a20496e76616c6964206c69717569646174696f6e506572696f64604482015272081bdc881c185d1c9a58da585b94195c9a5bd9606a1b60648201526084015b60405180910390fd5b6040805160018152602081018490529081018290526001600160a01b0380851691908616907f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869060600160405180910390a3602082901b811761056b85857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f7884611086565b505b50505050565b604080516000808252602082018190528183015290516001600160a01b0383811692908516917f60a59221512cd8cbfb226200f7ba6f20dc4b38a3cf04993d17ea4e56d26aa1869181900360600190a36105ee82827fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78611139565b5050565b600061061f83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09610c94565b9392505050565b8281146106835760405162461bcd60e51b815260206004820152602560248201527f5346476f763a2061727261797320617265206e6f74207468652073616d65206c6044820152640cadccee8d60db1b60648201526084016104dd565b60005b818110156106e7576106d7868686848181106106a4576106a461188f565b90506020020160208101906106b99190611872565b8585858181106106cb576106cb61188f565b90506020020135610c1e565b6106e0816118a5565b9050610686565b505050505050565b6105ee8260006106fe846111fa565b611139565b60408051600181526001600160a01b03838116602083015280851692908616917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a361077a83837f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d098461128d565b505050565b8261078981611342565b60005b8281101561056b57846001600160a01b031663787afde78585848181106107b5576107b561188f565b90506020020160208101906107ca9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561080b57600080fd5b505af115801561081f573d6000803e3d6000fd5b505050508061082d906118a5565b905061078c565b8461083e81611342565b6001600160a01b038516156108a9576040516311a5465560e21b81526001600160a01b038681166004830152871690634695195490602401600060405180830381600087803b15801561089057600080fd5b505af11580156108a4573d6000803e3d6000fd5b505050505b60005b8381101561095457866001600160a01b03166306cecba88686848181106108d5576108d561188f565b90506020020160208101906108ea9190611872565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561092b57600080fd5b505af115801561093f573d6000803e3d6000fd5b505050508061094d906118a5565b90506108ac565b506001600160a01b038216156106e7576040516354fbc49360e01b81526001600160a01b0383811660048301528716906354fbc49390602401600060405180830381600087803b1580156109a757600080fd5b505af11580156109bb573d6000803e3d6000fd5b50505050505050505050565b816109d181611342565b604051631ca0c40360e21b81526001600160a01b038381166004830152841690637283100c906024015b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b50505050505050565b6000806000610a6285857fe420d96e81cb4a6b2abb2366c4f93312d4e2ae878a7d4b22e73472fdad891f78610c94565b63ffffffff602082901c811697911695509350505050565b6001600160a01b038516610a9057610a906118cc565b6002546001600160a01b031615610aa957610aa96118cc565b600280546001600160a01b0319166001600160a01b038716908117909155610ad390600086610703565b610ae08560008585610458565b60005b81518110156106e7576002548251610b21916001600160a01b031690600090859085908110610b1457610b1461188f565b6020026020010151610e90565b610b2a816118a5565b9050610ae3565b61077a838383611139565b6000546001600160a01b03163314610b965760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b610ba06000611379565b565b61056d8484848461128d565b610bc38383610bbc846113c9565b6000611086565b60408051600181526001600160a01b038381166020830152600092820192909252818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d27906060015b60405180910390a3505050565b6040805160018152602081018390526001600160a01b0380851692908616917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a361077a83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc484611086565b6001600160a01b03808416600090815260016020908152604080832093861683529281528282208483529052908120805460ff16610cf957506001600160a01b0384166000908152600160209081526040808320838052825280832085845290915290205b60010154949350505050565b600061061f83837feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4610c94565b6000610d43836000610345856111fa565b6001149392505050565b803b80610da65760405162461bcd60e51b815260206004820152602160248201527f5346476f763a20666163746f7279206d757374206265206120636f6e747261636044820152601d60fa1b60648201526084016104dd565b506105ee826000610db6846111fa565b6001611086565b6040805160008082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d279060600160405180910390a361077a83836106fe846113c9565b60408051600080825260208201526001600160a01b0380841692908516917fc055c4a3853372c08a98805545379133f00f7261d956b9197729d67f37a82a53910160405180910390a36105ee82827feae305fa863b373417e615b1044222e2806cefc7788d169ce6748a443c3f6cc4611139565b610e9e8383610db6846113c9565b6040805160018082526001600160a01b03848116602084015292820152818416918516907f168da2dec91b2e06e30d49955479383e76f71ba185807a8a5b75e2ed563e1d2790606001610c11565b81610ef681611342565b6040516315a024e160e01b81526001600160a01b0383811660048301528416906315a024e1906024016109fb565b60408051600080825260208201526001600160a01b0380841692908516917f14e12f219a4f9023456dc7832e10119ab768b8ccefc8cb79bc6de0419781eeeb910160405180910390a36105ee82827f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d09611139565b6000610fa88484610345856113c9565b600114949350505050565b6000546001600160a01b0316331461100d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104dd565b6001600160a01b0381166110725760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104dd565b61107b81611379565b50565b61056d848484845b8361109081611342565b60408051848152600160208201529081018390526001600160a01b0380861691908716907f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3909060600160405180910390a350604080518082018252600180825260208083019485526001600160a01b039788166000908152828252848120979098168852958652828720948752939094529093209151825460ff19169015151782559151910155565b8261114381611342565b826001600160a01b0316846001600160a01b03167f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e3908460008060405161119c939291909283529015156020830152604082015260600190565b60405180910390a350604080518082018252600080825260208083018281526001600160a01b03978816835260018083528584209790981683529581528382209482529390935291209051815460ff19169015151781559051910155565b6040805160208101829052603960608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527f642e61707057686974654c697374696e672e666163746f72790000000000000060a08201526001600160a01b0383169181019190915260009060c0015b604051602081830303815290604052805190602001209050919050565b8361129781611342565b60408051848152600160208201526001600160a01b03848116828401529151868316928816917f33afe19ae6902b933890ff48190fabdc4cf7f5ab499be9c4d9d98e3b4562e390919081900360600190a35060408051808201825260018082526001600160a01b03938416602080840191825297851660009081528289528481209790951685529587528284209484529390955290209251835460ff19169015151783559051910155565b6002546001600160a01b0382811691161461135f5761135f6118cc565b6000546001600160a01b0316331461107b5761107b6118cc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160208101829052603260608201527f6f72672e7375706572666c7569642d66696e616e63652e7375706572666c756960808201527132173a393ab9ba32b22337b93bb0b93232b960711b60a08201526001600160a01b0383169181019190915260009060c001611270565b6001600160a01b038116811461107b57600080fd5b6000806000806080858703121561146357600080fd5b843561146e81611438565b9350602085013561147e81611438565b93969395505050506040820135916060013590565b600080604083850312156114a657600080fd5b82356114b181611438565b915060208301356114c181611438565b809150509250929050565b60008083601f8401126114de57600080fd5b50813567ffffffffffffffff8111156114f657600080fd5b6020830191508360208260051b850101111561151157600080fd5b9250929050565b60008060008060006060868803121561153057600080fd5b853561153b81611438565b9450602086013567ffffffffffffffff8082111561155857600080fd5b61156489838a016114cc565b9096509450604088013591508082111561157d57600080fd5b5061158a888289016114cc565b969995985093965092949392505050565b80356115a681611438565b919050565b6000806000606084860312156115c057600080fd5b83356115cb81611438565b925060208401356115db81611438565b915060408401356115eb81611438565b809150509250925092565b60008060006040848603121561160b57600080fd5b833561161681611438565b9250602084013567ffffffffffffffff81111561163257600080fd5b61163e868287016114cc565b9497909650939450505050565b60008060008060006080868803121561166357600080fd5b853561166e81611438565b9450602086013561167e81611438565b9350604086013567ffffffffffffffff81111561169a57600080fd5b6116a6888289016114cc565b90945092505060608601356116ba81611438565b809150509295509295909350565b634e487b7160e01b600052604160045260246000fd5b600080600080600060a086880312156116f657600080fd5b853561170181611438565b945060208681013561171281611438565b94506040870135935060608701359250608087013567ffffffffffffffff8082111561173d57600080fd5b818901915089601f83011261175157600080fd5b813581811115611763576117636116c8565b8060051b604051601f19603f83011681018181108582111715611788576117886116c8565b60405291825284820192508381018501918c8311156117a657600080fd5b938501935b828510156117cb576117bc8561159b565b845293850193928501926117ab565b8096505050505050509295509295909350565b6000806000606084860312156117f357600080fd5b83356117fe81611438565b9250602084013561180e81611438565b929592945050506040919091013590565b6000806000806080858703121561183557600080fd5b843561184081611438565b9350602085013561185081611438565b925060408501359150606085013561186781611438565b939692955090935050565b60006020828403121561188457600080fd5b813561061f81611438565b634e487b7160e01b600052603260045260246000fd5b6000600182016118c557634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052600160045260246000fdfea2646970667358221220b130387291aea4e7b4f5f5ae4b5552cbccde57b4677afd7ec039e1639777769364736f6c634300080e0033",
902
902
  "immutableReferences": {},
903
903
  "generatedSources": [],
904
904
  "deployedGeneratedSources": [
@@ -12675,9 +12675,9 @@
12675
12675
  "name": "#utility.yul"
12676
12676
  }
12677
12677
  ],
12678
- "sourceMap": "447:990:102:-:0;;;;;;;;;;;;-1:-1:-1;921:32:4;719:10:19;921:18:4;:32::i;:::-;447:990:102;;2270:187:4;2343:16;2362:6;;-1:-1:-1;;;;;2378:17:4;;;-1:-1:-1;;;;;;2378:17:4;;;;;;2410:40;;2362:6;;;;;;;2410:40;;2343:16;2410:40;2333:124;2270:187;:::o;447:990:102:-;;;;;;;",
12679
- "deployedSourceMap": "447:990:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7975:762:37;;;;;;:::i;:::-;;:::i;:::-;;8743:273;;;;;;:::i;:::-;;:::i;5940:288::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1396:32:105;;;1378:51;;1366:2;1351:18;5940:288:37;;;;;;;;2339:485;;;;;;:::i;:::-;;:::i;13079:258::-;;;;;;:::i;:::-;;:::i;6234:389::-;;;;;;:::i;:::-;;:::i;2048:285::-;;;;;;:::i;:::-;;:::i;1359:683::-;;;;;;:::i;:::-;;:::i;903:212::-;;;;;;:::i;:::-;;:::i;7489:480::-;;;;;;:::i;:::-;;:::i;:::-;;;;5783:25:105;;;5839:2;5824:18;;5817:34;;;;5756:18;7489:480:37;5609:248:105;554:715:102;;;;;;:::i;:::-;;:::i;3447:193:37:-;;;;;;:::i;:::-;;:::i;1668:101:4:-;;;:::i;2997:219:37:-;;;;;;:::i;:::-;;:::i;11073:382::-;;;;;;:::i;:::-;;:::i;9493:332::-;;;;;;:::i;:::-;;:::i;5122:424::-;;;;;;:::i;:::-;;:::i;:::-;;;9484:25:105;;;9472:2;9457:18;5122:424:37;9338:177:105;4675:441:37;;;;;;:::i;9205:282::-;;;;;;:::i;:::-;;:::i;11928:305::-;;;;;;:::i;:::-;;:::i;:::-;;;9685:14:105;;9678:22;9660:41;;9648:2;9633:18;11928:305:37;9520:187:105;12398:521:37;;;;;;:::i;:::-;;:::i;11461:375::-;;;;;;:::i;:::-;;:::i;1036:85:4:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:4;1036:85;;9831:302:37;;;;;;:::i;:::-;;:::i;10687:380::-;;;;;;:::i;:::-;;:::i;1121:232::-;;;;;;:::i;:::-;;:::i;6629:326::-;;;;;;:::i;:::-;;:::i;10351:330::-;;;;;;:::i;:::-;;:::i;1918:198:4:-;;;;;;:::i;:::-;;:::i;3222:219:37:-;;;;;;:::i;:::-;;:::i;7975:762::-;8191:15;8171:17;:35;:87;;;;-1:-1:-1;8242:16:37;8222:36;;8171:87;:137;;;;-1:-1:-1;8292:16:37;8274:34;;8171:137;8163:222;;;;-1:-1:-1;;;8163:222:37;;11243:2:105;8163:222:37;;;11225:21:105;11282:2;11262:18;;;11255:30;11321:34;11301:18;;;11294:62;-1:-1:-1;;;11372:18:105;;;11365:49;11431:19;;8163:222:37;;;;;;;;;8400:83;;;8442:4;11657:41:105;;11729:2;11714:18;;11707:34;;;11757:18;;;11750:34;;;-1:-1:-1;;;;;8400:83:37;;;;;;;;;;11645:2:105;11630:18;8400:83:37;;;;;;;8540:2;8510:32;;;8509:61;;8587:143;8611:4;8629:10;7628:88:42;8509:61:37;8587:10;:143::i;:::-;8580:150;7975:762;;;;;:::o;8743:273::-;8858:54;;;8900:5;11657:41:105;;;11729:2;11714:18;;11707:34;;;11757:18;;;11750:34;8858:54:37;;-1:-1:-1;;;;;8858:54:37;;;;;;;;;;;;;11645:2:105;8858:54:37;;;8929:80;8942:4;8948:10;7628:88:42;8929:12:37;:80::i;:::-;8743:273;;:::o;5940:288::-;6064:7;6094:127;6126:4;6132:10;7505:60:42;6094:18:37;:127::i;:::-;6087:134;5940:288;-1:-1:-1;;;5940:288:37:o;2339:485::-;2526:39;;;2518:89;;;;-1:-1:-1;;;2518:89:37;;12347:2:105;2518:89:37;;;12329:21:105;12386:2;12366:18;;;12359:30;12425:34;12405:18;;;12398:62;-1:-1:-1;;;12476:18:105;;;12469:35;12521:19;;2518:89:37;12145:401:105;2518:89:37;2622:6;2617:201;2634:26;;;2617:201;;;2681:126;2726:4;2748:6;;2755:1;2748:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2775:15;;2791:1;2775:18;;;;;;;:::i;:::-;;;;;;;2681:27;:126::i;:::-;2662:3;;;:::i;:::-;;;2617:201;;;;2339:485;;;;;:::o;13079:258::-;13196:134;13222:4;13253:1;13270:59;13321:7;13270:50;:59::i;:::-;13196:12;:134::i;6234:389::-;6394:59;;;6433:4;13374:41:105;;-1:-1:-1;;;;;13451:32:105;;;13446:2;13431:18;;13424:60;6394:59:37;;;;;;;;;;13347:18:105;6394:59:37;;;;;;;6470:146;6494:4;6500:10;7505:60:42;6602:13:37;6470:10;:146::i;:::-;6234:389;;;:::o;2048:285::-;2204:4;13476:24;13495:4;13476:18;:24::i;:::-;2229:6:::1;2224:103;2241:17:::0;;::::1;2224:103;;;2279:4;-1:-1:-1::0;;;;;2279:26:37::1;;2306:6;;2313:1;2306:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2279:37;::::0;-1:-1:-1;;;;;;2279:37:37::1;::::0;;;;;;-1:-1:-1;;;;;1396:32:105;;;2279:37:37::1;::::0;::::1;1378:51:105::0;1351:18;;2279:37:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2260:3;;;;:::i;:::-;;;2224:103;;1359:683:::0;1590:4;13476:24;13495:4;13476:18;:24::i;:::-;-1:-1:-1;;;;;1614:26:37;::::1;::::0;1610:110:::1;;1656:53;::::0;-1:-1:-1;;;1656:53:37;;-1:-1:-1;;;;;1396:32:105;;;1656:53:37::1;::::0;::::1;1378:51:105::0;1656:39:37;::::1;::::0;::::1;::::0;1351:18:105;;1656:53:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1610:110;1734:6;1729:153;1746:34:::0;;::::1;1729:153;;;1801:4;-1:-1:-1::0;;;;;1801:25:37::1;;1843:23;;1867:1;1843:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1801:70;::::0;-1:-1:-1;;;;;;1801:70:37::1;::::0;;;;;;-1:-1:-1;;;;;1396:32:105;;;1801:70:37::1;::::0;::::1;1378:51:105::0;1351:18;;1801:70:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1782:3;;;;:::i;:::-;;;1729:153;;;-1:-1:-1::0;;;;;;1895:39:37;::::1;::::0;1891:145:::1;;1950:75;::::0;-1:-1:-1;;;1950:75:37;;-1:-1:-1;;;;;1396:32:105;;;1950:75:37::1;::::0;::::1;1378:51:105::0;1950:28:37;::::1;::::0;::::1;::::0;1351:18:105;;1950:75:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1359:683:::0;;;;;;:::o;903:212::-;1035:4;13476:24;13495:4;13476:18;:24::i;:::-;1055:53:::1;::::0;-1:-1:-1;;;1055:53:37;;-1:-1:-1;;;;;1396:32:105;;;1055:53:37::1;::::0;::::1;1378:51:105::0;1055:22:37;::::1;::::0;::::1;::::0;1351:18:105;;1055:53:37::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;903:212:::0;;;:::o;7489:480::-;7609:25;7636:23;7683:17;7703:148;7739:4;7761:10;7628:88:42;7703:18:37;:148::i;:::-;8796:16:42;8790:2;8777:15;;;8776:36;;;8840:28;;;-1:-1:-1;8776:36:42;-1:-1:-1;;;;7489:480:37:o;554:715:102:-;-1:-1:-1;;;;;823:27:102;;816:35;;;;:::i;:::-;876:5;;-1:-1:-1;;;;;876:5:102;868:28;861:36;;;;:::i;:::-;908:5;:12;;-1:-1:-1;;;;;;908:12:102;-1:-1:-1;;;;;908:12:102;;;;;;;;931:68;;-1:-1:-1;985:13:102;931:16;:68::i;:::-;1010:84;1023:4;1054:1;1059:17;1078:15;1010:12;:84::i;:::-;1110:6;1105:158;1126:17;:24;1122:1;:28;1105:158;;;1194:5;;1231:20;;1171:81;;-1:-1:-1;;;;;1194:5:102;;;;1231:17;;1249:1;;1231:20;;;;;;:::i;:::-;;;;;;;1171:22;:81::i;:::-;1152:3;;;:::i;:::-;;;1105:158;;3447:193:37;3598:35;3611:4;3617:10;3629:3;3598:12;:35::i;1668:101:4:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:4;719:10:19;1248:23:4;1240:68;;;;-1:-1:-1;;;1240:68:4;;14766:2:105;1240:68:4;;;14748:21:105;;;14785:18;;;14778:30;14844:34;14824:18;;;14817:62;14896:18;;1240:68:4;14564:356:105;1240:68:4;1732:30:::1;1759:1;1732:18;:30::i;:::-;1668:101::o:0;2997:219:37:-;3169:40;3180:4;3186:10;3198:3;3203:5;3169:10;:40::i;11073:382::-;11231:137;11255:4;11261:10;11285:67;11342:9;11285:56;:67::i;:::-;11366:1;11231:10;:137::i;:::-;11383:65;;;11425:4;15115:41:105;;-1:-1:-1;;;;;15192:32:105;;;15187:2;15172:18;;15165:60;11442:5:37;15241:18:105;;;15234:50;;;;11383:65:37;;;;;;;;;15103:2:105;15088:18;11383:65:37;;;;;;;;11073:382;;;:::o;9493:332::-;9644:62;;;9694:4;15463:41:105;;15535:2;15520:18;;15513:34;;;-1:-1:-1;;;;;9644:62:37;;;;;;;;;;15436:18:105;9644:62:37;;;;;;;9723:95;9734:4;9740:10;7790:71:42;9812:5:37;9723:10;:95::i;5122:424::-;-1:-1:-1;;;;;5333:23:37;;;5285:14;5333:23;;;:8;:23;;;;;;;;:44;;;;;;;;;;;:49;;;;;;;;5397:5;;;;5392:124;;-1:-1:-1;;;;;;5465:23:37;;;;;;:8;:23;;;;;;;;:35;;;;;;;;:40;;;;;;;;5392:124;5532:7;;;;5122:424;-1:-1:-1;;;;5122:424:37:o;9205:282::-;9336:13;9372:108;9391:4;9397:10;7790:71:42;9372:18:37;:108::i;11928:305::-;12054:4;12081:140;12113:4;12144:1;12161:59;12212:7;12161:50;:59::i;12081:140::-;12225:1;12081:145;;11928:305;-1:-1:-1;;;11928:305:37:o;12398:521::-;12657:20;;12700:6;12692:52;;;;-1:-1:-1;;;12692:52:37;;15760:2:105;12692:52:37;;;15742:21:105;15799:2;15779:18;;;15772:30;15838:34;15818:18;;;15811:62;-1:-1:-1;;;15889:18:105;;;15882:31;15930:19;;12692:52:37;15558:397:105;12692:52:37;12542:213;12765:147;12789:4;12820:1;12837:59;12888:7;12837:50;:59::i;:::-;12910:1;12765:10;:147::i;11461:375::-;11622:66;;;11664:5;15115:41:105;;;-1:-1:-1;;;;;15192:32:105;;;15187:2;15172:18;;15165:60;15241:18;;;15234:50;11622:66:37;;;;;;;;;15103:2:105;15088:18;11622:66:37;;;;;;;11705:124;11731:4;11737:10;11761:67;11818:9;11761:56;:67::i;9831:302::-;9960:59;;;10010:5;15463:41:105;;;15535:2;15520:18;;15513:34;-1:-1:-1;;;;;9960:59:37;;;;;;;;;;15436:18:105;9960:59:37;;;;;;;10036:90;10049:4;10055:10;7790:71:42;10036:12:37;:90::i;10687:380::-;10844:137;10868:4;10874:10;10898:67;10955:9;10898:56;:67::i;10844:137::-;10996:64;;;11038:4;15115:41:105;;;-1:-1:-1;;;;;15192:32:105;;;15187:2;15172:18;;15165:60;15241:18;;;15234:50;10996:64:37;;;;;;;;;15103:2:105;15088:18;10996:64:37;14925:365:105;1121:232:37;1266:4;13476:24;13495:4;13476:18;:24::i;:::-;1286:60:::1;::::0;-1:-1:-1;;;1286:60:37;;-1:-1:-1;;;;;1396:32:105;;;1286:60:37::1;::::0;::::1;1378:51:105::0;1286:27:37;::::1;::::0;::::1;::::0;1351:18:105;;1286:60:37::1;1232:203:105::0;6629:326:37;6760:57;;;6799:5;13374:41:105;;;13446:2;13431:18;;13424:60;-1:-1:-1;;;;;6760:57:37;;;;;;;;;;13347:18:105;6760:57:37;;;;;;;6827:121;6853:4;6859:10;7505:60:42;6827:12:37;:121::i;10351:330::-;10512:4;10539:130;10571:4;10577:10;10601:67;10658:9;10601:56;:67::i;10539:130::-;10673:1;10539:135;;10351:330;-1:-1:-1;;;;10351:330:37:o;1918:198:4:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:4;719:10:19;1248:23:4;1240:68;;;;-1:-1:-1;;;1240:68:4;;14766:2:105;1240:68:4;;;14748:21:105;;;14785:18;;;14778:30;14844:34;14824:18;;;14817:62;14896:18;;1240:68:4;14564:356:105;1240:68:4;-1:-1:-1;;;;;2006:22:4;::::1;1998:73;;;::::0;-1:-1:-1;;;1998:73:4;;16433:2:105;1998:73:4::1;::::0;::::1;16415:21:105::0;16472:2;16452:18;;;16445:30;16511:34;16491:18;;;16484:62;-1:-1:-1;;;16562:18:105;;;16555:36;16608:19;;1998:73:4::1;16231:402:105::0;1998:73:4::1;2081:28;2100:8;2081:18;:28::i;:::-;1918:198:::0;:::o;3222:219:37:-;3394:40;3405:4;3411:10;3423:3;3428:5;4022:334;4195:4;13476:24;13495:4;13476:18;:24::i;:::-;4220:49:::1;::::0;;16834:25:105;;;4257:4:37::1;16890:2:105::0;16875:18;;16868:50;16934:18;;;16927:34;;;-1:-1:-1;;;;;4220:49:37;;::::1;::::0;;;::::1;::::0;::::1;::::0;16822:2:105;16807:18;4220:49:37::1;;;;;;;-1:-1:-1::0;4331:18:37::1;::::0;;;;::::1;::::0;;4337:4:::1;4331:18:::0;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;4279:23:37;;::::1;-1:-1:-1::0;4279:23:37;;;;;;;;;:44;;;::::1;::::0;;;;;;;;:49;;;;;;;;;;:70;;;;-1:-1:-1;;4279:70:37::1;::::0;::::1;;;::::0;;;;;::::1;::::0;4022:334::o;4362:307::-;4514:4;13476:24;13495:4;13476:18;:24::i;:::-;4559:10:::1;-1:-1:-1::0;;;;;4539:46:37::1;4553:4;-1:-1:-1::0;;;;;4539:46:37::1;;4571:3;4576:5;4583:1:::0;4539:46:::1;;;;;;;16834:25:105::0;;;16902:14;;16895:22;16890:2;16875:18;;16868:50;16949:2;16934:18;;16927:34;16822:2;16807:18;;16638:329;4539:46:37::1;;;;;;;;-1:-1:-1::0;4647:15:37::1;::::0;;;;::::1;::::0;;-1:-1:-1;4647:15:37;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;4595:23:37;;::::1;::::0;;4647:15;4595:23;;;;;;:44;;;::::1;::::0;;;;;;;;:49;;;;;;;;;:67;;;;-1:-1:-1;;4595:67:37::1;::::0;::::1;;;::::0;;;;;::::1;::::0;4362:307::o;8400:221:42:-;8508:105;;;;;;17526:21:105;;;17583:2;17563:18;;;17556:30;17622:34;17602:18;;;17595:62;17694:27;17673:19;;;17666:56;-1:-1:-1;;;;;17796:32:105;;17774:20;;;17767:62;;;;8472:7:42;;17739:19:105;;8508:105:42;;;;;;;;;;;;;8498:116;;;;;;8491:123;;8400:221;;;:::o;3646:370:37:-;3819:4;13476:24;13495:4;13476:18;:24::i;:::-;3844:67:::1;::::0;;16834:25:105;;;3881:4:37::1;16890:2:105::0;16875:18;;16868:50;-1:-1:-1;;;;;3887:23:37;;::::1;16934:18:105::0;;;16927:34;3844:67:37;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;16822:2:105;3844:67:37;;::::1;-1:-1:-1::0;3973:36:37::1;::::0;;;;::::1;::::0;;3979:4:::1;3973:36:::0;;;-1:-1:-1;;;;;3985:23:37;;::::1;3973:36;::::0;;::::1;::::0;;;3921:23;;::::1;-1:-1:-1::0;3921:23:37;;;;;;;;;:44;;;::::1;::::0;;;;;;;;:49;;;;;;;;;:88;;;;-1:-1:-1;;3921:88:37::1;::::0;::::1;;;::::0;;;;;::::1;::::0;3646:370::o;1275:160:102:-;1381:5;;-1:-1:-1;;;;;1373:13:102;;;1381:5;;1373:13;1366:21;;;;:::i;:::-;1082:7:4;1108:6;-1:-1:-1;;;;;1108:6:4;719:10:19;1404:23:102;1397:31;;;;:::i;2270:187:4:-;2343:16;2362:6;;-1:-1:-1;;;;;2378:17:4;;;-1:-1:-1;;;;;;2378:17:4;;;;;;2410:40;;2362:6;;;;;;;2410:40;;2343:16;2410:40;2333:124;2270:187;:::o;7868:224:42:-;7984:100;;;;;;18052:21:105;;;18109:2;18089:18;;;18082:30;18148:34;18128:18;;;18121:62;-1:-1:-1;;;18199:19:105;;;18192:49;-1:-1:-1;;;;;18315:32:105;;18293:20;;;18286:62;;;;7948:7:42;;18258:19:105;;7984:100:42;17840:514:105;14:144;-1:-1:-1;;;;;102:31:105;;92:42;;82:70;;148:1;145;138:12;163:598;296:6;304;312;320;373:3;361:9;352:7;348:23;344:33;341:53;;;390:1;387;380:12;341:53;429:9;416:23;448:44;486:5;448:44;:::i;:::-;511:5;-1:-1:-1;568:2:105;553:18;;540:32;581:46;540:32;581:46;:::i;:::-;163:598;;646:7;;-1:-1:-1;;;;700:2:105;685:18;;672:32;;751:2;736:18;723:32;;163:598::o;766:461::-;881:6;889;942:2;930:9;921:7;917:23;913:32;910:52;;;958:1;955;948:12;910:52;997:9;984:23;1016:44;1054:5;1016:44;:::i;:::-;1079:5;-1:-1:-1;1136:2:105;1121:18;;1108:32;1149:46;1108:32;1149:46;:::i;:::-;1214:7;1204:17;;;766:461;;;;;:::o;1440:380::-;1516:8;1526:6;1580:3;1573:4;1565:6;1561:17;1557:27;1547:55;;1598:1;1595;1588:12;1547:55;-1:-1:-1;1621:20:105;;1664:18;1653:30;;1650:50;;;1696:1;1693;1686:12;1650:50;1733:4;1725:6;1721:17;1709:29;;1793:3;1786:4;1776:6;1773:1;1769:14;1761:6;1757:27;1753:38;1750:47;1747:67;;;1810:1;1807;1800:12;1747:67;1440:380;;;;;:::o;1825:989::-;1998:6;2006;2014;2022;2030;2083:2;2071:9;2062:7;2058:23;2054:32;2051:52;;;2099:1;2096;2089:12;2051:52;2138:9;2125:23;2157:44;2195:5;2157:44;:::i;:::-;2220:5;-1:-1:-1;2276:2:105;2261:18;;2248:32;2299:18;2329:14;;;2326:34;;;2356:1;2353;2346:12;2326:34;2395:83;2470:7;2461:6;2450:9;2446:22;2395:83;:::i;:::-;2497:8;;-1:-1:-1;2369:109:105;-1:-1:-1;2585:2:105;2570:18;;2557:32;;-1:-1:-1;2601:16:105;;;2598:36;;;2630:1;2627;2620:12;2598:36;;2669:85;2746:7;2735:8;2724:9;2720:24;2669:85;:::i;:::-;1825:989;;;;-1:-1:-1;1825:989:105;;-1:-1:-1;2773:8:105;;2643:111;1825:989;-1:-1:-1;;;1825:989:105:o;2819:147::-;2887:20;;2916:44;2887:20;2916:44;:::i;:::-;2819:147;;;:::o;3411:615::-;3535:6;3543;3551;3604:2;3592:9;3583:7;3579:23;3575:32;3572:52;;;3620:1;3617;3610:12;3572:52;3659:9;3646:23;3678:44;3716:5;3678:44;:::i;:::-;3741:5;-1:-1:-1;3798:2:105;3783:18;;3770:32;3811:46;3770:32;3811:46;:::i;:::-;3876:7;-1:-1:-1;3935:2:105;3920:18;;3907:32;3948:46;3907:32;3948:46;:::i;:::-;4013:7;4003:17;;;3411:615;;;;;:::o;4031:640::-;4168:6;4176;4184;4237:2;4225:9;4216:7;4212:23;4208:32;4205:52;;;4253:1;4250;4243:12;4205:52;4292:9;4279:23;4311:44;4349:5;4311:44;:::i;:::-;4374:5;-1:-1:-1;4430:2:105;4415:18;;4402:32;4457:18;4446:30;;4443:50;;;4489:1;4486;4479:12;4443:50;4528:83;4603:7;4594:6;4583:9;4579:22;4528:83;:::i;:::-;4031:640;;4630:8;;-1:-1:-1;4502:109:105;;-1:-1:-1;;;;4031:640:105:o;4676:928::-;4810:6;4818;4826;4834;4842;4895:3;4883:9;4874:7;4870:23;4866:33;4863:53;;;4912:1;4909;4902:12;4863:53;4951:9;4938:23;4970:44;5008:5;4970:44;:::i;:::-;5033:5;-1:-1:-1;5090:2:105;5075:18;;5062:32;5103:46;5062:32;5103:46;:::i;:::-;5168:7;-1:-1:-1;5226:2:105;5211:18;;5198:32;5253:18;5242:30;;5239:50;;;5285:1;5282;5275:12;5239:50;5324:83;5399:7;5390:6;5379:9;5375:22;5324:83;:::i;:::-;5426:8;;-1:-1:-1;5298:109:105;-1:-1:-1;;5513:2:105;5498:18;;5485:32;5526:46;5485:32;5526:46;:::i;:::-;5591:7;5581:17;;;4676:928;;;;;;;;:::o;5862:127::-;5923:10;5918:3;5914:20;5911:1;5904:31;5954:4;5951:1;5944:15;5978:4;5975:1;5968:15;5994:1582;6135:6;6143;6151;6159;6167;6220:3;6208:9;6199:7;6195:23;6191:33;6188:53;;;6237:1;6234;6227:12;6188:53;6276:9;6263:23;6295:44;6333:5;6295:44;:::i;:::-;6358:5;-1:-1:-1;6382:2:105;6421:18;;;6408:32;6449:46;6408:32;6449:46;:::i;:::-;6514:7;-1:-1:-1;6568:2:105;6553:18;;6540:32;;-1:-1:-1;6619:2:105;6604:18;;6591:32;;-1:-1:-1;6674:3:105;6659:19;;6646:33;6698:18;6728:14;;;6725:34;;;6755:1;6752;6745:12;6725:34;6793:6;6782:9;6778:22;6768:32;;6838:7;6831:4;6827:2;6823:13;6819:27;6809:55;;6860:1;6857;6850:12;6809:55;6896:2;6883:16;6918:2;6914;6911:10;6908:36;;;6924:18;;:::i;:::-;6970:2;6967:1;6963:10;7002:2;6996:9;7065:2;7061:7;7056:2;7052;7048:11;7044:25;7036:6;7032:38;7120:6;7108:10;7105:22;7100:2;7088:10;7085:18;7082:46;7079:72;;;7131:18;;:::i;:::-;7167:2;7160:22;7217:18;;;7251:15;;;;-1:-1:-1;7293:11:105;;;7289:20;;;7321:19;;;7318:39;;;7353:1;7350;7343:12;7318:39;7377:11;;;;7397:148;7413:6;7408:3;7405:15;7397:148;;;7479:23;7498:3;7479:23;:::i;:::-;7467:36;;7430:12;;;;7523;;;;7397:148;;;7564:6;7554:16;;;;;;;;5994:1582;;;;;;;;:::o;7581:529::-;7705:6;7713;7721;7774:2;7762:9;7753:7;7749:23;7745:32;7742:52;;;7790:1;7787;7780:12;7742:52;7829:9;7816:23;7848:44;7886:5;7848:44;:::i;:::-;7911:5;-1:-1:-1;7968:2:105;7953:18;;7940:32;7981:46;7940:32;7981:46;:::i;:::-;7581:529;;8046:7;;-1:-1:-1;;;8100:2:105;8085:18;;;;8072:32;;7581:529::o;8115:684::-;8248:6;8256;8264;8272;8325:3;8313:9;8304:7;8300:23;8296:33;8293:53;;;8342:1;8339;8332:12;8293:53;8381:9;8368:23;8400:44;8438:5;8400:44;:::i;:::-;8463:5;-1:-1:-1;8520:2:105;8505:18;;8492:32;8533:46;8492:32;8533:46;:::i;:::-;8598:7;-1:-1:-1;8652:2:105;8637:18;;8624:32;;-1:-1:-1;8708:2:105;8693:18;;8680:32;8721:46;8680:32;8721:46;:::i;:::-;8115:684;;;;-1:-1:-1;8115:684:105;;-1:-1:-1;;8115:684:105:o;10173:260::-;10232:6;10285:2;10273:9;10264:7;10260:23;10256:32;10253:52;;;10301:1;10298;10291:12;10253:52;10340:9;10327:23;10359:44;10397:5;10359:44;:::i;12551:127::-;12612:10;12607:3;12603:20;12600:1;12593:31;12643:4;12640:1;12633:15;12667:4;12664:1;12657:15;12969:232;13008:3;13029:17;;;13026:140;;13088:10;13083:3;13079:20;13076:1;13069:31;13123:4;13120:1;13113:15;13151:4;13148:1;13141:15;13026:140;-1:-1:-1;13193:1:105;13182:13;;12969:232::o;14432:127::-;14493:10;14488:3;14484:20;14481:1;14474:31;14524:4;14521:1;14514:15;14548:4;14545:1;14538:15",
12680
- "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.13;\n\nimport {\n ISuperfluid,\n ISuperfluidToken\n} from \"../interfaces/superfluid/ISuperfluid.sol\";\nimport { SuperfluidGovernanceBase } from \"../gov/SuperfluidGovernanceBase.sol\";\n\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\n\n\n/**\n * @title Test governance contract\n * @author Superfluid \n * @dev A initializable version of the governance for testing purpose\n */\ncontract TestGovernance is\n Ownable,\n SuperfluidGovernanceBase\n{\n ISuperfluid private _host;\n\n function initialize(\n ISuperfluid host,\n address rewardAddress,\n uint256 liquidationPeriod,\n uint256 patricianPeriod,\n address[] memory trustedForwarders\n )\n external\n {\n // can initialize only once\n assert(address(host) != address(0));\n assert(address(_host) == address(0));\n\n _host = host;\n\n setRewardAddress(_host, ISuperfluidToken(address(0)), rewardAddress);\n\n setPPPConfig(host, ISuperfluidToken(address(0)), liquidationPeriod, patricianPeriod);\n\n for (uint i = 0; i < trustedForwarders.length; ++i) {\n enableTrustedForwarder(_host, ISuperfluidToken(address(0)), trustedForwarders[i]);\n }\n }\n\n function _requireAuthorised(ISuperfluid host)\n internal view override\n {\n assert(host == _host);\n assert(owner() == _msgSender());\n }\n}\n",
12678
+ "sourceMap": "446:990:102:-:0;;;;;;;;;;;;-1:-1:-1;921:32:4;719:10:19;921:18:4;:32::i;:::-;446:990:102;;2270:187:4;2343:16;2362:6;;-1:-1:-1;;;;;2378:17:4;;;-1:-1:-1;;;;;;2378:17:4;;;;;;2410:40;;2362:6;;;;;;;2410:40;;2343:16;2410:40;2333:124;2270:187;:::o;446:990:102:-;;;;;;;",
12679
+ "deployedSourceMap": "446:990:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7975:762:37;;;;;;:::i;:::-;;:::i;:::-;;8743:273;;;;;;:::i;:::-;;:::i;5940:288::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1396:32:105;;;1378:51;;1366:2;1351:18;5940:288:37;;;;;;;;2339:485;;;;;;:::i;:::-;;:::i;13079:258::-;;;;;;:::i;:::-;;:::i;6234:389::-;;;;;;:::i;:::-;;:::i;2048:285::-;;;;;;:::i;:::-;;:::i;1359:683::-;;;;;;:::i;:::-;;:::i;903:212::-;;;;;;:::i;:::-;;:::i;7489:480::-;;;;;;:::i;:::-;;:::i;:::-;;;;5783:25:105;;;5839:2;5824:18;;5817:34;;;;5756:18;7489:480:37;5609:248:105;553:715:102;;;;;;:::i;:::-;;:::i;3447:193:37:-;;;;;;:::i;:::-;;:::i;1668:101:4:-;;;:::i;2997:219:37:-;;;;;;:::i;:::-;;:::i;11073:382::-;;;;;;:::i;:::-;;:::i;9493:332::-;;;;;;:::i;:::-;;:::i;5122:424::-;;;;;;:::i;:::-;;:::i;:::-;;;9484:25:105;;;9472:2;9457:18;5122:424:37;9338:177:105;4675:441:37;;;;;;:::i;9205:282::-;;;;;;:::i;:::-;;:::i;11928:305::-;;;;;;:::i;:::-;;:::i;:::-;;;9685:14:105;;9678:22;9660:41;;9648:2;9633:18;11928:305:37;9520:187:105;12398:521:37;;;;;;:::i;:::-;;:::i;11461:375::-;;;;;;:::i;:::-;;:::i;1036:85:4:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:4;1036:85;;9831:302:37;;;;;;:::i;:::-;;:::i;10687:380::-;;;;;;:::i;:::-;;:::i;1121:232::-;;;;;;:::i;:::-;;:::i;6629:326::-;;;;;;:::i;:::-;;:::i;10351:330::-;;;;;;:::i;:::-;;:::i;1918:198:4:-;;;;;;:::i;:::-;;:::i;3222:219:37:-;;;;;;:::i;:::-;;:::i;7975:762::-;8191:15;8171:17;:35;:87;;;;-1:-1:-1;8242:16:37;8222:36;;8171:87;:137;;;;-1:-1:-1;8292:16:37;8274:34;;8171:137;8163:222;;;;-1:-1:-1;;;8163:222:37;;11243:2:105;8163:222:37;;;11225:21:105;11282:2;11262:18;;;11255:30;11321:34;11301:18;;;11294:62;-1:-1:-1;;;11372:18:105;;;11365:49;11431:19;;8163:222:37;;;;;;;;;8400:83;;;8442:4;11657:41:105;;11729:2;11714:18;;11707:34;;;11757:18;;;11750:34;;;-1:-1:-1;;;;;8400:83:37;;;;;;;;;;11645:2:105;11630:18;8400:83:37;;;;;;;8540:2;8510:32;;;8509:61;;8587:143;8611:4;8629:10;7628:88:42;8509:61:37;8587:10;:143::i;:::-;8580:150;7975:762;;;;;:::o;8743:273::-;8858:54;;;8900:5;11657:41:105;;;11729:2;11714:18;;11707:34;;;11757:18;;;11750:34;8858:54:37;;-1:-1:-1;;;;;8858:54:37;;;;;;;;;;;;;11645:2:105;8858:54:37;;;8929:80;8942:4;8948:10;7628:88:42;8929:12:37;:80::i;:::-;8743:273;;:::o;5940:288::-;6064:7;6094:127;6126:4;6132:10;7505:60:42;6094:18:37;:127::i;:::-;6087:134;5940:288;-1:-1:-1;;;5940:288:37:o;2339:485::-;2526:39;;;2518:89;;;;-1:-1:-1;;;2518:89:37;;12347:2:105;2518:89:37;;;12329:21:105;12386:2;12366:18;;;12359:30;12425:34;12405:18;;;12398:62;-1:-1:-1;;;12476:18:105;;;12469:35;12521:19;;2518:89:37;12145:401:105;2518:89:37;2622:6;2617:201;2634:26;;;2617:201;;;2681:126;2726:4;2748:6;;2755:1;2748:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2775:15;;2791:1;2775:18;;;;;;;:::i;:::-;;;;;;;2681:27;:126::i;:::-;2662:3;;;:::i;:::-;;;2617:201;;;;2339:485;;;;;:::o;13079:258::-;13196:134;13222:4;13253:1;13270:59;13321:7;13270:50;:59::i;:::-;13196:12;:134::i;6234:389::-;6394:59;;;6433:4;13374:41:105;;-1:-1:-1;;;;;13451:32:105;;;13446:2;13431:18;;13424:60;6394:59:37;;;;;;;;;;13347:18:105;6394:59:37;;;;;;;6470:146;6494:4;6500:10;7505:60:42;6602:13:37;6470:10;:146::i;:::-;6234:389;;;:::o;2048:285::-;2204:4;13476:24;13495:4;13476:18;:24::i;:::-;2229:6:::1;2224:103;2241:17:::0;;::::1;2224:103;;;2279:4;-1:-1:-1::0;;;;;2279:26:37::1;;2306:6;;2313:1;2306:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2279:37;::::0;-1:-1:-1;;;;;;2279:37:37::1;::::0;;;;;;-1:-1:-1;;;;;1396:32:105;;;2279:37:37::1;::::0;::::1;1378:51:105::0;1351:18;;2279:37:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2260:3;;;;:::i;:::-;;;2224:103;;1359:683:::0;1590:4;13476:24;13495:4;13476:18;:24::i;:::-;-1:-1:-1;;;;;1614:26:37;::::1;::::0;1610:110:::1;;1656:53;::::0;-1:-1:-1;;;1656:53:37;;-1:-1:-1;;;;;1396:32:105;;;1656:53:37::1;::::0;::::1;1378:51:105::0;1656:39:37;::::1;::::0;::::1;::::0;1351:18:105;;1656:53:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1610:110;1734:6;1729:153;1746:34:::0;;::::1;1729:153;;;1801:4;-1:-1:-1::0;;;;;1801:25:37::1;;1843:23;;1867:1;1843:26;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;1801:70;::::0;-1:-1:-1;;;;;;1801:70:37::1;::::0;;;;;;-1:-1:-1;;;;;1396:32:105;;;1801:70:37::1;::::0;::::1;1378:51:105::0;1351:18;;1801:70:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1782:3;;;;:::i;:::-;;;1729:153;;;-1:-1:-1::0;;;;;;1895:39:37;::::1;::::0;1891:145:::1;;1950:75;::::0;-1:-1:-1;;;1950:75:37;;-1:-1:-1;;;;;1396:32:105;;;1950:75:37::1;::::0;::::1;1378:51:105::0;1950:28:37;::::1;::::0;::::1;::::0;1351:18:105;;1950:75:37::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1359:683:::0;;;;;;:::o;903:212::-;1035:4;13476:24;13495:4;13476:18;:24::i;:::-;1055:53:::1;::::0;-1:-1:-1;;;1055:53:37;;-1:-1:-1;;;;;1396:32:105;;;1055:53:37::1;::::0;::::1;1378:51:105::0;1055:22:37;::::1;::::0;::::1;::::0;1351:18:105;;1055:53:37::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;903:212:::0;;;:::o;7489:480::-;7609:25;7636:23;7683:17;7703:148;7739:4;7761:10;7628:88:42;7703:18:37;:148::i;:::-;8796:16:42;8790:2;8777:15;;;8776:36;;;8840:28;;;-1:-1:-1;8776:36:42;-1:-1:-1;;;;7489:480:37:o;553:715:102:-;-1:-1:-1;;;;;822:27:102;;815:35;;;;:::i;:::-;875:5;;-1:-1:-1;;;;;875:5:102;867:28;860:36;;;;:::i;:::-;907:5;:12;;-1:-1:-1;;;;;;907:12:102;-1:-1:-1;;;;;907:12:102;;;;;;;;930:68;;-1:-1:-1;984:13:102;930:16;:68::i;:::-;1009:84;1022:4;1053:1;1058:17;1077:15;1009:12;:84::i;:::-;1109:6;1104:158;1125:17;:24;1121:1;:28;1104:158;;;1193:5;;1230:20;;1170:81;;-1:-1:-1;;;;;1193:5:102;;;;1230:17;;1248:1;;1230:20;;;;;;:::i;:::-;;;;;;;1170:22;:81::i;:::-;1151:3;;;:::i;:::-;;;1104:158;;3447:193:37;3598:35;3611:4;3617:10;3629:3;3598:12;:35::i;1668:101:4:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:4;719:10:19;1248:23:4;1240:68;;;;-1:-1:-1;;;1240:68:4;;14766:2:105;1240:68:4;;;14748:21:105;;;14785:18;;;14778:30;14844:34;14824:18;;;14817:62;14896:18;;1240:68:4;14564:356:105;1240:68:4;1732:30:::1;1759:1;1732:18;:30::i;:::-;1668:101::o:0;2997:219:37:-;3169:40;3180:4;3186:10;3198:3;3203:5;3169:10;:40::i;11073:382::-;11231:137;11255:4;11261:10;11285:67;11342:9;11285:56;:67::i;:::-;11366:1;11231:10;:137::i;:::-;11383:65;;;11425:4;15115:41:105;;-1:-1:-1;;;;;15192:32:105;;;15187:2;15172:18;;15165:60;11442:5:37;15241:18:105;;;15234:50;;;;11383:65:37;;;;;;;;;15103:2:105;15088:18;11383:65:37;;;;;;;;11073:382;;;:::o;9493:332::-;9644:62;;;9694:4;15463:41:105;;15535:2;15520:18;;15513:34;;;-1:-1:-1;;;;;9644:62:37;;;;;;;;;;15436:18:105;9644:62:37;;;;;;;9723:95;9734:4;9740:10;7790:71:42;9812:5:37;9723:10;:95::i;5122:424::-;-1:-1:-1;;;;;5333:23:37;;;5285:14;5333:23;;;:8;:23;;;;;;;;:44;;;;;;;;;;;:49;;;;;;;;5397:5;;;;5392:124;;-1:-1:-1;;;;;;5465:23:37;;;;;;:8;:23;;;;;;;;:35;;;;;;;;:40;;;;;;;;5392:124;5532:7;;;;5122:424;-1:-1:-1;;;;5122:424:37:o;9205:282::-;9336:13;9372:108;9391:4;9397:10;7790:71:42;9372:18:37;:108::i;11928:305::-;12054:4;12081:140;12113:4;12144:1;12161:59;12212:7;12161:50;:59::i;12081:140::-;12225:1;12081:145;;11928:305;-1:-1:-1;;;11928:305:37:o;12398:521::-;12657:20;;12700:6;12692:52;;;;-1:-1:-1;;;12692:52:37;;15760:2:105;12692:52:37;;;15742:21:105;15799:2;15779:18;;;15772:30;15838:34;15818:18;;;15811:62;-1:-1:-1;;;15889:18:105;;;15882:31;15930:19;;12692:52:37;15558:397:105;12692:52:37;12542:213;12765:147;12789:4;12820:1;12837:59;12888:7;12837:50;:59::i;:::-;12910:1;12765:10;:147::i;11461:375::-;11622:66;;;11664:5;15115:41:105;;;-1:-1:-1;;;;;15192:32:105;;;15187:2;15172:18;;15165:60;15241:18;;;15234:50;11622:66:37;;;;;;;;;15103:2:105;15088:18;11622:66:37;;;;;;;11705:124;11731:4;11737:10;11761:67;11818:9;11761:56;:67::i;9831:302::-;9960:59;;;10010:5;15463:41:105;;;15535:2;15520:18;;15513:34;-1:-1:-1;;;;;9960:59:37;;;;;;;;;;15436:18:105;9960:59:37;;;;;;;10036:90;10049:4;10055:10;7790:71:42;10036:12:37;:90::i;10687:380::-;10844:137;10868:4;10874:10;10898:67;10955:9;10898:56;:67::i;10844:137::-;10996:64;;;11038:4;15115:41:105;;;-1:-1:-1;;;;;15192:32:105;;;15187:2;15172:18;;15165:60;15241:18;;;15234:50;10996:64:37;;;;;;;;;15103:2:105;15088:18;10996:64:37;14925:365:105;1121:232:37;1266:4;13476:24;13495:4;13476:18;:24::i;:::-;1286:60:::1;::::0;-1:-1:-1;;;1286:60:37;;-1:-1:-1;;;;;1396:32:105;;;1286:60:37::1;::::0;::::1;1378:51:105::0;1286:27:37;::::1;::::0;::::1;::::0;1351:18:105;;1286:60:37::1;1232:203:105::0;6629:326:37;6760:57;;;6799:5;13374:41:105;;;13446:2;13431:18;;13424:60;-1:-1:-1;;;;;6760:57:37;;;;;;;;;;13347:18:105;6760:57:37;;;;;;;6827:121;6853:4;6859:10;7505:60:42;6827:12:37;:121::i;10351:330::-;10512:4;10539:130;10571:4;10577:10;10601:67;10658:9;10601:56;:67::i;10539:130::-;10673:1;10539:135;;10351:330;-1:-1:-1;;;;10351:330:37:o;1918:198:4:-;1082:7;1108:6;-1:-1:-1;;;;;1108:6:4;719:10:19;1248:23:4;1240:68;;;;-1:-1:-1;;;1240:68:4;;14766:2:105;1240:68:4;;;14748:21:105;;;14785:18;;;14778:30;14844:34;14824:18;;;14817:62;14896:18;;1240:68:4;14564:356:105;1240:68:4;-1:-1:-1;;;;;2006:22:4;::::1;1998:73;;;::::0;-1:-1:-1;;;1998:73:4;;16433:2:105;1998:73:4::1;::::0;::::1;16415:21:105::0;16472:2;16452:18;;;16445:30;16511:34;16491:18;;;16484:62;-1:-1:-1;;;16562:18:105;;;16555:36;16608:19;;1998:73:4::1;16231:402:105::0;1998:73:4::1;2081:28;2100:8;2081:18;:28::i;:::-;1918:198:::0;:::o;3222:219:37:-;3394:40;3405:4;3411:10;3423:3;3428:5;4022:334;4195:4;13476:24;13495:4;13476:18;:24::i;:::-;4220:49:::1;::::0;;16834:25:105;;;4257:4:37::1;16890:2:105::0;16875:18;;16868:50;16934:18;;;16927:34;;;-1:-1:-1;;;;;4220:49:37;;::::1;::::0;;;::::1;::::0;::::1;::::0;16822:2:105;16807:18;4220:49:37::1;;;;;;;-1:-1:-1::0;4331:18:37::1;::::0;;;;::::1;::::0;;4337:4:::1;4331:18:::0;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;4279:23:37;;::::1;-1:-1:-1::0;4279:23:37;;;;;;;;;:44;;;::::1;::::0;;;;;;;;:49;;;;;;;;;;:70;;;;-1:-1:-1;;4279:70:37::1;::::0;::::1;;;::::0;;;;;::::1;::::0;4022:334::o;4362:307::-;4514:4;13476:24;13495:4;13476:18;:24::i;:::-;4559:10:::1;-1:-1:-1::0;;;;;4539:46:37::1;4553:4;-1:-1:-1::0;;;;;4539:46:37::1;;4571:3;4576:5;4583:1:::0;4539:46:::1;;;;;;;16834:25:105::0;;;16902:14;;16895:22;16890:2;16875:18;;16868:50;16949:2;16934:18;;16927:34;16822:2;16807:18;;16638:329;4539:46:37::1;;;;;;;;-1:-1:-1::0;4647:15:37::1;::::0;;;;::::1;::::0;;-1:-1:-1;4647:15:37;;;::::1;::::0;;::::1;::::0;;;-1:-1:-1;;;;;4595:23:37;;::::1;::::0;;4647:15;4595:23;;;;;;:44;;;::::1;::::0;;;;;;;;:49;;;;;;;;;:67;;;;-1:-1:-1;;4595:67:37::1;::::0;::::1;;;::::0;;;;;::::1;::::0;4362:307::o;8400:221:42:-;8508:105;;;;;;17526:21:105;;;17583:2;17563:18;;;17556:30;17622:34;17602:18;;;17595:62;17694:27;17673:19;;;17666:56;-1:-1:-1;;;;;17796:32:105;;17774:20;;;17767:62;;;;8472:7:42;;17739:19:105;;8508:105:42;;;;;;;;;;;;;8498:116;;;;;;8491:123;;8400:221;;;:::o;3646:370:37:-;3819:4;13476:24;13495:4;13476:18;:24::i;:::-;3844:67:::1;::::0;;16834:25:105;;;3881:4:37::1;16890:2:105::0;16875:18;;16868:50;-1:-1:-1;;;;;3887:23:37;;::::1;16934:18:105::0;;;16927:34;3844:67:37;;;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;16822:2:105;3844:67:37;;::::1;-1:-1:-1::0;3973:36:37::1;::::0;;;;::::1;::::0;;3979:4:::1;3973:36:::0;;;-1:-1:-1;;;;;3985:23:37;;::::1;3973:36;::::0;;::::1;::::0;;;3921:23;;::::1;-1:-1:-1::0;3921:23:37;;;;;;;;;:44;;;::::1;::::0;;;;;;;;:49;;;;;;;;;:88;;;;-1:-1:-1;;3921:88:37::1;::::0;::::1;;;::::0;;;;;::::1;::::0;3646:370::o;1274:160:102:-;1380:5;;-1:-1:-1;;;;;1372:13:102;;;1380:5;;1372:13;1365:21;;;;:::i;:::-;1082:7:4;1108:6;-1:-1:-1;;;;;1108:6:4;719:10:19;1403:23:102;1396:31;;;;:::i;2270:187:4:-;2343:16;2362:6;;-1:-1:-1;;;;;2378:17:4;;;-1:-1:-1;;;;;;2378:17:4;;;;;;2410:40;;2362:6;;;;;;;2410:40;;2343:16;2410:40;2333:124;2270:187;:::o;7868:224:42:-;7984:100;;;;;;18052:21:105;;;18109:2;18089:18;;;18082:30;18148:34;18128:18;;;18121:62;-1:-1:-1;;;18199:19:105;;;18192:49;-1:-1:-1;;;;;18315:32:105;;18293:20;;;18286:62;;;;7948:7:42;;18258:19:105;;7984:100:42;17840:514:105;14:144;-1:-1:-1;;;;;102:31:105;;92:42;;82:70;;148:1;145;138:12;163:598;296:6;304;312;320;373:3;361:9;352:7;348:23;344:33;341:53;;;390:1;387;380:12;341:53;429:9;416:23;448:44;486:5;448:44;:::i;:::-;511:5;-1:-1:-1;568:2:105;553:18;;540:32;581:46;540:32;581:46;:::i;:::-;163:598;;646:7;;-1:-1:-1;;;;700:2:105;685:18;;672:32;;751:2;736:18;723:32;;163:598::o;766:461::-;881:6;889;942:2;930:9;921:7;917:23;913:32;910:52;;;958:1;955;948:12;910:52;997:9;984:23;1016:44;1054:5;1016:44;:::i;:::-;1079:5;-1:-1:-1;1136:2:105;1121:18;;1108:32;1149:46;1108:32;1149:46;:::i;:::-;1214:7;1204:17;;;766:461;;;;;:::o;1440:380::-;1516:8;1526:6;1580:3;1573:4;1565:6;1561:17;1557:27;1547:55;;1598:1;1595;1588:12;1547:55;-1:-1:-1;1621:20:105;;1664:18;1653:30;;1650:50;;;1696:1;1693;1686:12;1650:50;1733:4;1725:6;1721:17;1709:29;;1793:3;1786:4;1776:6;1773:1;1769:14;1761:6;1757:27;1753:38;1750:47;1747:67;;;1810:1;1807;1800:12;1747:67;1440:380;;;;;:::o;1825:989::-;1998:6;2006;2014;2022;2030;2083:2;2071:9;2062:7;2058:23;2054:32;2051:52;;;2099:1;2096;2089:12;2051:52;2138:9;2125:23;2157:44;2195:5;2157:44;:::i;:::-;2220:5;-1:-1:-1;2276:2:105;2261:18;;2248:32;2299:18;2329:14;;;2326:34;;;2356:1;2353;2346:12;2326:34;2395:83;2470:7;2461:6;2450:9;2446:22;2395:83;:::i;:::-;2497:8;;-1:-1:-1;2369:109:105;-1:-1:-1;2585:2:105;2570:18;;2557:32;;-1:-1:-1;2601:16:105;;;2598:36;;;2630:1;2627;2620:12;2598:36;;2669:85;2746:7;2735:8;2724:9;2720:24;2669:85;:::i;:::-;1825:989;;;;-1:-1:-1;1825:989:105;;-1:-1:-1;2773:8:105;;2643:111;1825:989;-1:-1:-1;;;1825:989:105:o;2819:147::-;2887:20;;2916:44;2887:20;2916:44;:::i;:::-;2819:147;;;:::o;3411:615::-;3535:6;3543;3551;3604:2;3592:9;3583:7;3579:23;3575:32;3572:52;;;3620:1;3617;3610:12;3572:52;3659:9;3646:23;3678:44;3716:5;3678:44;:::i;:::-;3741:5;-1:-1:-1;3798:2:105;3783:18;;3770:32;3811:46;3770:32;3811:46;:::i;:::-;3876:7;-1:-1:-1;3935:2:105;3920:18;;3907:32;3948:46;3907:32;3948:46;:::i;:::-;4013:7;4003:17;;;3411:615;;;;;:::o;4031:640::-;4168:6;4176;4184;4237:2;4225:9;4216:7;4212:23;4208:32;4205:52;;;4253:1;4250;4243:12;4205:52;4292:9;4279:23;4311:44;4349:5;4311:44;:::i;:::-;4374:5;-1:-1:-1;4430:2:105;4415:18;;4402:32;4457:18;4446:30;;4443:50;;;4489:1;4486;4479:12;4443:50;4528:83;4603:7;4594:6;4583:9;4579:22;4528:83;:::i;:::-;4031:640;;4630:8;;-1:-1:-1;4502:109:105;;-1:-1:-1;;;;4031:640:105:o;4676:928::-;4810:6;4818;4826;4834;4842;4895:3;4883:9;4874:7;4870:23;4866:33;4863:53;;;4912:1;4909;4902:12;4863:53;4951:9;4938:23;4970:44;5008:5;4970:44;:::i;:::-;5033:5;-1:-1:-1;5090:2:105;5075:18;;5062:32;5103:46;5062:32;5103:46;:::i;:::-;5168:7;-1:-1:-1;5226:2:105;5211:18;;5198:32;5253:18;5242:30;;5239:50;;;5285:1;5282;5275:12;5239:50;5324:83;5399:7;5390:6;5379:9;5375:22;5324:83;:::i;:::-;5426:8;;-1:-1:-1;5298:109:105;-1:-1:-1;;5513:2:105;5498:18;;5485:32;5526:46;5485:32;5526:46;:::i;:::-;5591:7;5581:17;;;4676:928;;;;;;;;:::o;5862:127::-;5923:10;5918:3;5914:20;5911:1;5904:31;5954:4;5951:1;5944:15;5978:4;5975:1;5968:15;5994:1582;6135:6;6143;6151;6159;6167;6220:3;6208:9;6199:7;6195:23;6191:33;6188:53;;;6237:1;6234;6227:12;6188:53;6276:9;6263:23;6295:44;6333:5;6295:44;:::i;:::-;6358:5;-1:-1:-1;6382:2:105;6421:18;;;6408:32;6449:46;6408:32;6449:46;:::i;:::-;6514:7;-1:-1:-1;6568:2:105;6553:18;;6540:32;;-1:-1:-1;6619:2:105;6604:18;;6591:32;;-1:-1:-1;6674:3:105;6659:19;;6646:33;6698:18;6728:14;;;6725:34;;;6755:1;6752;6745:12;6725:34;6793:6;6782:9;6778:22;6768:32;;6838:7;6831:4;6827:2;6823:13;6819:27;6809:55;;6860:1;6857;6850:12;6809:55;6896:2;6883:16;6918:2;6914;6911:10;6908:36;;;6924:18;;:::i;:::-;6970:2;6967:1;6963:10;7002:2;6996:9;7065:2;7061:7;7056:2;7052;7048:11;7044:25;7036:6;7032:38;7120:6;7108:10;7105:22;7100:2;7088:10;7085:18;7082:46;7079:72;;;7131:18;;:::i;:::-;7167:2;7160:22;7217:18;;;7251:15;;;;-1:-1:-1;7293:11:105;;;7289:20;;;7321:19;;;7318:39;;;7353:1;7350;7343:12;7318:39;7377:11;;;;7397:148;7413:6;7408:3;7405:15;7397:148;;;7479:23;7498:3;7479:23;:::i;:::-;7467:36;;7430:12;;;;7523;;;;7397:148;;;7564:6;7554:16;;;;;;;;5994:1582;;;;;;;;:::o;7581:529::-;7705:6;7713;7721;7774:2;7762:9;7753:7;7749:23;7745:32;7742:52;;;7790:1;7787;7780:12;7742:52;7829:9;7816:23;7848:44;7886:5;7848:44;:::i;:::-;7911:5;-1:-1:-1;7968:2:105;7953:18;;7940:32;7981:46;7940:32;7981:46;:::i;:::-;7581:529;;8046:7;;-1:-1:-1;;;8100:2:105;8085:18;;;;8072:32;;7581:529::o;8115:684::-;8248:6;8256;8264;8272;8325:3;8313:9;8304:7;8300:23;8296:33;8293:53;;;8342:1;8339;8332:12;8293:53;8381:9;8368:23;8400:44;8438:5;8400:44;:::i;:::-;8463:5;-1:-1:-1;8520:2:105;8505:18;;8492:32;8533:46;8492:32;8533:46;:::i;:::-;8598:7;-1:-1:-1;8652:2:105;8637:18;;8624:32;;-1:-1:-1;8708:2:105;8693:18;;8680:32;8721:46;8680:32;8721:46;:::i;:::-;8115:684;;;;-1:-1:-1;8115:684:105;;-1:-1:-1;;8115:684:105:o;10173:260::-;10232:6;10285:2;10273:9;10264:7;10260:23;10256:32;10253:52;;;10301:1;10298;10291:12;10253:52;10340:9;10327:23;10359:44;10397:5;10359:44;:::i;12551:127::-;12612:10;12607:3;12603:20;12600:1;12593:31;12643:4;12640:1;12633:15;12667:4;12664:1;12657:15;12969:232;13008:3;13029:17;;;13026:140;;13088:10;13083:3;13079:20;13076:1;13069:31;13123:4;13120:1;13113:15;13151:4;13148:1;13141:15;13026:140;-1:-1:-1;13193:1:105;13182:13;;12969:232::o;14432:127::-;14493:10;14488:3;14484:20;14481:1;14474:31;14524:4;14521:1;14514:15;14548:4;14545:1;14538:15",
12680
+ "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity 0.8.14;\n\nimport {\n ISuperfluid,\n ISuperfluidToken\n} from \"../interfaces/superfluid/ISuperfluid.sol\";\nimport { SuperfluidGovernanceBase } from \"../gov/SuperfluidGovernanceBase.sol\";\n\nimport { Ownable } from \"@openzeppelin/contracts/access/Ownable.sol\";\n\n\n/**\n * @title Test governance contract\n * @author Superfluid\n * @dev A initializable version of the governance for testing purpose\n */\ncontract TestGovernance is\n Ownable,\n SuperfluidGovernanceBase\n{\n ISuperfluid private _host;\n\n function initialize(\n ISuperfluid host,\n address rewardAddress,\n uint256 liquidationPeriod,\n uint256 patricianPeriod,\n address[] memory trustedForwarders\n )\n external\n {\n // can initialize only once\n assert(address(host) != address(0));\n assert(address(_host) == address(0));\n\n _host = host;\n\n setRewardAddress(_host, ISuperfluidToken(address(0)), rewardAddress);\n\n setPPPConfig(host, ISuperfluidToken(address(0)), liquidationPeriod, patricianPeriod);\n\n for (uint i = 0; i < trustedForwarders.length; ++i) {\n enableTrustedForwarder(_host, ISuperfluidToken(address(0)), trustedForwarders[i]);\n }\n }\n\n function _requireAuthorised(ISuperfluid host)\n internal view override\n {\n assert(host == _host);\n assert(owner() == _msgSender());\n }\n}\n",
12681
12681
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/utils/TestGovernance.sol",
12682
12682
  "ast": {
12683
12683
  "absolutePath": "project:/contracts/utils/TestGovernance.sol",
@@ -12695,19 +12695,19 @@
12695
12695
  15969
12696
12696
  ],
12697
12697
  "TestGovernance": [
12698
- 36827
12698
+ 36846
12699
12699
  ]
12700
12700
  },
12701
- "id": 36828,
12701
+ "id": 36847,
12702
12702
  "license": "AGPLv3",
12703
12703
  "nodeType": "SourceUnit",
12704
12704
  "nodes": [
12705
12705
  {
12706
- "id": 36696,
12706
+ "id": 36715,
12707
12707
  "literals": [
12708
12708
  "solidity",
12709
12709
  "0.8",
12710
- ".13"
12710
+ ".14"
12711
12711
  ],
12712
12712
  "nodeType": "PragmaDirective",
12713
12713
  "src": "35:23:102"
@@ -12715,16 +12715,16 @@
12715
12715
  {
12716
12716
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluid.sol",
12717
12717
  "file": "../interfaces/superfluid/ISuperfluid.sol",
12718
- "id": 36699,
12718
+ "id": 36718,
12719
12719
  "nameLocation": "-1:-1:-1",
12720
12720
  "nodeType": "ImportDirective",
12721
- "scope": 36828,
12721
+ "scope": 36847,
12722
12722
  "sourceUnit": 18325,
12723
12723
  "src": "60:97:102",
12724
12724
  "symbolAliases": [
12725
12725
  {
12726
12726
  "foreign": {
12727
- "id": 36697,
12727
+ "id": 36716,
12728
12728
  "name": "ISuperfluid",
12729
12729
  "nodeType": "Identifier",
12730
12730
  "overloadedDeclarations": [],
@@ -12736,7 +12736,7 @@
12736
12736
  },
12737
12737
  {
12738
12738
  "foreign": {
12739
- "id": 36698,
12739
+ "id": 36717,
12740
12740
  "name": "ISuperfluidToken",
12741
12741
  "nodeType": "Identifier",
12742
12742
  "overloadedDeclarations": [],
@@ -12752,16 +12752,16 @@
12752
12752
  {
12753
12753
  "absolutePath": "project:/contracts/gov/SuperfluidGovernanceBase.sol",
12754
12754
  "file": "../gov/SuperfluidGovernanceBase.sol",
12755
- "id": 36701,
12755
+ "id": 36720,
12756
12756
  "nameLocation": "-1:-1:-1",
12757
12757
  "nodeType": "ImportDirective",
12758
- "scope": 36828,
12758
+ "scope": 36847,
12759
12759
  "sourceUnit": 15970,
12760
12760
  "src": "158:79:102",
12761
12761
  "symbolAliases": [
12762
12762
  {
12763
12763
  "foreign": {
12764
- "id": 36700,
12764
+ "id": 36719,
12765
12765
  "name": "SuperfluidGovernanceBase",
12766
12766
  "nodeType": "Identifier",
12767
12767
  "overloadedDeclarations": [],
@@ -12777,16 +12777,16 @@
12777
12777
  {
12778
12778
  "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
12779
12779
  "file": "@openzeppelin/contracts/access/Ownable.sol",
12780
- "id": 36703,
12780
+ "id": 36722,
12781
12781
  "nameLocation": "-1:-1:-1",
12782
12782
  "nodeType": "ImportDirective",
12783
- "scope": 36828,
12783
+ "scope": 36847,
12784
12784
  "sourceUnit": 637,
12785
12785
  "src": "239:69:102",
12786
12786
  "symbolAliases": [
12787
12787
  {
12788
12788
  "foreign": {
12789
- "id": 36702,
12789
+ "id": 36721,
12790
12790
  "name": "Ownable",
12791
12791
  "nodeType": "Identifier",
12792
12792
  "overloadedDeclarations": [],
@@ -12804,60 +12804,60 @@
12804
12804
  "baseContracts": [
12805
12805
  {
12806
12806
  "baseName": {
12807
- "id": 36705,
12807
+ "id": 36724,
12808
12808
  "name": "Ownable",
12809
12809
  "nodeType": "IdentifierPath",
12810
12810
  "referencedDeclaration": 636,
12811
- "src": "478:7:102"
12811
+ "src": "477:7:102"
12812
12812
  },
12813
- "id": 36706,
12813
+ "id": 36725,
12814
12814
  "nodeType": "InheritanceSpecifier",
12815
- "src": "478:7:102"
12815
+ "src": "477:7:102"
12816
12816
  },
12817
12817
  {
12818
12818
  "baseName": {
12819
- "id": 36707,
12819
+ "id": 36726,
12820
12820
  "name": "SuperfluidGovernanceBase",
12821
12821
  "nodeType": "IdentifierPath",
12822
12822
  "referencedDeclaration": 15969,
12823
- "src": "491:24:102"
12823
+ "src": "490:24:102"
12824
12824
  },
12825
- "id": 36708,
12825
+ "id": 36727,
12826
12826
  "nodeType": "InheritanceSpecifier",
12827
- "src": "491:24:102"
12827
+ "src": "490:24:102"
12828
12828
  }
12829
12829
  ],
12830
12830
  "canonicalName": "TestGovernance",
12831
12831
  "contractDependencies": [],
12832
12832
  "contractKind": "contract",
12833
12833
  "documentation": {
12834
- "id": 36704,
12834
+ "id": 36723,
12835
12835
  "nodeType": "StructuredDocumentation",
12836
- "src": "311:135:102",
12837
- "text": " @title Test governance contract\n @author Superfluid \n @dev A initializable version of the governance for testing purpose"
12836
+ "src": "311:134:102",
12837
+ "text": " @title Test governance contract\n @author Superfluid\n @dev A initializable version of the governance for testing purpose"
12838
12838
  },
12839
12839
  "fullyImplemented": true,
12840
- "id": 36827,
12840
+ "id": 36846,
12841
12841
  "linearizedBaseContracts": [
12842
- 36827,
12842
+ 36846,
12843
12843
  15969,
12844
12844
  18447,
12845
12845
  636,
12846
12846
  2502
12847
12847
  ],
12848
12848
  "name": "TestGovernance",
12849
- "nameLocation": "456:14:102",
12849
+ "nameLocation": "455:14:102",
12850
12850
  "nodeType": "ContractDefinition",
12851
12851
  "nodes": [
12852
12852
  {
12853
12853
  "constant": false,
12854
- "id": 36711,
12854
+ "id": 36730,
12855
12855
  "mutability": "mutable",
12856
12856
  "name": "_host",
12857
- "nameLocation": "542:5:102",
12857
+ "nameLocation": "541:5:102",
12858
12858
  "nodeType": "VariableDeclaration",
12859
- "scope": 36827,
12860
- "src": "522:25:102",
12859
+ "scope": 36846,
12860
+ "src": "521:25:102",
12861
12861
  "stateVariable": true,
12862
12862
  "storageLocation": "default",
12863
12863
  "typeDescriptions": {
@@ -12865,17 +12865,17 @@
12865
12865
  "typeString": "contract ISuperfluid"
12866
12866
  },
12867
12867
  "typeName": {
12868
- "id": 36710,
12868
+ "id": 36729,
12869
12869
  "nodeType": "UserDefinedTypeName",
12870
12870
  "pathNode": {
12871
- "id": 36709,
12871
+ "id": 36728,
12872
12872
  "name": "ISuperfluid",
12873
12873
  "nodeType": "IdentifierPath",
12874
12874
  "referencedDeclaration": 18324,
12875
- "src": "522:11:102"
12875
+ "src": "521:11:102"
12876
12876
  },
12877
12877
  "referencedDeclaration": 18324,
12878
- "src": "522:11:102",
12878
+ "src": "521:11:102",
12879
12879
  "typeDescriptions": {
12880
12880
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
12881
12881
  "typeString": "contract ISuperfluid"
@@ -12885,9 +12885,9 @@
12885
12885
  },
12886
12886
  {
12887
12887
  "body": {
12888
- "id": 36803,
12888
+ "id": 36822,
12889
12889
  "nodeType": "Block",
12890
- "src": "770:499:102",
12890
+ "src": "769:499:102",
12891
12891
  "statements": [
12892
12892
  {
12893
12893
  "expression": {
@@ -12897,7 +12897,7 @@
12897
12897
  "typeIdentifier": "t_address",
12898
12898
  "typeString": "address"
12899
12899
  },
12900
- "id": 36735,
12900
+ "id": 36754,
12901
12901
  "isConstant": false,
12902
12902
  "isLValue": false,
12903
12903
  "isPure": false,
@@ -12905,12 +12905,12 @@
12905
12905
  "leftExpression": {
12906
12906
  "arguments": [
12907
12907
  {
12908
- "id": 36729,
12908
+ "id": 36748,
12909
12909
  "name": "host",
12910
12910
  "nodeType": "Identifier",
12911
12911
  "overloadedDeclarations": [],
12912
- "referencedDeclaration": 36714,
12913
- "src": "831:4:102",
12912
+ "referencedDeclaration": 36733,
12913
+ "src": "830:4:102",
12914
12914
  "typeDescriptions": {
12915
12915
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
12916
12916
  "typeString": "contract ISuperfluid"
@@ -12924,26 +12924,26 @@
12924
12924
  "typeString": "contract ISuperfluid"
12925
12925
  }
12926
12926
  ],
12927
- "id": 36728,
12927
+ "id": 36747,
12928
12928
  "isConstant": false,
12929
12929
  "isLValue": false,
12930
12930
  "isPure": true,
12931
12931
  "lValueRequested": false,
12932
12932
  "nodeType": "ElementaryTypeNameExpression",
12933
- "src": "823:7:102",
12933
+ "src": "822:7:102",
12934
12934
  "typeDescriptions": {
12935
12935
  "typeIdentifier": "t_type$_t_address_$",
12936
12936
  "typeString": "type(address)"
12937
12937
  },
12938
12938
  "typeName": {
12939
- "id": 36727,
12939
+ "id": 36746,
12940
12940
  "name": "address",
12941
12941
  "nodeType": "ElementaryTypeName",
12942
- "src": "823:7:102",
12942
+ "src": "822:7:102",
12943
12943
  "typeDescriptions": {}
12944
12944
  }
12945
12945
  },
12946
- "id": 36730,
12946
+ "id": 36749,
12947
12947
  "isConstant": false,
12948
12948
  "isLValue": false,
12949
12949
  "isPure": false,
@@ -12951,7 +12951,7 @@
12951
12951
  "lValueRequested": false,
12952
12952
  "names": [],
12953
12953
  "nodeType": "FunctionCall",
12954
- "src": "823:13:102",
12954
+ "src": "822:13:102",
12955
12955
  "tryCall": false,
12956
12956
  "typeDescriptions": {
12957
12957
  "typeIdentifier": "t_address",
@@ -12964,14 +12964,14 @@
12964
12964
  "arguments": [
12965
12965
  {
12966
12966
  "hexValue": "30",
12967
- "id": 36733,
12967
+ "id": 36752,
12968
12968
  "isConstant": false,
12969
12969
  "isLValue": false,
12970
12970
  "isPure": true,
12971
12971
  "kind": "number",
12972
12972
  "lValueRequested": false,
12973
12973
  "nodeType": "Literal",
12974
- "src": "848:1:102",
12974
+ "src": "847:1:102",
12975
12975
  "typeDescriptions": {
12976
12976
  "typeIdentifier": "t_rational_0_by_1",
12977
12977
  "typeString": "int_const 0"
@@ -12986,26 +12986,26 @@
12986
12986
  "typeString": "int_const 0"
12987
12987
  }
12988
12988
  ],
12989
- "id": 36732,
12989
+ "id": 36751,
12990
12990
  "isConstant": false,
12991
12991
  "isLValue": false,
12992
12992
  "isPure": true,
12993
12993
  "lValueRequested": false,
12994
12994
  "nodeType": "ElementaryTypeNameExpression",
12995
- "src": "840:7:102",
12995
+ "src": "839:7:102",
12996
12996
  "typeDescriptions": {
12997
12997
  "typeIdentifier": "t_type$_t_address_$",
12998
12998
  "typeString": "type(address)"
12999
12999
  },
13000
13000
  "typeName": {
13001
- "id": 36731,
13001
+ "id": 36750,
13002
13002
  "name": "address",
13003
13003
  "nodeType": "ElementaryTypeName",
13004
- "src": "840:7:102",
13004
+ "src": "839:7:102",
13005
13005
  "typeDescriptions": {}
13006
13006
  }
13007
13007
  },
13008
- "id": 36734,
13008
+ "id": 36753,
13009
13009
  "isConstant": false,
13010
13010
  "isLValue": false,
13011
13011
  "isPure": true,
@@ -13013,14 +13013,14 @@
13013
13013
  "lValueRequested": false,
13014
13014
  "names": [],
13015
13015
  "nodeType": "FunctionCall",
13016
- "src": "840:10:102",
13016
+ "src": "839:10:102",
13017
13017
  "tryCall": false,
13018
13018
  "typeDescriptions": {
13019
13019
  "typeIdentifier": "t_address",
13020
13020
  "typeString": "address"
13021
13021
  }
13022
13022
  },
13023
- "src": "823:27:102",
13023
+ "src": "822:27:102",
13024
13024
  "typeDescriptions": {
13025
13025
  "typeIdentifier": "t_bool",
13026
13026
  "typeString": "bool"
@@ -13034,18 +13034,18 @@
13034
13034
  "typeString": "bool"
13035
13035
  }
13036
13036
  ],
13037
- "id": 36726,
13037
+ "id": 36745,
13038
13038
  "name": "assert",
13039
13039
  "nodeType": "Identifier",
13040
13040
  "overloadedDeclarations": [],
13041
13041
  "referencedDeclaration": 4294967293,
13042
- "src": "816:6:102",
13042
+ "src": "815:6:102",
13043
13043
  "typeDescriptions": {
13044
13044
  "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
13045
13045
  "typeString": "function (bool) pure"
13046
13046
  }
13047
13047
  },
13048
- "id": 36736,
13048
+ "id": 36755,
13049
13049
  "isConstant": false,
13050
13050
  "isLValue": false,
13051
13051
  "isPure": false,
@@ -13053,16 +13053,16 @@
13053
13053
  "lValueRequested": false,
13054
13054
  "names": [],
13055
13055
  "nodeType": "FunctionCall",
13056
- "src": "816:35:102",
13056
+ "src": "815:35:102",
13057
13057
  "tryCall": false,
13058
13058
  "typeDescriptions": {
13059
13059
  "typeIdentifier": "t_tuple$__$",
13060
13060
  "typeString": "tuple()"
13061
13061
  }
13062
13062
  },
13063
- "id": 36737,
13063
+ "id": 36756,
13064
13064
  "nodeType": "ExpressionStatement",
13065
- "src": "816:35:102"
13065
+ "src": "815:35:102"
13066
13066
  },
13067
13067
  {
13068
13068
  "expression": {
@@ -13072,7 +13072,7 @@
13072
13072
  "typeIdentifier": "t_address",
13073
13073
  "typeString": "address"
13074
13074
  },
13075
- "id": 36747,
13075
+ "id": 36766,
13076
13076
  "isConstant": false,
13077
13077
  "isLValue": false,
13078
13078
  "isPure": false,
@@ -13080,12 +13080,12 @@
13080
13080
  "leftExpression": {
13081
13081
  "arguments": [
13082
13082
  {
13083
- "id": 36741,
13083
+ "id": 36760,
13084
13084
  "name": "_host",
13085
13085
  "nodeType": "Identifier",
13086
13086
  "overloadedDeclarations": [],
13087
- "referencedDeclaration": 36711,
13088
- "src": "876:5:102",
13087
+ "referencedDeclaration": 36730,
13088
+ "src": "875:5:102",
13089
13089
  "typeDescriptions": {
13090
13090
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
13091
13091
  "typeString": "contract ISuperfluid"
@@ -13099,26 +13099,26 @@
13099
13099
  "typeString": "contract ISuperfluid"
13100
13100
  }
13101
13101
  ],
13102
- "id": 36740,
13102
+ "id": 36759,
13103
13103
  "isConstant": false,
13104
13104
  "isLValue": false,
13105
13105
  "isPure": true,
13106
13106
  "lValueRequested": false,
13107
13107
  "nodeType": "ElementaryTypeNameExpression",
13108
- "src": "868:7:102",
13108
+ "src": "867:7:102",
13109
13109
  "typeDescriptions": {
13110
13110
  "typeIdentifier": "t_type$_t_address_$",
13111
13111
  "typeString": "type(address)"
13112
13112
  },
13113
13113
  "typeName": {
13114
- "id": 36739,
13114
+ "id": 36758,
13115
13115
  "name": "address",
13116
13116
  "nodeType": "ElementaryTypeName",
13117
- "src": "868:7:102",
13117
+ "src": "867:7:102",
13118
13118
  "typeDescriptions": {}
13119
13119
  }
13120
13120
  },
13121
- "id": 36742,
13121
+ "id": 36761,
13122
13122
  "isConstant": false,
13123
13123
  "isLValue": false,
13124
13124
  "isPure": false,
@@ -13126,7 +13126,7 @@
13126
13126
  "lValueRequested": false,
13127
13127
  "names": [],
13128
13128
  "nodeType": "FunctionCall",
13129
- "src": "868:14:102",
13129
+ "src": "867:14:102",
13130
13130
  "tryCall": false,
13131
13131
  "typeDescriptions": {
13132
13132
  "typeIdentifier": "t_address",
@@ -13139,14 +13139,14 @@
13139
13139
  "arguments": [
13140
13140
  {
13141
13141
  "hexValue": "30",
13142
- "id": 36745,
13142
+ "id": 36764,
13143
13143
  "isConstant": false,
13144
13144
  "isLValue": false,
13145
13145
  "isPure": true,
13146
13146
  "kind": "number",
13147
13147
  "lValueRequested": false,
13148
13148
  "nodeType": "Literal",
13149
- "src": "894:1:102",
13149
+ "src": "893:1:102",
13150
13150
  "typeDescriptions": {
13151
13151
  "typeIdentifier": "t_rational_0_by_1",
13152
13152
  "typeString": "int_const 0"
@@ -13161,26 +13161,26 @@
13161
13161
  "typeString": "int_const 0"
13162
13162
  }
13163
13163
  ],
13164
- "id": 36744,
13164
+ "id": 36763,
13165
13165
  "isConstant": false,
13166
13166
  "isLValue": false,
13167
13167
  "isPure": true,
13168
13168
  "lValueRequested": false,
13169
13169
  "nodeType": "ElementaryTypeNameExpression",
13170
- "src": "886:7:102",
13170
+ "src": "885:7:102",
13171
13171
  "typeDescriptions": {
13172
13172
  "typeIdentifier": "t_type$_t_address_$",
13173
13173
  "typeString": "type(address)"
13174
13174
  },
13175
13175
  "typeName": {
13176
- "id": 36743,
13176
+ "id": 36762,
13177
13177
  "name": "address",
13178
13178
  "nodeType": "ElementaryTypeName",
13179
- "src": "886:7:102",
13179
+ "src": "885:7:102",
13180
13180
  "typeDescriptions": {}
13181
13181
  }
13182
13182
  },
13183
- "id": 36746,
13183
+ "id": 36765,
13184
13184
  "isConstant": false,
13185
13185
  "isLValue": false,
13186
13186
  "isPure": true,
@@ -13188,14 +13188,14 @@
13188
13188
  "lValueRequested": false,
13189
13189
  "names": [],
13190
13190
  "nodeType": "FunctionCall",
13191
- "src": "886:10:102",
13191
+ "src": "885:10:102",
13192
13192
  "tryCall": false,
13193
13193
  "typeDescriptions": {
13194
13194
  "typeIdentifier": "t_address",
13195
13195
  "typeString": "address"
13196
13196
  }
13197
13197
  },
13198
- "src": "868:28:102",
13198
+ "src": "867:28:102",
13199
13199
  "typeDescriptions": {
13200
13200
  "typeIdentifier": "t_bool",
13201
13201
  "typeString": "bool"
@@ -13209,18 +13209,18 @@
13209
13209
  "typeString": "bool"
13210
13210
  }
13211
13211
  ],
13212
- "id": 36738,
13212
+ "id": 36757,
13213
13213
  "name": "assert",
13214
13214
  "nodeType": "Identifier",
13215
13215
  "overloadedDeclarations": [],
13216
13216
  "referencedDeclaration": 4294967293,
13217
- "src": "861:6:102",
13217
+ "src": "860:6:102",
13218
13218
  "typeDescriptions": {
13219
13219
  "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
13220
13220
  "typeString": "function (bool) pure"
13221
13221
  }
13222
13222
  },
13223
- "id": 36748,
13223
+ "id": 36767,
13224
13224
  "isConstant": false,
13225
13225
  "isLValue": false,
13226
13226
  "isPure": false,
@@ -13228,31 +13228,31 @@
13228
13228
  "lValueRequested": false,
13229
13229
  "names": [],
13230
13230
  "nodeType": "FunctionCall",
13231
- "src": "861:36:102",
13231
+ "src": "860:36:102",
13232
13232
  "tryCall": false,
13233
13233
  "typeDescriptions": {
13234
13234
  "typeIdentifier": "t_tuple$__$",
13235
13235
  "typeString": "tuple()"
13236
13236
  }
13237
13237
  },
13238
- "id": 36749,
13238
+ "id": 36768,
13239
13239
  "nodeType": "ExpressionStatement",
13240
- "src": "861:36:102"
13240
+ "src": "860:36:102"
13241
13241
  },
13242
13242
  {
13243
13243
  "expression": {
13244
- "id": 36752,
13244
+ "id": 36771,
13245
13245
  "isConstant": false,
13246
13246
  "isLValue": false,
13247
13247
  "isPure": false,
13248
13248
  "lValueRequested": false,
13249
13249
  "leftHandSide": {
13250
- "id": 36750,
13250
+ "id": 36769,
13251
13251
  "name": "_host",
13252
13252
  "nodeType": "Identifier",
13253
13253
  "overloadedDeclarations": [],
13254
- "referencedDeclaration": 36711,
13255
- "src": "908:5:102",
13254
+ "referencedDeclaration": 36730,
13255
+ "src": "907:5:102",
13256
13256
  "typeDescriptions": {
13257
13257
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
13258
13258
  "typeString": "contract ISuperfluid"
@@ -13261,37 +13261,37 @@
13261
13261
  "nodeType": "Assignment",
13262
13262
  "operator": "=",
13263
13263
  "rightHandSide": {
13264
- "id": 36751,
13264
+ "id": 36770,
13265
13265
  "name": "host",
13266
13266
  "nodeType": "Identifier",
13267
13267
  "overloadedDeclarations": [],
13268
- "referencedDeclaration": 36714,
13269
- "src": "916:4:102",
13268
+ "referencedDeclaration": 36733,
13269
+ "src": "915:4:102",
13270
13270
  "typeDescriptions": {
13271
13271
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
13272
13272
  "typeString": "contract ISuperfluid"
13273
13273
  }
13274
13274
  },
13275
- "src": "908:12:102",
13275
+ "src": "907:12:102",
13276
13276
  "typeDescriptions": {
13277
13277
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
13278
13278
  "typeString": "contract ISuperfluid"
13279
13279
  }
13280
13280
  },
13281
- "id": 36753,
13281
+ "id": 36772,
13282
13282
  "nodeType": "ExpressionStatement",
13283
- "src": "908:12:102"
13283
+ "src": "907:12:102"
13284
13284
  },
13285
13285
  {
13286
13286
  "expression": {
13287
13287
  "arguments": [
13288
13288
  {
13289
- "id": 36755,
13289
+ "id": 36774,
13290
13290
  "name": "_host",
13291
13291
  "nodeType": "Identifier",
13292
13292
  "overloadedDeclarations": [],
13293
- "referencedDeclaration": 36711,
13294
- "src": "948:5:102",
13293
+ "referencedDeclaration": 36730,
13294
+ "src": "947:5:102",
13295
13295
  "typeDescriptions": {
13296
13296
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
13297
13297
  "typeString": "contract ISuperfluid"
@@ -13303,14 +13303,14 @@
13303
13303
  "arguments": [
13304
13304
  {
13305
13305
  "hexValue": "30",
13306
- "id": 36759,
13306
+ "id": 36778,
13307
13307
  "isConstant": false,
13308
13308
  "isLValue": false,
13309
13309
  "isPure": true,
13310
13310
  "kind": "number",
13311
13311
  "lValueRequested": false,
13312
13312
  "nodeType": "Literal",
13313
- "src": "980:1:102",
13313
+ "src": "979:1:102",
13314
13314
  "typeDescriptions": {
13315
13315
  "typeIdentifier": "t_rational_0_by_1",
13316
13316
  "typeString": "int_const 0"
@@ -13325,26 +13325,26 @@
13325
13325
  "typeString": "int_const 0"
13326
13326
  }
13327
13327
  ],
13328
- "id": 36758,
13328
+ "id": 36777,
13329
13329
  "isConstant": false,
13330
13330
  "isLValue": false,
13331
13331
  "isPure": true,
13332
13332
  "lValueRequested": false,
13333
13333
  "nodeType": "ElementaryTypeNameExpression",
13334
- "src": "972:7:102",
13334
+ "src": "971:7:102",
13335
13335
  "typeDescriptions": {
13336
13336
  "typeIdentifier": "t_type$_t_address_$",
13337
13337
  "typeString": "type(address)"
13338
13338
  },
13339
13339
  "typeName": {
13340
- "id": 36757,
13340
+ "id": 36776,
13341
13341
  "name": "address",
13342
13342
  "nodeType": "ElementaryTypeName",
13343
- "src": "972:7:102",
13343
+ "src": "971:7:102",
13344
13344
  "typeDescriptions": {}
13345
13345
  }
13346
13346
  },
13347
- "id": 36760,
13347
+ "id": 36779,
13348
13348
  "isConstant": false,
13349
13349
  "isLValue": false,
13350
13350
  "isPure": true,
@@ -13352,7 +13352,7 @@
13352
13352
  "lValueRequested": false,
13353
13353
  "names": [],
13354
13354
  "nodeType": "FunctionCall",
13355
- "src": "972:10:102",
13355
+ "src": "971:10:102",
13356
13356
  "tryCall": false,
13357
13357
  "typeDescriptions": {
13358
13358
  "typeIdentifier": "t_address",
@@ -13367,18 +13367,18 @@
13367
13367
  "typeString": "address"
13368
13368
  }
13369
13369
  ],
13370
- "id": 36756,
13370
+ "id": 36775,
13371
13371
  "name": "ISuperfluidToken",
13372
13372
  "nodeType": "Identifier",
13373
13373
  "overloadedDeclarations": [],
13374
13374
  "referencedDeclaration": 18721,
13375
- "src": "955:16:102",
13375
+ "src": "954:16:102",
13376
13376
  "typeDescriptions": {
13377
13377
  "typeIdentifier": "t_type$_t_contract$_ISuperfluidToken_$18721_$",
13378
13378
  "typeString": "type(contract ISuperfluidToken)"
13379
13379
  }
13380
13380
  },
13381
- "id": 36761,
13381
+ "id": 36780,
13382
13382
  "isConstant": false,
13383
13383
  "isLValue": false,
13384
13384
  "isPure": true,
@@ -13386,7 +13386,7 @@
13386
13386
  "lValueRequested": false,
13387
13387
  "names": [],
13388
13388
  "nodeType": "FunctionCall",
13389
- "src": "955:28:102",
13389
+ "src": "954:28:102",
13390
13390
  "tryCall": false,
13391
13391
  "typeDescriptions": {
13392
13392
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
@@ -13394,12 +13394,12 @@
13394
13394
  }
13395
13395
  },
13396
13396
  {
13397
- "id": 36762,
13397
+ "id": 36781,
13398
13398
  "name": "rewardAddress",
13399
13399
  "nodeType": "Identifier",
13400
13400
  "overloadedDeclarations": [],
13401
- "referencedDeclaration": 36716,
13402
- "src": "985:13:102",
13401
+ "referencedDeclaration": 36735,
13402
+ "src": "984:13:102",
13403
13403
  "typeDescriptions": {
13404
13404
  "typeIdentifier": "t_address",
13405
13405
  "typeString": "address"
@@ -13421,18 +13421,18 @@
13421
13421
  "typeString": "address"
13422
13422
  }
13423
13423
  ],
13424
- "id": 36754,
13424
+ "id": 36773,
13425
13425
  "name": "setRewardAddress",
13426
13426
  "nodeType": "Identifier",
13427
13427
  "overloadedDeclarations": [],
13428
13428
  "referencedDeclaration": 15474,
13429
- "src": "931:16:102",
13429
+ "src": "930:16:102",
13430
13430
  "typeDescriptions": {
13431
13431
  "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISuperfluid_$18324_$_t_contract$_ISuperfluidToken_$18721_$_t_address_$returns$__$",
13432
13432
  "typeString": "function (contract ISuperfluid,contract ISuperfluidToken,address)"
13433
13433
  }
13434
13434
  },
13435
- "id": 36763,
13435
+ "id": 36782,
13436
13436
  "isConstant": false,
13437
13437
  "isLValue": false,
13438
13438
  "isPure": false,
@@ -13440,27 +13440,27 @@
13440
13440
  "lValueRequested": false,
13441
13441
  "names": [],
13442
13442
  "nodeType": "FunctionCall",
13443
- "src": "931:68:102",
13443
+ "src": "930:68:102",
13444
13444
  "tryCall": false,
13445
13445
  "typeDescriptions": {
13446
13446
  "typeIdentifier": "t_tuple$__$",
13447
13447
  "typeString": "tuple()"
13448
13448
  }
13449
13449
  },
13450
- "id": 36764,
13450
+ "id": 36783,
13451
13451
  "nodeType": "ExpressionStatement",
13452
- "src": "931:68:102"
13452
+ "src": "930:68:102"
13453
13453
  },
13454
13454
  {
13455
13455
  "expression": {
13456
13456
  "arguments": [
13457
13457
  {
13458
- "id": 36766,
13458
+ "id": 36785,
13459
13459
  "name": "host",
13460
13460
  "nodeType": "Identifier",
13461
13461
  "overloadedDeclarations": [],
13462
- "referencedDeclaration": 36714,
13463
- "src": "1023:4:102",
13462
+ "referencedDeclaration": 36733,
13463
+ "src": "1022:4:102",
13464
13464
  "typeDescriptions": {
13465
13465
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
13466
13466
  "typeString": "contract ISuperfluid"
@@ -13472,14 +13472,14 @@
13472
13472
  "arguments": [
13473
13473
  {
13474
13474
  "hexValue": "30",
13475
- "id": 36770,
13475
+ "id": 36789,
13476
13476
  "isConstant": false,
13477
13477
  "isLValue": false,
13478
13478
  "isPure": true,
13479
13479
  "kind": "number",
13480
13480
  "lValueRequested": false,
13481
13481
  "nodeType": "Literal",
13482
- "src": "1054:1:102",
13482
+ "src": "1053:1:102",
13483
13483
  "typeDescriptions": {
13484
13484
  "typeIdentifier": "t_rational_0_by_1",
13485
13485
  "typeString": "int_const 0"
@@ -13494,26 +13494,26 @@
13494
13494
  "typeString": "int_const 0"
13495
13495
  }
13496
13496
  ],
13497
- "id": 36769,
13497
+ "id": 36788,
13498
13498
  "isConstant": false,
13499
13499
  "isLValue": false,
13500
13500
  "isPure": true,
13501
13501
  "lValueRequested": false,
13502
13502
  "nodeType": "ElementaryTypeNameExpression",
13503
- "src": "1046:7:102",
13503
+ "src": "1045:7:102",
13504
13504
  "typeDescriptions": {
13505
13505
  "typeIdentifier": "t_type$_t_address_$",
13506
13506
  "typeString": "type(address)"
13507
13507
  },
13508
13508
  "typeName": {
13509
- "id": 36768,
13509
+ "id": 36787,
13510
13510
  "name": "address",
13511
13511
  "nodeType": "ElementaryTypeName",
13512
- "src": "1046:7:102",
13512
+ "src": "1045:7:102",
13513
13513
  "typeDescriptions": {}
13514
13514
  }
13515
13515
  },
13516
- "id": 36771,
13516
+ "id": 36790,
13517
13517
  "isConstant": false,
13518
13518
  "isLValue": false,
13519
13519
  "isPure": true,
@@ -13521,7 +13521,7 @@
13521
13521
  "lValueRequested": false,
13522
13522
  "names": [],
13523
13523
  "nodeType": "FunctionCall",
13524
- "src": "1046:10:102",
13524
+ "src": "1045:10:102",
13525
13525
  "tryCall": false,
13526
13526
  "typeDescriptions": {
13527
13527
  "typeIdentifier": "t_address",
@@ -13536,18 +13536,18 @@
13536
13536
  "typeString": "address"
13537
13537
  }
13538
13538
  ],
13539
- "id": 36767,
13539
+ "id": 36786,
13540
13540
  "name": "ISuperfluidToken",
13541
13541
  "nodeType": "Identifier",
13542
13542
  "overloadedDeclarations": [],
13543
13543
  "referencedDeclaration": 18721,
13544
- "src": "1029:16:102",
13544
+ "src": "1028:16:102",
13545
13545
  "typeDescriptions": {
13546
13546
  "typeIdentifier": "t_type$_t_contract$_ISuperfluidToken_$18721_$",
13547
13547
  "typeString": "type(contract ISuperfluidToken)"
13548
13548
  }
13549
13549
  },
13550
- "id": 36772,
13550
+ "id": 36791,
13551
13551
  "isConstant": false,
13552
13552
  "isLValue": false,
13553
13553
  "isPure": true,
@@ -13555,7 +13555,7 @@
13555
13555
  "lValueRequested": false,
13556
13556
  "names": [],
13557
13557
  "nodeType": "FunctionCall",
13558
- "src": "1029:28:102",
13558
+ "src": "1028:28:102",
13559
13559
  "tryCall": false,
13560
13560
  "typeDescriptions": {
13561
13561
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
@@ -13563,24 +13563,24 @@
13563
13563
  }
13564
13564
  },
13565
13565
  {
13566
- "id": 36773,
13566
+ "id": 36792,
13567
13567
  "name": "liquidationPeriod",
13568
13568
  "nodeType": "Identifier",
13569
13569
  "overloadedDeclarations": [],
13570
- "referencedDeclaration": 36718,
13571
- "src": "1059:17:102",
13570
+ "referencedDeclaration": 36737,
13571
+ "src": "1058:17:102",
13572
13572
  "typeDescriptions": {
13573
13573
  "typeIdentifier": "t_uint256",
13574
13574
  "typeString": "uint256"
13575
13575
  }
13576
13576
  },
13577
13577
  {
13578
- "id": 36774,
13578
+ "id": 36793,
13579
13579
  "name": "patricianPeriod",
13580
13580
  "nodeType": "Identifier",
13581
13581
  "overloadedDeclarations": [],
13582
- "referencedDeclaration": 36720,
13583
- "src": "1078:15:102",
13582
+ "referencedDeclaration": 36739,
13583
+ "src": "1077:15:102",
13584
13584
  "typeDescriptions": {
13585
13585
  "typeIdentifier": "t_uint256",
13586
13586
  "typeString": "uint256"
@@ -13606,18 +13606,18 @@
13606
13606
  "typeString": "uint256"
13607
13607
  }
13608
13608
  ],
13609
- "id": 36765,
13609
+ "id": 36784,
13610
13610
  "name": "setPPPConfig",
13611
13611
  "nodeType": "Identifier",
13612
13612
  "overloadedDeclarations": [],
13613
13613
  "referencedDeclaration": 15627,
13614
- "src": "1010:12:102",
13614
+ "src": "1009:12:102",
13615
13615
  "typeDescriptions": {
13616
13616
  "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISuperfluid_$18324_$_t_contract$_ISuperfluidToken_$18721_$_t_uint256_$_t_uint256_$returns$__$",
13617
13617
  "typeString": "function (contract ISuperfluid,contract ISuperfluidToken,uint256,uint256)"
13618
13618
  }
13619
13619
  },
13620
- "id": 36775,
13620
+ "id": 36794,
13621
13621
  "isConstant": false,
13622
13622
  "isLValue": false,
13623
13623
  "isPure": false,
@@ -13625,33 +13625,33 @@
13625
13625
  "lValueRequested": false,
13626
13626
  "names": [],
13627
13627
  "nodeType": "FunctionCall",
13628
- "src": "1010:84:102",
13628
+ "src": "1009:84:102",
13629
13629
  "tryCall": false,
13630
13630
  "typeDescriptions": {
13631
13631
  "typeIdentifier": "t_tuple$__$",
13632
13632
  "typeString": "tuple()"
13633
13633
  }
13634
13634
  },
13635
- "id": 36776,
13635
+ "id": 36795,
13636
13636
  "nodeType": "ExpressionStatement",
13637
- "src": "1010:84:102"
13637
+ "src": "1009:84:102"
13638
13638
  },
13639
13639
  {
13640
13640
  "body": {
13641
- "id": 36801,
13641
+ "id": 36820,
13642
13642
  "nodeType": "Block",
13643
- "src": "1157:106:102",
13643
+ "src": "1156:106:102",
13644
13644
  "statements": [
13645
13645
  {
13646
13646
  "expression": {
13647
13647
  "arguments": [
13648
13648
  {
13649
- "id": 36789,
13649
+ "id": 36808,
13650
13650
  "name": "_host",
13651
13651
  "nodeType": "Identifier",
13652
13652
  "overloadedDeclarations": [],
13653
- "referencedDeclaration": 36711,
13654
- "src": "1194:5:102",
13653
+ "referencedDeclaration": 36730,
13654
+ "src": "1193:5:102",
13655
13655
  "typeDescriptions": {
13656
13656
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
13657
13657
  "typeString": "contract ISuperfluid"
@@ -13663,14 +13663,14 @@
13663
13663
  "arguments": [
13664
13664
  {
13665
13665
  "hexValue": "30",
13666
- "id": 36793,
13666
+ "id": 36812,
13667
13667
  "isConstant": false,
13668
13668
  "isLValue": false,
13669
13669
  "isPure": true,
13670
13670
  "kind": "number",
13671
13671
  "lValueRequested": false,
13672
13672
  "nodeType": "Literal",
13673
- "src": "1226:1:102",
13673
+ "src": "1225:1:102",
13674
13674
  "typeDescriptions": {
13675
13675
  "typeIdentifier": "t_rational_0_by_1",
13676
13676
  "typeString": "int_const 0"
@@ -13685,26 +13685,26 @@
13685
13685
  "typeString": "int_const 0"
13686
13686
  }
13687
13687
  ],
13688
- "id": 36792,
13688
+ "id": 36811,
13689
13689
  "isConstant": false,
13690
13690
  "isLValue": false,
13691
13691
  "isPure": true,
13692
13692
  "lValueRequested": false,
13693
13693
  "nodeType": "ElementaryTypeNameExpression",
13694
- "src": "1218:7:102",
13694
+ "src": "1217:7:102",
13695
13695
  "typeDescriptions": {
13696
13696
  "typeIdentifier": "t_type$_t_address_$",
13697
13697
  "typeString": "type(address)"
13698
13698
  },
13699
13699
  "typeName": {
13700
- "id": 36791,
13700
+ "id": 36810,
13701
13701
  "name": "address",
13702
13702
  "nodeType": "ElementaryTypeName",
13703
- "src": "1218:7:102",
13703
+ "src": "1217:7:102",
13704
13704
  "typeDescriptions": {}
13705
13705
  }
13706
13706
  },
13707
- "id": 36794,
13707
+ "id": 36813,
13708
13708
  "isConstant": false,
13709
13709
  "isLValue": false,
13710
13710
  "isPure": true,
@@ -13712,7 +13712,7 @@
13712
13712
  "lValueRequested": false,
13713
13713
  "names": [],
13714
13714
  "nodeType": "FunctionCall",
13715
- "src": "1218:10:102",
13715
+ "src": "1217:10:102",
13716
13716
  "tryCall": false,
13717
13717
  "typeDescriptions": {
13718
13718
  "typeIdentifier": "t_address",
@@ -13727,18 +13727,18 @@
13727
13727
  "typeString": "address"
13728
13728
  }
13729
13729
  ],
13730
- "id": 36790,
13730
+ "id": 36809,
13731
13731
  "name": "ISuperfluidToken",
13732
13732
  "nodeType": "Identifier",
13733
13733
  "overloadedDeclarations": [],
13734
13734
  "referencedDeclaration": 18721,
13735
- "src": "1201:16:102",
13735
+ "src": "1200:16:102",
13736
13736
  "typeDescriptions": {
13737
13737
  "typeIdentifier": "t_type$_t_contract$_ISuperfluidToken_$18721_$",
13738
13738
  "typeString": "type(contract ISuperfluidToken)"
13739
13739
  }
13740
13740
  },
13741
- "id": 36795,
13741
+ "id": 36814,
13742
13742
  "isConstant": false,
13743
13743
  "isLValue": false,
13744
13744
  "isPure": true,
@@ -13746,7 +13746,7 @@
13746
13746
  "lValueRequested": false,
13747
13747
  "names": [],
13748
13748
  "nodeType": "FunctionCall",
13749
- "src": "1201:28:102",
13749
+ "src": "1200:28:102",
13750
13750
  "tryCall": false,
13751
13751
  "typeDescriptions": {
13752
13752
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
@@ -13755,25 +13755,25 @@
13755
13755
  },
13756
13756
  {
13757
13757
  "baseExpression": {
13758
- "id": 36796,
13758
+ "id": 36815,
13759
13759
  "name": "trustedForwarders",
13760
13760
  "nodeType": "Identifier",
13761
13761
  "overloadedDeclarations": [],
13762
- "referencedDeclaration": 36723,
13763
- "src": "1231:17:102",
13762
+ "referencedDeclaration": 36742,
13763
+ "src": "1230:17:102",
13764
13764
  "typeDescriptions": {
13765
13765
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
13766
13766
  "typeString": "address[] memory"
13767
13767
  }
13768
13768
  },
13769
- "id": 36798,
13769
+ "id": 36817,
13770
13770
  "indexExpression": {
13771
- "id": 36797,
13771
+ "id": 36816,
13772
13772
  "name": "i",
13773
13773
  "nodeType": "Identifier",
13774
13774
  "overloadedDeclarations": [],
13775
- "referencedDeclaration": 36778,
13776
- "src": "1249:1:102",
13775
+ "referencedDeclaration": 36797,
13776
+ "src": "1248:1:102",
13777
13777
  "typeDescriptions": {
13778
13778
  "typeIdentifier": "t_uint256",
13779
13779
  "typeString": "uint256"
@@ -13784,7 +13784,7 @@
13784
13784
  "isPure": false,
13785
13785
  "lValueRequested": false,
13786
13786
  "nodeType": "IndexAccess",
13787
- "src": "1231:20:102",
13787
+ "src": "1230:20:102",
13788
13788
  "typeDescriptions": {
13789
13789
  "typeIdentifier": "t_address",
13790
13790
  "typeString": "address"
@@ -13806,18 +13806,18 @@
13806
13806
  "typeString": "address"
13807
13807
  }
13808
13808
  ],
13809
- "id": 36788,
13809
+ "id": 36807,
13810
13810
  "name": "enableTrustedForwarder",
13811
13811
  "nodeType": "Identifier",
13812
13812
  "overloadedDeclarations": [],
13813
13813
  "referencedDeclaration": 15803,
13814
- "src": "1171:22:102",
13814
+ "src": "1170:22:102",
13815
13815
  "typeDescriptions": {
13816
13816
  "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_ISuperfluid_$18324_$_t_contract$_ISuperfluidToken_$18721_$_t_address_$returns$__$",
13817
13817
  "typeString": "function (contract ISuperfluid,contract ISuperfluidToken,address)"
13818
13818
  }
13819
13819
  },
13820
- "id": 36799,
13820
+ "id": 36818,
13821
13821
  "isConstant": false,
13822
13822
  "isLValue": false,
13823
13823
  "isPure": false,
@@ -13825,16 +13825,16 @@
13825
13825
  "lValueRequested": false,
13826
13826
  "names": [],
13827
13827
  "nodeType": "FunctionCall",
13828
- "src": "1171:81:102",
13828
+ "src": "1170:81:102",
13829
13829
  "tryCall": false,
13830
13830
  "typeDescriptions": {
13831
13831
  "typeIdentifier": "t_tuple$__$",
13832
13832
  "typeString": "tuple()"
13833
13833
  }
13834
13834
  },
13835
- "id": 36800,
13835
+ "id": 36819,
13836
13836
  "nodeType": "ExpressionStatement",
13837
- "src": "1171:81:102"
13837
+ "src": "1170:81:102"
13838
13838
  }
13839
13839
  ]
13840
13840
  },
@@ -13843,18 +13843,18 @@
13843
13843
  "typeIdentifier": "t_uint256",
13844
13844
  "typeString": "uint256"
13845
13845
  },
13846
- "id": 36784,
13846
+ "id": 36803,
13847
13847
  "isConstant": false,
13848
13848
  "isLValue": false,
13849
13849
  "isPure": false,
13850
13850
  "lValueRequested": false,
13851
13851
  "leftExpression": {
13852
- "id": 36781,
13852
+ "id": 36800,
13853
13853
  "name": "i",
13854
13854
  "nodeType": "Identifier",
13855
13855
  "overloadedDeclarations": [],
13856
- "referencedDeclaration": 36778,
13857
- "src": "1122:1:102",
13856
+ "referencedDeclaration": 36797,
13857
+ "src": "1121:1:102",
13858
13858
  "typeDescriptions": {
13859
13859
  "typeIdentifier": "t_uint256",
13860
13860
  "typeString": "uint256"
@@ -13864,51 +13864,51 @@
13864
13864
  "operator": "<",
13865
13865
  "rightExpression": {
13866
13866
  "expression": {
13867
- "id": 36782,
13867
+ "id": 36801,
13868
13868
  "name": "trustedForwarders",
13869
13869
  "nodeType": "Identifier",
13870
13870
  "overloadedDeclarations": [],
13871
- "referencedDeclaration": 36723,
13872
- "src": "1126:17:102",
13871
+ "referencedDeclaration": 36742,
13872
+ "src": "1125:17:102",
13873
13873
  "typeDescriptions": {
13874
13874
  "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
13875
13875
  "typeString": "address[] memory"
13876
13876
  }
13877
13877
  },
13878
- "id": 36783,
13878
+ "id": 36802,
13879
13879
  "isConstant": false,
13880
13880
  "isLValue": false,
13881
13881
  "isPure": false,
13882
13882
  "lValueRequested": false,
13883
13883
  "memberName": "length",
13884
13884
  "nodeType": "MemberAccess",
13885
- "src": "1126:24:102",
13885
+ "src": "1125:24:102",
13886
13886
  "typeDescriptions": {
13887
13887
  "typeIdentifier": "t_uint256",
13888
13888
  "typeString": "uint256"
13889
13889
  }
13890
13890
  },
13891
- "src": "1122:28:102",
13891
+ "src": "1121:28:102",
13892
13892
  "typeDescriptions": {
13893
13893
  "typeIdentifier": "t_bool",
13894
13894
  "typeString": "bool"
13895
13895
  }
13896
13896
  },
13897
- "id": 36802,
13897
+ "id": 36821,
13898
13898
  "initializationExpression": {
13899
13899
  "assignments": [
13900
- 36778
13900
+ 36797
13901
13901
  ],
13902
13902
  "declarations": [
13903
13903
  {
13904
13904
  "constant": false,
13905
- "id": 36778,
13905
+ "id": 36797,
13906
13906
  "mutability": "mutable",
13907
13907
  "name": "i",
13908
- "nameLocation": "1115:1:102",
13908
+ "nameLocation": "1114:1:102",
13909
13909
  "nodeType": "VariableDeclaration",
13910
- "scope": 36802,
13911
- "src": "1110:6:102",
13910
+ "scope": 36821,
13911
+ "src": "1109:6:102",
13912
13912
  "stateVariable": false,
13913
13913
  "storageLocation": "default",
13914
13914
  "typeDescriptions": {
@@ -13916,10 +13916,10 @@
13916
13916
  "typeString": "uint256"
13917
13917
  },
13918
13918
  "typeName": {
13919
- "id": 36777,
13919
+ "id": 36796,
13920
13920
  "name": "uint",
13921
13921
  "nodeType": "ElementaryTypeName",
13922
- "src": "1110:4:102",
13922
+ "src": "1109:4:102",
13923
13923
  "typeDescriptions": {
13924
13924
  "typeIdentifier": "t_uint256",
13925
13925
  "typeString": "uint256"
@@ -13928,17 +13928,17 @@
13928
13928
  "visibility": "internal"
13929
13929
  }
13930
13930
  ],
13931
- "id": 36780,
13931
+ "id": 36799,
13932
13932
  "initialValue": {
13933
13933
  "hexValue": "30",
13934
- "id": 36779,
13934
+ "id": 36798,
13935
13935
  "isConstant": false,
13936
13936
  "isLValue": false,
13937
13937
  "isPure": true,
13938
13938
  "kind": "number",
13939
13939
  "lValueRequested": false,
13940
13940
  "nodeType": "Literal",
13941
- "src": "1119:1:102",
13941
+ "src": "1118:1:102",
13942
13942
  "typeDescriptions": {
13943
13943
  "typeIdentifier": "t_rational_0_by_1",
13944
13944
  "typeString": "int_const 0"
@@ -13946,11 +13946,11 @@
13946
13946
  "value": "0"
13947
13947
  },
13948
13948
  "nodeType": "VariableDeclarationStatement",
13949
- "src": "1110:10:102"
13949
+ "src": "1109:10:102"
13950
13950
  },
13951
13951
  "loopExpression": {
13952
13952
  "expression": {
13953
- "id": 36786,
13953
+ "id": 36805,
13954
13954
  "isConstant": false,
13955
13955
  "isLValue": false,
13956
13956
  "isPure": false,
@@ -13958,14 +13958,14 @@
13958
13958
  "nodeType": "UnaryOperation",
13959
13959
  "operator": "++",
13960
13960
  "prefix": true,
13961
- "src": "1152:3:102",
13961
+ "src": "1151:3:102",
13962
13962
  "subExpression": {
13963
- "id": 36785,
13963
+ "id": 36804,
13964
13964
  "name": "i",
13965
13965
  "nodeType": "Identifier",
13966
13966
  "overloadedDeclarations": [],
13967
- "referencedDeclaration": 36778,
13968
- "src": "1154:1:102",
13967
+ "referencedDeclaration": 36797,
13968
+ "src": "1153:1:102",
13969
13969
  "typeDescriptions": {
13970
13970
  "typeIdentifier": "t_uint256",
13971
13971
  "typeString": "uint256"
@@ -13976,36 +13976,36 @@
13976
13976
  "typeString": "uint256"
13977
13977
  }
13978
13978
  },
13979
- "id": 36787,
13979
+ "id": 36806,
13980
13980
  "nodeType": "ExpressionStatement",
13981
- "src": "1152:3:102"
13981
+ "src": "1151:3:102"
13982
13982
  },
13983
13983
  "nodeType": "ForStatement",
13984
- "src": "1105:158:102"
13984
+ "src": "1104:158:102"
13985
13985
  }
13986
13986
  ]
13987
13987
  },
13988
13988
  "functionSelector": "5a907818",
13989
- "id": 36804,
13989
+ "id": 36823,
13990
13990
  "implemented": true,
13991
13991
  "kind": "function",
13992
13992
  "modifiers": [],
13993
13993
  "name": "initialize",
13994
- "nameLocation": "563:10:102",
13994
+ "nameLocation": "562:10:102",
13995
13995
  "nodeType": "FunctionDefinition",
13996
13996
  "parameters": {
13997
- "id": 36724,
13997
+ "id": 36743,
13998
13998
  "nodeType": "ParameterList",
13999
13999
  "parameters": [
14000
14000
  {
14001
14001
  "constant": false,
14002
- "id": 36714,
14002
+ "id": 36733,
14003
14003
  "mutability": "mutable",
14004
14004
  "name": "host",
14005
- "nameLocation": "595:4:102",
14005
+ "nameLocation": "594:4:102",
14006
14006
  "nodeType": "VariableDeclaration",
14007
- "scope": 36804,
14008
- "src": "583:16:102",
14007
+ "scope": 36823,
14008
+ "src": "582:16:102",
14009
14009
  "stateVariable": false,
14010
14010
  "storageLocation": "default",
14011
14011
  "typeDescriptions": {
@@ -14013,17 +14013,17 @@
14013
14013
  "typeString": "contract ISuperfluid"
14014
14014
  },
14015
14015
  "typeName": {
14016
- "id": 36713,
14016
+ "id": 36732,
14017
14017
  "nodeType": "UserDefinedTypeName",
14018
14018
  "pathNode": {
14019
- "id": 36712,
14019
+ "id": 36731,
14020
14020
  "name": "ISuperfluid",
14021
14021
  "nodeType": "IdentifierPath",
14022
14022
  "referencedDeclaration": 18324,
14023
- "src": "583:11:102"
14023
+ "src": "582:11:102"
14024
14024
  },
14025
14025
  "referencedDeclaration": 18324,
14026
- "src": "583:11:102",
14026
+ "src": "582:11:102",
14027
14027
  "typeDescriptions": {
14028
14028
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
14029
14029
  "typeString": "contract ISuperfluid"
@@ -14033,13 +14033,13 @@
14033
14033
  },
14034
14034
  {
14035
14035
  "constant": false,
14036
- "id": 36716,
14036
+ "id": 36735,
14037
14037
  "mutability": "mutable",
14038
14038
  "name": "rewardAddress",
14039
- "nameLocation": "617:13:102",
14039
+ "nameLocation": "616:13:102",
14040
14040
  "nodeType": "VariableDeclaration",
14041
- "scope": 36804,
14042
- "src": "609:21:102",
14041
+ "scope": 36823,
14042
+ "src": "608:21:102",
14043
14043
  "stateVariable": false,
14044
14044
  "storageLocation": "default",
14045
14045
  "typeDescriptions": {
@@ -14047,10 +14047,10 @@
14047
14047
  "typeString": "address"
14048
14048
  },
14049
14049
  "typeName": {
14050
- "id": 36715,
14050
+ "id": 36734,
14051
14051
  "name": "address",
14052
14052
  "nodeType": "ElementaryTypeName",
14053
- "src": "609:7:102",
14053
+ "src": "608:7:102",
14054
14054
  "stateMutability": "nonpayable",
14055
14055
  "typeDescriptions": {
14056
14056
  "typeIdentifier": "t_address",
@@ -14061,13 +14061,13 @@
14061
14061
  },
14062
14062
  {
14063
14063
  "constant": false,
14064
- "id": 36718,
14064
+ "id": 36737,
14065
14065
  "mutability": "mutable",
14066
14066
  "name": "liquidationPeriod",
14067
- "nameLocation": "648:17:102",
14067
+ "nameLocation": "647:17:102",
14068
14068
  "nodeType": "VariableDeclaration",
14069
- "scope": 36804,
14070
- "src": "640:25:102",
14069
+ "scope": 36823,
14070
+ "src": "639:25:102",
14071
14071
  "stateVariable": false,
14072
14072
  "storageLocation": "default",
14073
14073
  "typeDescriptions": {
@@ -14075,10 +14075,10 @@
14075
14075
  "typeString": "uint256"
14076
14076
  },
14077
14077
  "typeName": {
14078
- "id": 36717,
14078
+ "id": 36736,
14079
14079
  "name": "uint256",
14080
14080
  "nodeType": "ElementaryTypeName",
14081
- "src": "640:7:102",
14081
+ "src": "639:7:102",
14082
14082
  "typeDescriptions": {
14083
14083
  "typeIdentifier": "t_uint256",
14084
14084
  "typeString": "uint256"
@@ -14088,13 +14088,13 @@
14088
14088
  },
14089
14089
  {
14090
14090
  "constant": false,
14091
- "id": 36720,
14091
+ "id": 36739,
14092
14092
  "mutability": "mutable",
14093
14093
  "name": "patricianPeriod",
14094
- "nameLocation": "683:15:102",
14094
+ "nameLocation": "682:15:102",
14095
14095
  "nodeType": "VariableDeclaration",
14096
- "scope": 36804,
14097
- "src": "675:23:102",
14096
+ "scope": 36823,
14097
+ "src": "674:23:102",
14098
14098
  "stateVariable": false,
14099
14099
  "storageLocation": "default",
14100
14100
  "typeDescriptions": {
@@ -14102,10 +14102,10 @@
14102
14102
  "typeString": "uint256"
14103
14103
  },
14104
14104
  "typeName": {
14105
- "id": 36719,
14105
+ "id": 36738,
14106
14106
  "name": "uint256",
14107
14107
  "nodeType": "ElementaryTypeName",
14108
- "src": "675:7:102",
14108
+ "src": "674:7:102",
14109
14109
  "typeDescriptions": {
14110
14110
  "typeIdentifier": "t_uint256",
14111
14111
  "typeString": "uint256"
@@ -14115,13 +14115,13 @@
14115
14115
  },
14116
14116
  {
14117
14117
  "constant": false,
14118
- "id": 36723,
14118
+ "id": 36742,
14119
14119
  "mutability": "mutable",
14120
14120
  "name": "trustedForwarders",
14121
- "nameLocation": "725:17:102",
14121
+ "nameLocation": "724:17:102",
14122
14122
  "nodeType": "VariableDeclaration",
14123
- "scope": 36804,
14124
- "src": "708:34:102",
14123
+ "scope": 36823,
14124
+ "src": "707:34:102",
14125
14125
  "stateVariable": false,
14126
14126
  "storageLocation": "memory",
14127
14127
  "typeDescriptions": {
@@ -14130,19 +14130,19 @@
14130
14130
  },
14131
14131
  "typeName": {
14132
14132
  "baseType": {
14133
- "id": 36721,
14133
+ "id": 36740,
14134
14134
  "name": "address",
14135
14135
  "nodeType": "ElementaryTypeName",
14136
- "src": "708:7:102",
14136
+ "src": "707:7:102",
14137
14137
  "stateMutability": "nonpayable",
14138
14138
  "typeDescriptions": {
14139
14139
  "typeIdentifier": "t_address",
14140
14140
  "typeString": "address"
14141
14141
  }
14142
14142
  },
14143
- "id": 36722,
14143
+ "id": 36741,
14144
14144
  "nodeType": "ArrayTypeName",
14145
- "src": "708:9:102",
14145
+ "src": "707:9:102",
14146
14146
  "typeDescriptions": {
14147
14147
  "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
14148
14148
  "typeString": "address[]"
@@ -14151,16 +14151,16 @@
14151
14151
  "visibility": "internal"
14152
14152
  }
14153
14153
  ],
14154
- "src": "573:175:102"
14154
+ "src": "572:175:102"
14155
14155
  },
14156
14156
  "returnParameters": {
14157
- "id": 36725,
14157
+ "id": 36744,
14158
14158
  "nodeType": "ParameterList",
14159
14159
  "parameters": [],
14160
- "src": "770:0:102"
14160
+ "src": "769:0:102"
14161
14161
  },
14162
- "scope": 36827,
14163
- "src": "554:715:102",
14162
+ "scope": 36846,
14163
+ "src": "553:715:102",
14164
14164
  "stateMutability": "nonpayable",
14165
14165
  "virtual": false,
14166
14166
  "visibility": "external"
@@ -14170,9 +14170,9 @@
14170
14170
  15968
14171
14171
  ],
14172
14172
  "body": {
14173
- "id": 36825,
14173
+ "id": 36844,
14174
14174
  "nodeType": "Block",
14175
- "src": "1356:79:102",
14175
+ "src": "1355:79:102",
14176
14176
  "statements": [
14177
14177
  {
14178
14178
  "expression": {
@@ -14182,18 +14182,18 @@
14182
14182
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
14183
14183
  "typeString": "contract ISuperfluid"
14184
14184
  },
14185
- "id": 36814,
14185
+ "id": 36833,
14186
14186
  "isConstant": false,
14187
14187
  "isLValue": false,
14188
14188
  "isPure": false,
14189
14189
  "lValueRequested": false,
14190
14190
  "leftExpression": {
14191
- "id": 36812,
14191
+ "id": 36831,
14192
14192
  "name": "host",
14193
14193
  "nodeType": "Identifier",
14194
14194
  "overloadedDeclarations": [],
14195
- "referencedDeclaration": 36807,
14196
- "src": "1373:4:102",
14195
+ "referencedDeclaration": 36826,
14196
+ "src": "1372:4:102",
14197
14197
  "typeDescriptions": {
14198
14198
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
14199
14199
  "typeString": "contract ISuperfluid"
@@ -14202,18 +14202,18 @@
14202
14202
  "nodeType": "BinaryOperation",
14203
14203
  "operator": "==",
14204
14204
  "rightExpression": {
14205
- "id": 36813,
14205
+ "id": 36832,
14206
14206
  "name": "_host",
14207
14207
  "nodeType": "Identifier",
14208
14208
  "overloadedDeclarations": [],
14209
- "referencedDeclaration": 36711,
14210
- "src": "1381:5:102",
14209
+ "referencedDeclaration": 36730,
14210
+ "src": "1380:5:102",
14211
14211
  "typeDescriptions": {
14212
14212
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
14213
14213
  "typeString": "contract ISuperfluid"
14214
14214
  }
14215
14215
  },
14216
- "src": "1373:13:102",
14216
+ "src": "1372:13:102",
14217
14217
  "typeDescriptions": {
14218
14218
  "typeIdentifier": "t_bool",
14219
14219
  "typeString": "bool"
@@ -14227,18 +14227,18 @@
14227
14227
  "typeString": "bool"
14228
14228
  }
14229
14229
  ],
14230
- "id": 36811,
14230
+ "id": 36830,
14231
14231
  "name": "assert",
14232
14232
  "nodeType": "Identifier",
14233
14233
  "overloadedDeclarations": [],
14234
14234
  "referencedDeclaration": 4294967293,
14235
- "src": "1366:6:102",
14235
+ "src": "1365:6:102",
14236
14236
  "typeDescriptions": {
14237
14237
  "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
14238
14238
  "typeString": "function (bool) pure"
14239
14239
  }
14240
14240
  },
14241
- "id": 36815,
14241
+ "id": 36834,
14242
14242
  "isConstant": false,
14243
14243
  "isLValue": false,
14244
14244
  "isPure": false,
@@ -14246,16 +14246,16 @@
14246
14246
  "lValueRequested": false,
14247
14247
  "names": [],
14248
14248
  "nodeType": "FunctionCall",
14249
- "src": "1366:21:102",
14249
+ "src": "1365:21:102",
14250
14250
  "tryCall": false,
14251
14251
  "typeDescriptions": {
14252
14252
  "typeIdentifier": "t_tuple$__$",
14253
14253
  "typeString": "tuple()"
14254
14254
  }
14255
14255
  },
14256
- "id": 36816,
14256
+ "id": 36835,
14257
14257
  "nodeType": "ExpressionStatement",
14258
- "src": "1366:21:102"
14258
+ "src": "1365:21:102"
14259
14259
  },
14260
14260
  {
14261
14261
  "expression": {
@@ -14265,7 +14265,7 @@
14265
14265
  "typeIdentifier": "t_address",
14266
14266
  "typeString": "address"
14267
14267
  },
14268
- "id": 36822,
14268
+ "id": 36841,
14269
14269
  "isConstant": false,
14270
14270
  "isLValue": false,
14271
14271
  "isPure": false,
@@ -14274,18 +14274,18 @@
14274
14274
  "arguments": [],
14275
14275
  "expression": {
14276
14276
  "argumentTypes": [],
14277
- "id": 36818,
14277
+ "id": 36837,
14278
14278
  "name": "owner",
14279
14279
  "nodeType": "Identifier",
14280
14280
  "overloadedDeclarations": [],
14281
14281
  "referencedDeclaration": 564,
14282
- "src": "1404:5:102",
14282
+ "src": "1403:5:102",
14283
14283
  "typeDescriptions": {
14284
14284
  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
14285
14285
  "typeString": "function () view returns (address)"
14286
14286
  }
14287
14287
  },
14288
- "id": 36819,
14288
+ "id": 36838,
14289
14289
  "isConstant": false,
14290
14290
  "isLValue": false,
14291
14291
  "isPure": false,
@@ -14293,7 +14293,7 @@
14293
14293
  "lValueRequested": false,
14294
14294
  "names": [],
14295
14295
  "nodeType": "FunctionCall",
14296
- "src": "1404:7:102",
14296
+ "src": "1403:7:102",
14297
14297
  "tryCall": false,
14298
14298
  "typeDescriptions": {
14299
14299
  "typeIdentifier": "t_address",
@@ -14306,18 +14306,18 @@
14306
14306
  "arguments": [],
14307
14307
  "expression": {
14308
14308
  "argumentTypes": [],
14309
- "id": 36820,
14309
+ "id": 36839,
14310
14310
  "name": "_msgSender",
14311
14311
  "nodeType": "Identifier",
14312
14312
  "overloadedDeclarations": [],
14313
14313
  "referencedDeclaration": 2492,
14314
- "src": "1415:10:102",
14314
+ "src": "1414:10:102",
14315
14315
  "typeDescriptions": {
14316
14316
  "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
14317
14317
  "typeString": "function () view returns (address)"
14318
14318
  }
14319
14319
  },
14320
- "id": 36821,
14320
+ "id": 36840,
14321
14321
  "isConstant": false,
14322
14322
  "isLValue": false,
14323
14323
  "isPure": false,
@@ -14325,14 +14325,14 @@
14325
14325
  "lValueRequested": false,
14326
14326
  "names": [],
14327
14327
  "nodeType": "FunctionCall",
14328
- "src": "1415:12:102",
14328
+ "src": "1414:12:102",
14329
14329
  "tryCall": false,
14330
14330
  "typeDescriptions": {
14331
14331
  "typeIdentifier": "t_address",
14332
14332
  "typeString": "address"
14333
14333
  }
14334
14334
  },
14335
- "src": "1404:23:102",
14335
+ "src": "1403:23:102",
14336
14336
  "typeDescriptions": {
14337
14337
  "typeIdentifier": "t_bool",
14338
14338
  "typeString": "bool"
@@ -14346,18 +14346,18 @@
14346
14346
  "typeString": "bool"
14347
14347
  }
14348
14348
  ],
14349
- "id": 36817,
14349
+ "id": 36836,
14350
14350
  "name": "assert",
14351
14351
  "nodeType": "Identifier",
14352
14352
  "overloadedDeclarations": [],
14353
14353
  "referencedDeclaration": 4294967293,
14354
- "src": "1397:6:102",
14354
+ "src": "1396:6:102",
14355
14355
  "typeDescriptions": {
14356
14356
  "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
14357
14357
  "typeString": "function (bool) pure"
14358
14358
  }
14359
14359
  },
14360
- "id": 36823,
14360
+ "id": 36842,
14361
14361
  "isConstant": false,
14362
14362
  "isLValue": false,
14363
14363
  "isPure": false,
@@ -14365,45 +14365,45 @@
14365
14365
  "lValueRequested": false,
14366
14366
  "names": [],
14367
14367
  "nodeType": "FunctionCall",
14368
- "src": "1397:31:102",
14368
+ "src": "1396:31:102",
14369
14369
  "tryCall": false,
14370
14370
  "typeDescriptions": {
14371
14371
  "typeIdentifier": "t_tuple$__$",
14372
14372
  "typeString": "tuple()"
14373
14373
  }
14374
14374
  },
14375
- "id": 36824,
14375
+ "id": 36843,
14376
14376
  "nodeType": "ExpressionStatement",
14377
- "src": "1397:31:102"
14377
+ "src": "1396:31:102"
14378
14378
  }
14379
14379
  ]
14380
14380
  },
14381
- "id": 36826,
14381
+ "id": 36845,
14382
14382
  "implemented": true,
14383
14383
  "kind": "function",
14384
14384
  "modifiers": [],
14385
14385
  "name": "_requireAuthorised",
14386
- "nameLocation": "1284:18:102",
14386
+ "nameLocation": "1283:18:102",
14387
14387
  "nodeType": "FunctionDefinition",
14388
14388
  "overrides": {
14389
- "id": 36809,
14389
+ "id": 36828,
14390
14390
  "nodeType": "OverrideSpecifier",
14391
14391
  "overrides": [],
14392
- "src": "1343:8:102"
14392
+ "src": "1342:8:102"
14393
14393
  },
14394
14394
  "parameters": {
14395
- "id": 36808,
14395
+ "id": 36827,
14396
14396
  "nodeType": "ParameterList",
14397
14397
  "parameters": [
14398
14398
  {
14399
14399
  "constant": false,
14400
- "id": 36807,
14400
+ "id": 36826,
14401
14401
  "mutability": "mutable",
14402
14402
  "name": "host",
14403
- "nameLocation": "1315:4:102",
14403
+ "nameLocation": "1314:4:102",
14404
14404
  "nodeType": "VariableDeclaration",
14405
- "scope": 36826,
14406
- "src": "1303:16:102",
14405
+ "scope": 36845,
14406
+ "src": "1302:16:102",
14407
14407
  "stateVariable": false,
14408
14408
  "storageLocation": "default",
14409
14409
  "typeDescriptions": {
@@ -14411,17 +14411,17 @@
14411
14411
  "typeString": "contract ISuperfluid"
14412
14412
  },
14413
14413
  "typeName": {
14414
- "id": 36806,
14414
+ "id": 36825,
14415
14415
  "nodeType": "UserDefinedTypeName",
14416
14416
  "pathNode": {
14417
- "id": 36805,
14417
+ "id": 36824,
14418
14418
  "name": "ISuperfluid",
14419
14419
  "nodeType": "IdentifierPath",
14420
14420
  "referencedDeclaration": 18324,
14421
- "src": "1303:11:102"
14421
+ "src": "1302:11:102"
14422
14422
  },
14423
14423
  "referencedDeclaration": 18324,
14424
- "src": "1303:11:102",
14424
+ "src": "1302:11:102",
14425
14425
  "typeDescriptions": {
14426
14426
  "typeIdentifier": "t_contract$_ISuperfluid_$18324",
14427
14427
  "typeString": "contract ISuperfluid"
@@ -14430,37 +14430,37 @@
14430
14430
  "visibility": "internal"
14431
14431
  }
14432
14432
  ],
14433
- "src": "1302:18:102"
14433
+ "src": "1301:18:102"
14434
14434
  },
14435
14435
  "returnParameters": {
14436
- "id": 36810,
14436
+ "id": 36829,
14437
14437
  "nodeType": "ParameterList",
14438
14438
  "parameters": [],
14439
- "src": "1356:0:102"
14439
+ "src": "1355:0:102"
14440
14440
  },
14441
- "scope": 36827,
14442
- "src": "1275:160:102",
14441
+ "scope": 36846,
14442
+ "src": "1274:160:102",
14443
14443
  "stateMutability": "view",
14444
14444
  "virtual": false,
14445
14445
  "visibility": "internal"
14446
14446
  }
14447
14447
  ],
14448
- "scope": 36828,
14449
- "src": "447:990:102",
14448
+ "scope": 36847,
14449
+ "src": "446:990:102",
14450
14450
  "usedErrors": []
14451
14451
  }
14452
14452
  ],
14453
- "src": "35:1403:102"
14453
+ "src": "35:1402:102"
14454
14454
  },
14455
14455
  "compiler": {
14456
14456
  "name": "solc",
14457
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
14457
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
14458
14458
  },
14459
14459
  "networks": {},
14460
14460
  "schemaVersion": "3.4.7",
14461
- "updatedAt": "2022-06-03T09:45:14.374Z",
14461
+ "updatedAt": "2022-06-16T09:19:12.602Z",
14462
14462
  "devdoc": {
14463
- "author": "Superfluid ",
14463
+ "author": "Superfluid",
14464
14464
  "details": "A initializable version of the governance for testing purpose",
14465
14465
  "kind": "dev",
14466
14466
  "methods": {
@@ -14510,7 +14510,7 @@
14510
14510
  "details": "withdraws authorization from a factory to register new apps. Doesn't affect apps previously registered by the factory."
14511
14511
  },
14512
14512
  "updateContracts(address,address,address[],address)": {
14513
- "details": "Update logics of the contracts NOTE: - Because they might have inter-dependencies, it is good to have one single function to update them all"
14513
+ "details": "Update logics of the contracts"
14514
14514
  }
14515
14515
  },
14516
14516
  "title": "Test governance contract",