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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/build/contracts/AccessControl.json +3 -3
  2. package/build/contracts/AccessControlEnumerable.json +3 -3
  3. package/build/contracts/Address.json +5 -5
  4. package/build/contracts/AgreementBase.json +13 -13
  5. package/build/contracts/AgreementLibrary.json +7 -7
  6. package/build/contracts/BaseRelayRecipient.json +5 -5
  7. package/build/contracts/BatchLiquidator.json +179 -179
  8. package/build/contracts/BatchOperation.json +5 -5
  9. package/build/contracts/CFAv1Library.json +5 -5
  10. package/build/contracts/CallUtils.json +7 -7
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +2107 -1917
  12. package/build/contracts/ConstantFlowAgreementV1.json +8 -8
  13. package/build/contracts/Context.json +3 -3
  14. package/build/contracts/ContextDefinitions.json +5 -5
  15. package/build/contracts/Create2.json +5 -5
  16. package/build/contracts/CustomSuperTokenBase.json +3 -3
  17. package/build/contracts/ERC165.json +3 -3
  18. package/build/contracts/ERC1820Implementer.json +5 -5
  19. package/build/contracts/ERC1820RegistryCompiled.json +7 -7
  20. package/build/contracts/ERC20.json +5 -5
  21. package/build/contracts/ERC20Burnable.json +3 -3
  22. package/build/contracts/ERC20Pausable.json +3 -3
  23. package/build/contracts/ERC20PresetMinterPauser.json +5 -5
  24. package/build/contracts/ERC20WithTokenInfo.json +3 -3
  25. package/build/contracts/ERC777Helper.json +7 -7
  26. package/build/contracts/ERC777RecipientDrainingGas.json +839 -839
  27. package/build/contracts/ERC777RecipientReverting.json +839 -839
  28. package/build/contracts/EnumerableSet.json +5 -5
  29. package/build/contracts/EventsEmitter.json +47 -47
  30. package/build/contracts/ExclusiveInflowTestApp.json +2107 -1917
  31. package/build/contracts/FixedSizeData.json +213 -213
  32. package/build/contracts/FlowExchangeTestApp.json +2107 -1917
  33. package/build/contracts/FlowOperatorDefinitions.json +5 -5
  34. package/build/contracts/FullUpgradableSuperTokenProxy.json +226 -312
  35. package/build/contracts/IAccessControl.json +3 -3
  36. package/build/contracts/IAccessControlEnumerable.json +3 -3
  37. package/build/contracts/IConstantFlowAgreementV1.json +451 -444
  38. package/build/contracts/IDAv1Library.json +5 -5
  39. package/build/contracts/IERC165.json +3 -3
  40. package/build/contracts/IERC1820Implementer.json +3 -3
  41. package/build/contracts/IERC1820Registry.json +3 -3
  42. package/build/contracts/IERC20.json +3 -3
  43. package/build/contracts/IERC20Metadata.json +3 -3
  44. package/build/contracts/IERC777.json +3 -3
  45. package/build/contracts/IERC777Recipient.json +3 -3
  46. package/build/contracts/IERC777Sender.json +3 -3
  47. package/build/contracts/IInstantDistributionAgreementV1.json +570 -559
  48. package/build/contracts/IMaticBridgedNativeSuperToken.json +71 -32
  49. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +3 -3
  50. package/build/contracts/IMultiSigWallet.json +3 -3
  51. package/build/contracts/IPureSuperToken.json +71 -32
  52. package/build/contracts/IPureSuperTokenCustom.json +3 -3
  53. package/build/contracts/IRelayRecipient.json +3 -3
  54. package/build/contracts/IResolver.json +3 -3
  55. package/build/contracts/ISETH.json +71 -32
  56. package/build/contracts/ISETHCustom.json +3 -3
  57. package/build/contracts/ISuperAgreement.json +3 -3
  58. package/build/contracts/ISuperApp.json +179 -173
  59. package/build/contracts/ISuperToken.json +522 -483
  60. package/build/contracts/ISuperTokenFactory.json +3 -3
  61. package/build/contracts/ISuperfluid.json +633 -628
  62. package/build/contracts/ISuperfluidGovernance.json +134 -133
  63. package/build/contracts/ISuperfluidToken.json +403 -394
  64. package/build/contracts/ITOGAv1.json +1211 -1211
  65. package/build/contracts/ITOGAv2.json +1211 -1211
  66. package/build/contracts/Initializable.json +3 -3
  67. package/build/contracts/InstantDistributionAgreementV1.json +10 -10
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +194 -194
  69. package/build/contracts/NonClosableOutflowTestApp.json +2107 -1917
  70. package/build/contracts/Ownable.json +3 -3
  71. package/build/contracts/Pausable.json +3 -3
  72. package/build/contracts/Proxy.json +3 -3
  73. package/build/contracts/PureSuperToken.json +91 -91
  74. package/build/contracts/Resolver.json +96 -96
  75. package/build/contracts/SETHProxy.json +199 -199
  76. package/build/contracts/SafeCast.json +5 -5
  77. package/build/contracts/SafeERC20.json +5 -5
  78. package/build/contracts/SafeMath.json +5 -5
  79. package/build/contracts/SelfDeletingFlowTestApp.json +2107 -1917
  80. package/build/contracts/SlotsBitmapLibrary.json +7 -7
  81. package/build/contracts/Strings.json +5 -5
  82. package/build/contracts/SuperAppBase.json +3 -3
  83. package/build/contracts/SuperAppDefinitions.json +5 -5
  84. package/build/contracts/SuperToken.json +2262 -2262
  85. package/build/contracts/SuperTokenFactory.json +582 -582
  86. package/build/contracts/SuperTokenFactoryBase.json +576 -576
  87. package/build/contracts/SuperTokenFactoryHelper.json +578 -578
  88. package/build/contracts/SuperUpgrader.json +687 -687
  89. package/build/contracts/Superfluid.json +6648 -6678
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +526 -526
  91. package/build/contracts/SuperfluidGovernanceBase.json +13 -13
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +5 -5
  93. package/build/contracts/SuperfluidGovernanceII.json +21 -21
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +20 -20
  95. package/build/contracts/SuperfluidLoader.json +147 -147
  96. package/build/contracts/SuperfluidToken.json +1269 -1269
  97. package/build/contracts/TOGA.json +1221 -1221
  98. package/build/contracts/TestGovernance.json +315 -315
  99. package/build/contracts/TestToken.json +475 -561
  100. package/build/contracts/TokenCustodian.json +220 -220
  101. package/build/contracts/TokenInfo.json +3 -3
  102. package/build/contracts/UUPSProxiable.json +136 -136
  103. package/build/contracts/UUPSProxy.json +87 -87
  104. package/build/contracts/UUPSUtils.json +43 -43
  105. package/build/contracts-sizes.txt +6 -6
  106. package/contracts/agreements/AgreementBase.sol +1 -1
  107. package/contracts/agreements/AgreementLibrary.sol +1 -1
  108. package/contracts/agreements/ConstantFlowAgreementV1.sol +1 -1
  109. package/contracts/agreements/InstantDistributionAgreementV1.sol +1 -1
  110. package/contracts/gov/SuperfluidGovernanceBase.sol +1 -1
  111. package/contracts/gov/SuperfluidGovernanceII.sol +1 -1
  112. package/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol +7 -10
  113. package/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol +11 -18
  114. package/contracts/interfaces/superfluid/ISuperApp.sol +7 -9
  115. package/contracts/interfaces/superfluid/ISuperToken.sol +36 -44
  116. package/contracts/interfaces/superfluid/ISuperfluid.sol +17 -21
  117. package/contracts/interfaces/superfluid/ISuperfluidGovernance.sol +1 -1
  118. package/contracts/interfaces/superfluid/ISuperfluidToken.sol +13 -14
  119. package/contracts/libs/BaseRelayRecipient.sol +1 -1
  120. package/contracts/libs/CallUtils.sol +1 -1
  121. package/contracts/libs/ERC1820RegistryCompiled.sol +1 -1
  122. package/contracts/libs/ERC777Helper.sol +1 -1
  123. package/contracts/libs/EventsEmitter.sol +2 -2
  124. package/contracts/libs/FixedSizeData.sol +2 -2
  125. package/contracts/libs/SlotsBitmapLibrary.sol +1 -1
  126. package/contracts/mocks/AgreementMock.sol +1 -1
  127. package/contracts/mocks/CFAAppMocks.sol +6 -6
  128. package/contracts/mocks/CFALibraryMock.sol +2 -2
  129. package/contracts/mocks/CallUtilsMock.sol +1 -1
  130. package/contracts/mocks/CallUtilsTester.sol +1 -1
  131. package/contracts/mocks/CustomSuperTokenMock.sol +1 -1
  132. package/contracts/mocks/ERC777SenderRecipientMock.sol +1 -1
  133. package/contracts/mocks/FakeSuperfluidMock.sol +1 -1
  134. package/contracts/mocks/ForwarderMock.sol +1 -1
  135. package/contracts/mocks/IDASuperAppTester.sol +2 -2
  136. package/contracts/mocks/IDAv1LibraryMock.sol +3 -3
  137. package/contracts/mocks/MockSmartWallet.sol +1 -1
  138. package/contracts/mocks/MultiFlowTesterApp.sol +2 -2
  139. package/contracts/mocks/SuperAppMocks.sol +15 -12
  140. package/contracts/mocks/SuperTokenFactoryMock.sol +1 -1
  141. package/contracts/mocks/SuperTokenMock.sol +1 -1
  142. package/contracts/mocks/SuperfluidDestructorMock.sol +1 -1
  143. package/contracts/mocks/SuperfluidGovernanceIIMock.sol +1 -1
  144. package/contracts/mocks/SuperfluidMock.sol +2 -2
  145. package/contracts/mocks/UUPSProxiableMock.sol +1 -1
  146. package/contracts/superfluid/FullUpgradableSuperTokenProxy.sol +2 -2
  147. package/contracts/superfluid/SuperToken.sol +1 -1
  148. package/contracts/superfluid/SuperTokenFactory.sol +1 -1
  149. package/contracts/superfluid/Superfluid.sol +4 -4
  150. package/contracts/superfluid/SuperfluidToken.sol +1 -1
  151. package/contracts/tokens/MaticBridgedNativeSuperToken.sol +1 -1
  152. package/contracts/tokens/PureSuperToken.sol +1 -1
  153. package/contracts/tokens/SETH.sol +1 -1
  154. package/contracts/upgradability/UUPSProxiable.sol +1 -1
  155. package/contracts/upgradability/UUPSProxy.sol +1 -1
  156. package/contracts/upgradability/UUPSUtils.sol +1 -1
  157. package/contracts/utils/BatchLiquidator.sol +1 -1
  158. package/contracts/utils/Resolver.sol +1 -1
  159. package/contracts/utils/SuperUpgrader.sol +6 -6
  160. package/contracts/utils/SuperfluidLoader.sol +1 -1
  161. package/contracts/utils/TOGA.sol +1 -1
  162. package/contracts/utils/TestGovernance.sol +2 -2
  163. package/contracts/utils/TestToken.sol +2 -2
  164. package/contracts/utils/TokenCustodian.sol +1 -1
  165. package/package.json +5 -3
  166. package/scripts/deploy-framework.js +5 -5
  167. package/scripts/deploy-super-token.js +13 -4
  168. package/scripts/gov-create-new-app-registration-key.js +2 -1
  169. package/scripts/gov-create-new-factory-registration.js +1 -1
  170. package/scripts/libs/getConfig.js +21 -3
  171. package/scripts/resolver-list-super-token.js +1 -0
@@ -1001,7 +1001,7 @@
1001
1001
  "type": "function"
1002
1002
  }
1003
1003
  ],
1004
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"}],\"name\":\"AgreementClassRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"}],\"name\":\"AgreementClassUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"AppRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"oldGov\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"newGov\",\"type\":\"address\"}],\"name\":\"GovernanceReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reason\",\"type\":\"uint256\"}],\"name\":\"Jail\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract ISuperTokenFactory\",\"name\":\"newFactory\",\"type\":\"address\"}],\"name\":\"SuperTokenFactoryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"}],\"name\":\"SuperTokenLogicUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"addToAgreementClassesBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"newBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"targetApp\",\"type\":\"address\"}],\"name\":\"allowCompositeApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsedDelta\",\"type\":\"int256\"}],\"name\":\"appCallbackPop\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceGranted\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsed\",\"type\":\"int256\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"appAllowanceToken\",\"type\":\"address\"}],\"name\":\"appCallbackPush\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"operationType\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct ISuperfluid.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"callAgreement\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"returnedData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAgreementWithContext\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnedData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callAppAction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"returnedData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAppActionWithContext\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isTermination\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAppAfterCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isTermination\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAppBeforeCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"cbdata\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceWantedMore\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsedDelta\",\"type\":\"int256\"}],\"name\":\"ctxUseAllowance\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"decodeCtx\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"appLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"callType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"agreementSelector\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceGranted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceWanted\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsed\",\"type\":\"int256\"},{\"internalType\":\"address\",\"name\":\"appAddress\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"appAllowanceToken\",\"type\":\"address\"}],\"internalType\":\"struct ISuperfluid.Context\",\"name\":\"context\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"operationType\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct ISuperfluid.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"}],\"name\":\"forwardBatchCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"getAgreementClass\",\"outputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"getAppLevel\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"appLevel\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"getAppManifest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSuperApp\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isJailed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"noopMask\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGovernance\",\"outputs\":[{\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"governance\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSuperTokenFactory\",\"outputs\":[{\"internalType\":\"contract ISuperTokenFactory\",\"name\":\"factory\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSuperTokenFactoryLogic\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"logic\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"}],\"name\":\"isAgreementClassListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"yes\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"isAgreementTypeListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"yes\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"isApp\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"isAppJailed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isJail\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"contract ISuperApp\",\"name\":\"targetApp\",\"type\":\"address\"}],\"name\":\"isCompositeAppAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isAppAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"isCtxValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reason\",\"type\":\"uint256\"}],\"name\":\"jailApp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"name\":\"mapAgreementClasses\",\"outputs\":[{\"internalType\":\"contract ISuperAgreement[]\",\"name\":\"agreementClasses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClassLogic\",\"type\":\"address\"}],\"name\":\"registerAgreementClass\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"configWord\",\"type\":\"uint256\"}],\"name\":\"registerApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"configWord\",\"type\":\"uint256\"}],\"name\":\"registerAppByFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"configWord\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"registrationKey\",\"type\":\"string\"}],\"name\":\"registerAppWithKey\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"removeFromAgreementClassesBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"newBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"newGov\",\"type\":\"address\"}],\"name\":\"replaceGovernance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClassLogic\",\"type\":\"address\"}],\"name\":\"updateAgreementClass\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperTokenFactory\",\"name\":\"newFactory\",\"type\":\"address\"}],\"name\":\"updateSuperTokenFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperToken\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"updateSuperTokenLogic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid NOTE: This is the central contract of the system where super agreement, super app and super token features are connected. The Superfluid host contract is also the entry point for the protocol users, where batch call and meta transaction are provided for UX improvements.\",\"events\":{\"AgreementClassRegistered(bytes32,address)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"agreementType\":\"The agreement type registered\",\"code\":\"Address of the new agreement\"}},\"AgreementClassUpdated(bytes32,address)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"agreementType\":\"The agreement type updated\",\"code\":\"Address of the new agreement\"}},\"AppRegistered(address)\":{\"details\":\"App registered event\",\"params\":{\"app\":\"Address of jailed app\"}},\"GovernanceReplaced(address,address)\":{\"details\":\"Governance replaced event\",\"params\":{\"newGov\":\"Address of the new governance contract\",\"oldGov\":\"Address of the old governance contract\"}},\"Jail(address,uint256)\":{\"details\":\"Jail event for the app\",\"params\":{\"app\":\"Address of jailed app\",\"reason\":\"Reason the app is jailed (see Definitions.sol for the full list)\"}},\"SuperTokenFactoryUpdated(address)\":{\"details\":\"SuperToken factory updated event\",\"params\":{\"newFactory\":\"Address of the new factory\"}},\"SuperTokenLogicUpdated(address,address)\":{\"details\":\"SuperToken logic updated event\",\"params\":{\"code\":\"Address of the new SuperToken logic\"}}},\"kind\":\"dev\",\"methods\":{\"addToAgreementClassesBitmap(uint256,bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"bitmap\":\"Agreement class bitmap\"}},\"allowCompositeApp(address)\":{\"details\":\"Whitelist the target app for app composition for the source app (msg.sender)\",\"params\":{\"targetApp\":\"The target super app address\"}},\"appCallbackPop(bytes,int256)\":{\"details\":\"(For agreements) Pop from the current app callback stack\",\"params\":{\"appAllowanceUsedDelta\":\"App allowance used by the app.\",\"ctx\":\"The ctx that was pushed before the callback stack.\"},\"returns\":{\"newCtx\":\"[SECURITY] NOTE: - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory. - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly.\"}},\"appCallbackPush(bytes,address,uint256,int256,address)\":{\"details\":\"(For agreements) Create a new callback stack\",\"params\":{\"app\":\"The super app.\",\"appAllowanceGranted\":\"App allowance granted so far.\",\"appAllowanceUsed\":\"App allowance used so far.\",\"ctx\":\"The current ctx, it will be validated.\"},\"returns\":{\"newCtx\":\"newCtx\"}},\"batchCall((uint32,address,bytes)[])\":{\"details\":\"Batch call function\",\"params\":{\"operations\":\"Array of batch operations\"}},\"callAgreement(address,bytes,bytes)\":{\"details\":\"Call agreement function\",\"params\":{\"agreementClass\":\"The agreement address you are calling\",\"callData\":\"The contextual call data with placeholder ctx\",\"userData\":\"Extra user data being sent to the super app callbacks\"}},\"callAppAction(address,bytes)\":{\"details\":\"Main use case is calling app action in a batch call via the host\",\"params\":{\"callData\":\"The contextual call data NOTE: See \\\"Contextless Call Proxies\\\" above for more about contextual call data.\"}},\"callAppAfterCallback(address,bytes,bool,bytes)\":{\"details\":\"(For agreements) Call the app after callback\",\"params\":{\"app\":\"The super app.\",\"callData\":\"The call data sending to the super app.\",\"ctx\":\"Current ctx, it will be validated.\",\"isTermination\":\"Is it a termination callback?\"},\"returns\":{\"newCtx\":\"newCtx\"}},\"callAppBeforeCallback(address,bytes,bool,bytes)\":{\"details\":\"(For agreements) StaticCall the app before callback\",\"params\":{\"app\":\"The super app.\",\"callData\":\"The call data sending to the super app.\",\"ctx\":\"Current ctx, it will be validated.\",\"isTermination\":\"Is it a termination callback?\"},\"returns\":{\"cbdata\":\" Data returned from the callback.\"}},\"ctxUseAllowance(bytes,uint256,int256)\":{\"details\":\"(For agreements) Use app allowance.\",\"params\":{\"appAllowanceUsedDelta\":\"See app allowance for more details.\",\"appAllowanceWantedMore\":\"See app allowance for more details.\",\"ctx\":\"The current ctx, it will be validated.\"},\"returns\":{\"newCtx\":\"newCtx\"}},\"forwardBatchCall((uint32,address,bytes)[])\":{\"details\":\"Batch call function for trusted forwarders (EIP-2771)\",\"params\":{\"operations\":\"Array of batch operations\"}},\"getAgreementClass(bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\"},\"getAppLevel(address)\":{\"details\":\"Query app level\",\"params\":{\"app\":\"Super app address\"}},\"getAppManifest(address)\":{\"details\":\"Get the manifest of the super app\",\"params\":{\"app\":\"Super app address\"}},\"getGovernance()\":{\"details\":\"Get the current governance address of the Superfluid host\"},\"getSuperTokenFactory()\":{\"details\":\"Get the super token factory\",\"returns\":{\"factory\":\"The factory\"}},\"getSuperTokenFactoryLogic()\":{\"details\":\"Get the super token factory logic (applicable to upgradable deployment)\",\"returns\":{\"logic\":\"The factory logic\"}},\"isAgreementClassListed(address)\":{\"details\":\"Check if the agreement class is whitelisted\"},\"isAgreementTypeListed(bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\"},\"isApp(address)\":{\"details\":\"Query if the app is registered\",\"params\":{\"app\":\"Super app address\"}},\"isAppJailed(address)\":{\"details\":\"Query if the app has been jailed\",\"params\":{\"app\":\"Super app address\"}},\"isCompositeAppAllowed(address,address)\":{\"details\":\"Query if source app is allowed to call the target app as downstream app\",\"params\":{\"app\":\"Super app address\",\"targetApp\":\"The target super app address\"}},\"jailApp(bytes,address,uint256)\":{\"details\":\"(For agreements) Jail the app.\",\"params\":{\"app\":\"The super app.\",\"reason\":\"Jail reason code.\"},\"returns\":{\"newCtx\":\"newCtx\"}},\"mapAgreementClasses(uint256)\":{\"details\":\"Map list of the agreement classes using a bitmap\",\"params\":{\"bitmap\":\"Agreement class bitmap\"}},\"registerAgreementClass(address)\":{\"details\":\"Register a new agreement class to the system\",\"params\":{\"agreementClassLogic\":\"Initial agreement class code Modifiers: - onlyGovernance\"}},\"registerApp(uint256)\":{\"custom:deprecated\":\"you should use `registerAppWithKey` or `registerAppByFactory` instead, because app registration is currently governance permissioned on mainnets.\",\"details\":\"Message sender (must be a contract) declares itself as a super app.\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\"}},\"registerAppByFactory(address,uint256)\":{\"details\":\"Message sender (must be a contract) declares app as a super app\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\"}},\"registerAppWithKey(uint256,string)\":{\"details\":\"Message sender declares itself as a super app.\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\",\"registrationKey\":\"The registration key issued by the governance, needed to register on a mainnet. See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide On testnets or in dev environment, a placeholder (e.g. empty string) can be used.\"}},\"removeFromAgreementClassesBitmap(uint256,bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"bitmap\":\"Agreement class bitmap\"}},\"replaceGovernance(address)\":{\"details\":\"Replace the current governance with a new one\"},\"updateAgreementClass(address)\":{\"details\":\"Update code of an agreement class\",\"params\":{\"agreementClassLogic\":\"New code for the agreement class Modifiers: - onlyGovernance\"}},\"updateSuperTokenFactory(address)\":{\"details\":\"Update super token factory\",\"params\":{\"newFactory\":\"New factory logic\"}},\"updateSuperTokenLogic(address)\":{\"details\":\"Refer to ISuperTokenFactory.Upgradability for expected behaviours\"}},\"title\":\"Host interface\",\"version\":1},\"userdoc\":{\"events\":{\"AgreementClassRegistered(bytes32,address)\":{\"notice\":\"Agreement class registered event\"},\"AgreementClassUpdated(bytes32,address)\":{\"notice\":\"Agreement class updated event\"}},\"kind\":\"user\",\"methods\":{\"addToAgreementClassesBitmap(uint256,bytes32)\":{\"notice\":\"Create a new bitmask by adding a agreement class to it\"},\"callAppAction(address,bytes)\":{\"notice\":\"Call app action\"},\"getAgreementClass(bytes32)\":{\"notice\":\"Get agreement class\"},\"isAgreementTypeListed(bytes32)\":{\"notice\":\"Check if the agreement type is whitelisted\"},\"registerAppByFactory(address,uint256)\":{\"notice\":\"On mainnet deployments, only factory contracts pre-authorized by governance can use this. See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\"},\"registerAppWithKey(uint256,string)\":{\"notice\":\"While the message sender must be the super app itself, the transaction sender (tx.origin) must be the deployer account the registration key was issued for.\"},\"removeFromAgreementClassesBitmap(uint256,bytes32)\":{\"notice\":\"Create a new bitmask by removing a agreement class from it\"},\"updateSuperTokenLogic(address)\":{\"notice\":\"Update the super token logic to the latest\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":\"ISuperfluid\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\"]},\"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\"]}},\"version\":1}",
1004
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"}],\"name\":\"AgreementClassRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"}],\"name\":\"AgreementClassUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"AppRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"oldGov\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"newGov\",\"type\":\"address\"}],\"name\":\"GovernanceReplaced\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"reason\",\"type\":\"uint256\"}],\"name\":\"Jail\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract ISuperTokenFactory\",\"name\":\"newFactory\",\"type\":\"address\"}],\"name\":\"SuperTokenFactoryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"code\",\"type\":\"address\"}],\"name\":\"SuperTokenLogicUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"addToAgreementClassesBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"newBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"targetApp\",\"type\":\"address\"}],\"name\":\"allowCompositeApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsedDelta\",\"type\":\"int256\"}],\"name\":\"appCallbackPop\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceGranted\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsed\",\"type\":\"int256\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"appAllowanceToken\",\"type\":\"address\"}],\"name\":\"appCallbackPush\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"operationType\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct ISuperfluid.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"}],\"name\":\"batchCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"callAgreement\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"returnedData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAgreementWithContext\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"returnedData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"name\":\"callAppAction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"returnedData\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAppActionWithContext\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isTermination\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAppAfterCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"isTermination\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"callAppBeforeCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"cbdata\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceWantedMore\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsedDelta\",\"type\":\"int256\"}],\"name\":\"ctxUseAllowance\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"decodeCtx\",\"outputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"appLevel\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"callType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"msgSender\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"agreementSelector\",\"type\":\"bytes4\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceGranted\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"appAllowanceWanted\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"appAllowanceUsed\",\"type\":\"int256\"},{\"internalType\":\"address\",\"name\":\"appAddress\",\"type\":\"address\"},{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"appAllowanceToken\",\"type\":\"address\"}],\"internalType\":\"struct ISuperfluid.Context\",\"name\":\"context\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"operationType\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct ISuperfluid.Operation[]\",\"name\":\"operations\",\"type\":\"tuple[]\"}],\"name\":\"forwardBatchCall\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"getAgreementClass\",\"outputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"getAppLevel\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"appLevel\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"getAppManifest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSuperApp\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isJailed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"noopMask\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGovernance\",\"outputs\":[{\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"governance\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSuperTokenFactory\",\"outputs\":[{\"internalType\":\"contract ISuperTokenFactory\",\"name\":\"factory\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSuperTokenFactoryLogic\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"logic\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClass\",\"type\":\"address\"}],\"name\":\"isAgreementClassListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"yes\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"isAgreementTypeListed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"yes\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"isApp\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"}],\"name\":\"isAppJailed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isJail\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"contract ISuperApp\",\"name\":\"targetApp\",\"type\":\"address\"}],\"name\":\"isCompositeAppAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isAppAllowed\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"isCtxValid\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"},{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reason\",\"type\":\"uint256\"}],\"name\":\"jailApp\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"}],\"name\":\"mapAgreementClasses\",\"outputs\":[{\"internalType\":\"contract ISuperAgreement[]\",\"name\":\"agreementClasses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClassLogic\",\"type\":\"address\"}],\"name\":\"registerAgreementClass\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"configWord\",\"type\":\"uint256\"}],\"name\":\"registerApp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperApp\",\"name\":\"app\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"configWord\",\"type\":\"uint256\"}],\"name\":\"registerAppByFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"configWord\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"registrationKey\",\"type\":\"string\"}],\"name\":\"registerAppWithKey\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"bitmap\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"agreementType\",\"type\":\"bytes32\"}],\"name\":\"removeFromAgreementClassesBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"newBitmap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidGovernance\",\"name\":\"newGov\",\"type\":\"address\"}],\"name\":\"replaceGovernance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperAgreement\",\"name\":\"agreementClassLogic\",\"type\":\"address\"}],\"name\":\"updateAgreementClass\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperTokenFactory\",\"name\":\"newFactory\",\"type\":\"address\"}],\"name\":\"updateSuperTokenFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperToken\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"updateSuperTokenLogic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"events\":{\"AgreementClassRegistered(bytes32,address)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"agreementType\":\"The agreement type registered\",\"code\":\"Address of the new agreement\"}},\"AgreementClassUpdated(bytes32,address)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"agreementType\":\"The agreement type updated\",\"code\":\"Address of the new agreement\"}},\"AppRegistered(address)\":{\"details\":\"App registered event\",\"params\":{\"app\":\"Address of jailed app\"}},\"GovernanceReplaced(address,address)\":{\"details\":\"Governance replaced event\",\"params\":{\"newGov\":\"Address of the new governance contract\",\"oldGov\":\"Address of the old governance contract\"}},\"Jail(address,uint256)\":{\"details\":\"Jail event for the app\",\"params\":{\"app\":\"Address of jailed app\",\"reason\":\"Reason the app is jailed (see Definitions.sol for the full list)\"}},\"SuperTokenFactoryUpdated(address)\":{\"details\":\"SuperToken factory updated event\",\"params\":{\"newFactory\":\"Address of the new factory\"}},\"SuperTokenLogicUpdated(address,address)\":{\"details\":\"SuperToken logic updated event\",\"params\":{\"code\":\"Address of the new SuperToken logic\"}}},\"kind\":\"dev\",\"methods\":{\"addToAgreementClassesBitmap(uint256,bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"bitmap\":\"Agreement class bitmap\"}},\"allowCompositeApp(address)\":{\"details\":\"Whitelist the target app for app composition for the source app (msg.sender)\",\"params\":{\"targetApp\":\"The target super app address\"}},\"appCallbackPop(bytes,int256)\":{\"custom:security\":\" - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory. - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly.\",\"details\":\"(For agreements) Pop from the current app callback stack\",\"params\":{\"appAllowanceUsedDelta\":\"App allowance used by the app.\",\"ctx\":\"The ctx that was pushed before the callback stack.\"},\"returns\":{\"newCtx\":\" The current context of the transaction.\"}},\"appCallbackPush(bytes,address,uint256,int256,address)\":{\"details\":\"(For agreements) Create a new callback stack\",\"params\":{\"app\":\"The super app.\",\"appAllowanceGranted\":\"App allowance granted so far.\",\"appAllowanceUsed\":\"App allowance used so far.\",\"ctx\":\"The current ctx, it will be validated.\"},\"returns\":{\"newCtx\":\" The current context of the transaction.\"}},\"batchCall((uint32,address,bytes)[])\":{\"details\":\"Batch call function\",\"params\":{\"operations\":\"Array of batch operations\"}},\"callAgreement(address,bytes,bytes)\":{\"details\":\"Call agreement function\",\"params\":{\"agreementClass\":\"The agreement address you are calling\",\"callData\":\"The contextual call data with placeholder ctx\",\"userData\":\"Extra user data being sent to the super app callbacks\"}},\"callAppAction(address,bytes)\":{\"custom:note\":\"See \\\"Contextless Call Proxies\\\" above for more about contextual call data.\",\"details\":\"Main use case is calling app action in a batch call via the host\",\"params\":{\"callData\":\"The contextual call data\"}},\"callAppAfterCallback(address,bytes,bool,bytes)\":{\"details\":\"(For agreements) Call the app after callback\",\"params\":{\"app\":\"The super app.\",\"callData\":\"The call data sending to the super app.\",\"ctx\":\"Current ctx, it will be validated.\",\"isTermination\":\"Is it a termination callback?\"},\"returns\":{\"newCtx\":\" The current context of the transaction.\"}},\"callAppBeforeCallback(address,bytes,bool,bytes)\":{\"details\":\"(For agreements) StaticCall the app before callback\",\"params\":{\"app\":\"The super app.\",\"callData\":\"The call data sending to the super app.\",\"ctx\":\"Current ctx, it will be validated.\",\"isTermination\":\"Is it a termination callback?\"},\"returns\":{\"cbdata\":\" Data returned from the callback.\"}},\"ctxUseAllowance(bytes,uint256,int256)\":{\"details\":\"(For agreements) Use app allowance.\",\"params\":{\"appAllowanceUsedDelta\":\"See app allowance for more details.\",\"appAllowanceWantedMore\":\"See app allowance for more details.\",\"ctx\":\"The current ctx, it will be validated.\"},\"returns\":{\"newCtx\":\" The current context of the transaction.\"}},\"forwardBatchCall((uint32,address,bytes)[])\":{\"details\":\"Batch call function for trusted forwarders (EIP-2771)\",\"params\":{\"operations\":\"Array of batch operations\"}},\"getAgreementClass(bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\"},\"getAppLevel(address)\":{\"details\":\"Query app level\",\"params\":{\"app\":\"Super app address\"}},\"getAppManifest(address)\":{\"details\":\"Get the manifest of the super app\",\"params\":{\"app\":\"Super app address\"}},\"getGovernance()\":{\"details\":\"Get the current governance address of the Superfluid host\"},\"getSuperTokenFactory()\":{\"details\":\"Get the super token factory\",\"returns\":{\"factory\":\"The factory\"}},\"getSuperTokenFactoryLogic()\":{\"details\":\"Get the super token factory logic (applicable to upgradable deployment)\",\"returns\":{\"logic\":\"The factory logic\"}},\"isAgreementClassListed(address)\":{\"details\":\"Check if the agreement class is whitelisted\"},\"isAgreementTypeListed(bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\"},\"isApp(address)\":{\"details\":\"Query if the app is registered\",\"params\":{\"app\":\"Super app address\"}},\"isAppJailed(address)\":{\"details\":\"Query if the app has been jailed\",\"params\":{\"app\":\"Super app address\"}},\"isCompositeAppAllowed(address,address)\":{\"details\":\"Query if source app is allowed to call the target app as downstream app\",\"params\":{\"app\":\"Super app address\",\"targetApp\":\"The target super app address\"}},\"jailApp(bytes,address,uint256)\":{\"details\":\"(For agreements) Jail the app.\",\"params\":{\"app\":\"The super app.\",\"reason\":\"Jail reason code.\"},\"returns\":{\"newCtx\":\" The current context of the transaction.\"}},\"mapAgreementClasses(uint256)\":{\"details\":\"Map list of the agreement classes using a bitmap\",\"params\":{\"bitmap\":\"Agreement class bitmap\"}},\"registerAgreementClass(address)\":{\"custom:modifiers\":\" - onlyGovernance\",\"details\":\"Register a new agreement class to the system\",\"params\":{\"agreementClassLogic\":\"Initial agreement class code\"}},\"registerApp(uint256)\":{\"custom:deprecated\":\"you should use `registerAppWithKey` or `registerAppByFactory` instead, because app registration is currently governance permissioned on mainnets.\",\"details\":\"Message sender (must be a contract) declares itself as a super app.\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\"}},\"registerAppByFactory(address,uint256)\":{\"details\":\"Message sender (must be a contract) declares app as a super app\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\"}},\"registerAppWithKey(uint256,string)\":{\"details\":\"Message sender declares itself as a super app.\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\",\"registrationKey\":\"The registration key issued by the governance, needed to register on a mainnet.\"}},\"removeFromAgreementClassesBitmap(uint256,bytes32)\":{\"details\":\"agreementType is the keccak256 hash of: \\\"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\\\"\",\"params\":{\"bitmap\":\"Agreement class bitmap\"}},\"replaceGovernance(address)\":{\"details\":\"Replace the current governance with a new one\"},\"updateAgreementClass(address)\":{\"custom:modifiers\":\" - onlyGovernance\",\"details\":\"Update code of an agreement class\",\"params\":{\"agreementClassLogic\":\"New code for the agreement class\"}},\"updateSuperTokenFactory(address)\":{\"details\":\"Update super token factory\",\"params\":{\"newFactory\":\"New factory logic\"}},\"updateSuperTokenLogic(address)\":{\"details\":\"Refer to ISuperTokenFactory.Upgradability for expected behaviours\"}},\"title\":\"Host interface\",\"version\":1},\"userdoc\":{\"events\":{\"AgreementClassRegistered(bytes32,address)\":{\"notice\":\"Agreement class registered event\"},\"AgreementClassUpdated(bytes32,address)\":{\"notice\":\"Agreement class updated event\"}},\"kind\":\"user\",\"methods\":{\"addToAgreementClassesBitmap(uint256,bytes32)\":{\"notice\":\"Create a new bitmask by adding a agreement class to it\"},\"callAppAction(address,bytes)\":{\"notice\":\"Call app action\"},\"getAgreementClass(bytes32)\":{\"notice\":\"Get agreement class\"},\"isAgreementTypeListed(bytes32)\":{\"notice\":\"Check if the agreement type is whitelisted\"},\"registerAppByFactory(address,uint256)\":{\"notice\":\"On mainnet deployments, only factory contracts pre-authorized by governance can use this. See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\"},\"registerAppWithKey(uint256,string)\":{\"notice\":\"See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide On testnets or in dev environment, a placeholder (e.g. empty string) can be used. While the message sender must be the super app itself, the transaction sender (tx.origin) must be the deployer account the registration key was issued for.\"},\"removeFromAgreementClassesBitmap(uint256,bytes32)\":{\"notice\":\"Create a new bitmask by removing a agreement class from it\"},\"updateSuperTokenLogic(address)\":{\"notice\":\"Update the super token logic to the latest\"}},\"notice\":\"This is the central contract of the system where super agreement, super app and super token features are connected. The Superfluid host contract is also the entry point for the protocol users, where batch call and meta transaction are provided for UX improvements.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/superfluid/ISuperfluid.sol\":\"ISuperfluid\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@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\"]},\"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\"]}},\"version\":1}",
1005
1005
  "bytecode": "0x",
1006
1006
  "deployedBytecode": "0x",
1007
1007
  "immutableReferences": {},
@@ -1009,7 +1009,7 @@
1009
1009
  "deployedGeneratedSources": [],
1010
1010
  "sourceMap": "",
1011
1011
  "deployedSourceMap": "",
1012
- "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity >= 0.8.2;\n\nimport { ISuperfluidGovernance } from \"./ISuperfluidGovernance.sol\";\nimport { ISuperfluidToken } from \"./ISuperfluidToken.sol\";\nimport { ISuperToken } from \"./ISuperToken.sol\";\nimport { ISuperTokenFactory } from \"./ISuperTokenFactory.sol\";\nimport { ISuperAgreement } from \"./ISuperAgreement.sol\";\nimport { ISuperApp } from \"./ISuperApp.sol\";\nimport {\n BatchOperation,\n ContextDefinitions,\n FlowOperatorDefinitions,\n SuperAppDefinitions,\n SuperfluidGovernanceConfigs\n} from \"./Definitions.sol\";\nimport { TokenInfo } from \"../tokens/TokenInfo.sol\";\nimport { IERC20 } from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport { IERC777 } from \"@openzeppelin/contracts/token/ERC777/IERC777.sol\";\n\n/**\n * @title Host interface\n * @author Superfluid\n * NOTE:\n * This is the central contract of the system where super agreement, super app\n * and super token features are connected.\n *\n * The Superfluid host contract is also the entry point for the protocol users,\n * where batch call and meta transaction are provided for UX improvements.\n *\n */\ninterface ISuperfluid {\n\n /**************************************************************************\n * Time\n *\n * > The Oracle: You have the sight now, Neo. You are looking at the world without time.\n * > Neo: Then why can't I see what happens to her?\n * > The Oracle: We can never see past the choices we don't understand.\n * > - The Oracle and Neo conversing about the future of Trinity and the effects of Neo's choices\n *************************************************************************/\n\n function getNow() external view returns (uint256);\n\n /**************************************************************************\n * Governance\n *************************************************************************/\n\n /**\n * @dev Get the current governance address of the Superfluid host\n */\n function getGovernance() external view returns(ISuperfluidGovernance governance);\n\n /**\n * @dev Replace the current governance with a new one\n */\n function replaceGovernance(ISuperfluidGovernance newGov) external;\n /**\n * @dev Governance replaced event\n * @param oldGov Address of the old governance contract\n * @param newGov Address of the new governance contract\n */\n event GovernanceReplaced(ISuperfluidGovernance oldGov, ISuperfluidGovernance newGov);\n\n /**************************************************************************\n * Agreement Whitelisting\n *************************************************************************/\n\n /**\n * @dev Register a new agreement class to the system\n * @param agreementClassLogic Initial agreement class code\n *\n * Modifiers:\n * - onlyGovernance\n */\n function registerAgreementClass(ISuperAgreement agreementClassLogic) external;\n /**\n * @notice Agreement class registered event\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param agreementType The agreement type registered\n * @param code Address of the new agreement\n */\n event AgreementClassRegistered(bytes32 agreementType, address code);\n\n /**\n * @dev Update code of an agreement class\n * @param agreementClassLogic New code for the agreement class\n *\n * Modifiers:\n * - onlyGovernance\n */\n function updateAgreementClass(ISuperAgreement agreementClassLogic) external;\n /**\n * @notice Agreement class updated event\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param agreementType The agreement type updated\n * @param code Address of the new agreement\n */\n event AgreementClassUpdated(bytes32 agreementType, address code);\n\n /**\n * @notice Check if the agreement type is whitelisted\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n */\n function isAgreementTypeListed(bytes32 agreementType) external view returns(bool yes);\n\n /**\n * @dev Check if the agreement class is whitelisted\n */\n function isAgreementClassListed(ISuperAgreement agreementClass) external view returns(bool yes);\n\n /**\n * @notice Get agreement class\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n */\n function getAgreementClass(bytes32 agreementType) external view returns(ISuperAgreement agreementClass);\n\n /**\n * @dev Map list of the agreement classes using a bitmap\n * @param bitmap Agreement class bitmap\n */\n function mapAgreementClasses(uint256 bitmap)\n external view\n returns (ISuperAgreement[] memory agreementClasses);\n\n /**\n * @notice Create a new bitmask by adding a agreement class to it\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param bitmap Agreement class bitmap\n */\n function addToAgreementClassesBitmap(uint256 bitmap, bytes32 agreementType)\n external view\n returns (uint256 newBitmap);\n\n /**\n * @notice Create a new bitmask by removing a agreement class from it\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param bitmap Agreement class bitmap\n */\n function removeFromAgreementClassesBitmap(uint256 bitmap, bytes32 agreementType)\n external view\n returns (uint256 newBitmap);\n\n /**************************************************************************\n * Super Token Factory\n **************************************************************************/\n\n /**\n * @dev Get the super token factory\n * @return factory The factory\n */\n function getSuperTokenFactory() external view returns (ISuperTokenFactory factory);\n\n /**\n * @dev Get the super token factory logic (applicable to upgradable deployment)\n * @return logic The factory logic\n */\n function getSuperTokenFactoryLogic() external view returns (address logic);\n\n /**\n * @dev Update super token factory\n * @param newFactory New factory logic\n */\n function updateSuperTokenFactory(ISuperTokenFactory newFactory) external;\n /**\n * @dev SuperToken factory updated event\n * @param newFactory Address of the new factory\n */\n event SuperTokenFactoryUpdated(ISuperTokenFactory newFactory);\n\n /**\n * @notice Update the super token logic to the latest\n * @dev Refer to ISuperTokenFactory.Upgradability for expected behaviours\n */\n function updateSuperTokenLogic(ISuperToken token) external;\n /**\n * @dev SuperToken logic updated event\n * @param code Address of the new SuperToken logic\n */\n event SuperTokenLogicUpdated(ISuperToken indexed token, address code);\n\n /**************************************************************************\n * App Registry\n *************************************************************************/\n\n /**\n * @dev Message sender (must be a contract) declares itself as a super app.\n * @custom:deprecated you should use `registerAppWithKey` or `registerAppByFactory` instead,\n * because app registration is currently governance permissioned on mainnets.\n * @param configWord The super app manifest configuration, flags are defined in\n * `SuperAppDefinitions`\n */\n function registerApp(uint256 configWord) external;\n /**\n * @dev App registered event\n * @param app Address of jailed app\n */\n event AppRegistered(ISuperApp indexed app);\n\n /**\n * @dev Message sender declares itself as a super app.\n * @param configWord The super app manifest configuration, flags are defined in\n * `SuperAppDefinitions`\n * @param registrationKey The registration key issued by the governance, needed to\n * register on a mainnet.\n * See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\n * On testnets or in dev environment, a placeholder (e.g. empty string) can be used.\n * @notice While the message sender must be the super app itself, the transaction sender (tx.origin)\n * must be the deployer account the registration key was issued for.\n */\n function registerAppWithKey(uint256 configWord, string calldata registrationKey) external;\n\n /**\n * @dev Message sender (must be a contract) declares app as a super app\n * @param configWord The super app manifest configuration, flags are defined in\n * `SuperAppDefinitions`\n * @notice On mainnet deployments, only factory contracts pre-authorized by governance can use this.\n * See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\n */\n function registerAppByFactory(ISuperApp app, uint256 configWord) external;\n\n /**\n * @dev Query if the app is registered\n * @param app Super app address\n */\n function isApp(ISuperApp app) external view returns(bool);\n\n /**\n * @dev Query app level\n * @param app Super app address\n */\n function getAppLevel(ISuperApp app) external view returns(uint8 appLevel);\n\n /**\n * @dev Get the manifest of the super app\n * @param app Super app address\n */\n function getAppManifest(\n ISuperApp app\n )\n external view\n returns (\n bool isSuperApp,\n bool isJailed,\n uint256 noopMask\n );\n\n /**\n * @dev Query if the app has been jailed\n * @param app Super app address\n */\n function isAppJailed(ISuperApp app) external view returns (bool isJail);\n\n /**\n * @dev Whitelist the target app for app composition for the source app (msg.sender)\n * @param targetApp The target super app address\n */\n function allowCompositeApp(ISuperApp targetApp) external;\n\n /**\n * @dev Query if source app is allowed to call the target app as downstream app\n * @param app Super app address\n * @param targetApp The target super app address\n */\n function isCompositeAppAllowed(\n ISuperApp app,\n ISuperApp targetApp\n )\n external view\n returns (bool isAppAllowed);\n\n /**************************************************************************\n * Agreement Framework\n *\n * Agreements use these function to trigger super app callbacks, updates\n * app allowance and charge gas fees.\n *\n * These functions can only be called by registered agreements.\n *************************************************************************/\n\n /**\n * @dev (For agreements) StaticCall the app before callback\n * @param app The super app.\n * @param callData The call data sending to the super app.\n * @param isTermination Is it a termination callback?\n * @param ctx Current ctx, it will be validated.\n * @return cbdata Data returned from the callback.\n */\n function callAppBeforeCallback(\n ISuperApp app,\n bytes calldata callData,\n bool isTermination,\n bytes calldata ctx\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns(bytes memory cbdata);\n\n /**\n * @dev (For agreements) Call the app after callback\n * @param app The super app.\n * @param callData The call data sending to the super app.\n * @param isTermination Is it a termination callback?\n * @param ctx Current ctx, it will be validated.\n * @return newCtx\n */\n function callAppAfterCallback(\n ISuperApp app,\n bytes calldata callData,\n bool isTermination,\n bytes calldata ctx\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns(bytes memory newCtx);\n\n /**\n * @dev (For agreements) Create a new callback stack\n * @param ctx The current ctx, it will be validated.\n * @param app The super app.\n * @param appAllowanceGranted App allowance granted so far.\n * @param appAllowanceUsed App allowance used so far.\n * @return newCtx\n */\n function appCallbackPush(\n bytes calldata ctx,\n ISuperApp app,\n uint256 appAllowanceGranted,\n int256 appAllowanceUsed,\n ISuperfluidToken appAllowanceToken\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns (bytes memory newCtx);\n\n /**\n * @dev (For agreements) Pop from the current app callback stack\n * @param ctx The ctx that was pushed before the callback stack.\n * @param appAllowanceUsedDelta App allowance used by the app.\n * @return newCtx\n *\n * [SECURITY] NOTE:\n * - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory.\n * - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly.\n */\n function appCallbackPop(\n bytes calldata ctx,\n int256 appAllowanceUsedDelta\n )\n external\n // onlyAgreement\n returns (bytes memory newCtx);\n\n /**\n * @dev (For agreements) Use app allowance.\n * @param ctx The current ctx, it will be validated.\n * @param appAllowanceWantedMore See app allowance for more details.\n * @param appAllowanceUsedDelta See app allowance for more details.\n * @return newCtx\n */\n function ctxUseAllowance(\n bytes calldata ctx,\n uint256 appAllowanceWantedMore,\n int256 appAllowanceUsedDelta\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns (bytes memory newCtx);\n\n /**\n * @dev (For agreements) Jail the app.\n * @param app The super app.\n * @param reason Jail reason code.\n * @return newCtx\n */\n function jailApp(\n bytes calldata ctx,\n ISuperApp app,\n uint256 reason\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns (bytes memory newCtx);\n\n /**\n * @dev Jail event for the app\n * @param app Address of jailed app\n * @param reason Reason the app is jailed (see Definitions.sol for the full list)\n */\n event Jail(ISuperApp indexed app, uint256 reason);\n\n /**************************************************************************\n * Contextless Call Proxies\n *\n * NOTE: For EOAs or non-app contracts, they are the entry points for interacting\n * with agreements or apps.\n *\n * NOTE: The contextual call data should be generated using\n * abi.encodeWithSelector. The context parameter should be set to \"0x\",\n * an empty bytes array as a placeholder to be replaced by the host\n * contract.\n *************************************************************************/\n\n /**\n * @dev Call agreement function\n * @param agreementClass The agreement address you are calling\n * @param callData The contextual call data with placeholder ctx\n * @param userData Extra user data being sent to the super app callbacks\n */\n function callAgreement(\n ISuperAgreement agreementClass,\n bytes calldata callData,\n bytes calldata userData\n )\n external\n //cleanCtx\n //isAgreement(agreementClass)\n returns(bytes memory returnedData);\n\n /**\n * @notice Call app action\n * @dev Main use case is calling app action in a batch call via the host\n * @param callData The contextual call data\n *\n * NOTE: See \"Contextless Call Proxies\" above for more about contextual call data.\n */\n function callAppAction(\n ISuperApp app,\n bytes calldata callData\n )\n external\n //cleanCtx\n //isAppActive(app)\n //isValidAppAction(callData)\n returns(bytes memory returnedData);\n\n /**************************************************************************\n * Contextual Call Proxies and Context Utilities\n *\n * For apps, they must use context they receive to interact with\n * agreements or apps.\n *\n * The context changes must be saved and returned by the apps in their\n * callbacks always, any modification to the context will be detected and\n * the violating app will be jailed.\n *************************************************************************/\n\n /**\n * @dev Context Struct\n *\n * NOTE on backward compatibility:\n * - Non-dynamic fields are padded to 32bytes and packed\n * - Dynamic fields are referenced through a 32bytes offset to their \"parents\" field (or root)\n * - The order of the fields hence should not be rearranged in order to be backward compatible:\n * - non-dynamic fields will be parsed at the same memory location,\n * - and dynamic fields will simply have a greater offset than it was.\n */\n struct Context {\n //\n // Call context\n //\n // callback level\n uint8 appLevel;\n // type of call\n uint8 callType;\n // the system timestamp\n uint256 timestamp;\n // The intended message sender for the call\n address msgSender;\n\n //\n // Callback context\n //\n // For callbacks it is used to know which agreement function selector is called\n bytes4 agreementSelector;\n // User provided data for app callbacks\n bytes userData;\n\n //\n // App context\n //\n // app allowance granted\n uint256 appAllowanceGranted;\n // app allowance wanted by the app callback\n uint256 appAllowanceWanted;\n // app allowance used, allowing negative values over a callback session\n int256 appAllowanceUsed;\n // app address\n address appAddress;\n // app allowance in super token\n ISuperfluidToken appAllowanceToken;\n }\n\n function callAgreementWithContext(\n ISuperAgreement agreementClass,\n bytes calldata callData,\n bytes calldata userData,\n bytes calldata ctx\n )\n external\n // requireValidCtx(ctx)\n // onlyAgreement(agreementClass)\n returns (bytes memory newCtx, bytes memory returnedData);\n\n function callAppActionWithContext(\n ISuperApp app,\n bytes calldata callData,\n bytes calldata ctx\n )\n external\n // requireValidCtx(ctx)\n // isAppActive(app)\n returns (bytes memory newCtx);\n\n function decodeCtx(bytes calldata ctx)\n external pure\n returns (Context memory context);\n\n function isCtxValid(bytes calldata ctx) external view returns (bool);\n\n /**************************************************************************\n * Batch call\n **************************************************************************/\n /**\n * @dev Batch operation data\n */\n struct Operation {\n // Operation type. Defined in BatchOperation (Definitions.sol)\n uint32 operationType;\n // Operation target\n address target;\n // Data specific to the operation\n bytes data;\n }\n\n /**\n * @dev Batch call function\n * @param operations Array of batch operations\n */\n function batchCall(Operation[] memory operations) external;\n\n /**\n * @dev Batch call function for trusted forwarders (EIP-2771)\n * @param operations Array of batch operations\n */\n function forwardBatchCall(Operation[] memory operations) external;\n\n /**************************************************************************\n * Function modifiers for access control and parameter validations\n *\n * While they cannot be explicitly stated in function definitions, they are\n * listed in function definition comments instead for clarity.\n *\n * TODO: turning these off because solidity-coverage doesn't like it\n *************************************************************************/\n\n /* /// @dev The current superfluid context is clean.\n modifier cleanCtx() virtual;\n\n /// @dev Require the ctx being valid.\n modifier requireValidCtx(bytes memory ctx) virtual;\n\n /// @dev Assert the ctx being valid.\n modifier assertValidCtx(bytes memory ctx) virtual;\n\n /// @dev The agreement is a listed agreement.\n modifier isAgreement(ISuperAgreement agreementClass) virtual;\n\n // onlyGovernance\n\n /// @dev The msg.sender must be a listed agreement.\n modifier onlyAgreement() virtual;\n\n /// @dev The app is registered and not jailed.\n modifier isAppActive(ISuperApp app) virtual; */\n}\n",
1012
+ "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity >= 0.8.2;\n\nimport { ISuperfluidGovernance } from \"./ISuperfluidGovernance.sol\";\nimport { ISuperfluidToken } from \"./ISuperfluidToken.sol\";\nimport { ISuperToken } from \"./ISuperToken.sol\";\nimport { ISuperTokenFactory } from \"./ISuperTokenFactory.sol\";\nimport { ISuperAgreement } from \"./ISuperAgreement.sol\";\nimport { ISuperApp } from \"./ISuperApp.sol\";\nimport {\n BatchOperation,\n ContextDefinitions,\n FlowOperatorDefinitions,\n SuperAppDefinitions,\n SuperfluidGovernanceConfigs\n} from \"./Definitions.sol\";\nimport { TokenInfo } from \"../tokens/TokenInfo.sol\";\nimport { IERC20 } from \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\nimport { IERC777 } from \"@openzeppelin/contracts/token/ERC777/IERC777.sol\";\n\n/**\n * @title Host interface\n * @author Superfluid\n * @notice This is the central contract of the system where super agreement, super app\n * and super token features are connected.\n *\n * The Superfluid host contract is also the entry point for the protocol users,\n * where batch call and meta transaction are provided for UX improvements.\n *\n */\ninterface ISuperfluid {\n\n /**************************************************************************\n * Time\n *\n * > The Oracle: You have the sight now, Neo. You are looking at the world without time.\n * > Neo: Then why can't I see what happens to her?\n * > The Oracle: We can never see past the choices we don't understand.\n * > - The Oracle and Neo conversing about the future of Trinity and the effects of Neo's choices\n *************************************************************************/\n\n function getNow() external view returns (uint256);\n\n /**************************************************************************\n * Governance\n *************************************************************************/\n\n /**\n * @dev Get the current governance address of the Superfluid host\n */\n function getGovernance() external view returns(ISuperfluidGovernance governance);\n\n /**\n * @dev Replace the current governance with a new one\n */\n function replaceGovernance(ISuperfluidGovernance newGov) external;\n /**\n * @dev Governance replaced event\n * @param oldGov Address of the old governance contract\n * @param newGov Address of the new governance contract\n */\n event GovernanceReplaced(ISuperfluidGovernance oldGov, ISuperfluidGovernance newGov);\n\n /**************************************************************************\n * Agreement Whitelisting\n *************************************************************************/\n\n /**\n * @dev Register a new agreement class to the system\n * @param agreementClassLogic Initial agreement class code\n *\n * @custom:modifiers \n * - onlyGovernance\n */\n function registerAgreementClass(ISuperAgreement agreementClassLogic) external;\n /**\n * @notice Agreement class registered event\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param agreementType The agreement type registered\n * @param code Address of the new agreement\n */\n event AgreementClassRegistered(bytes32 agreementType, address code);\n\n /**\n * @dev Update code of an agreement class\n * @param agreementClassLogic New code for the agreement class\n *\n * @custom:modifiers \n * - onlyGovernance\n */\n function updateAgreementClass(ISuperAgreement agreementClassLogic) external;\n /**\n * @notice Agreement class updated event\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param agreementType The agreement type updated\n * @param code Address of the new agreement\n */\n event AgreementClassUpdated(bytes32 agreementType, address code);\n\n /**\n * @notice Check if the agreement type is whitelisted\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n */\n function isAgreementTypeListed(bytes32 agreementType) external view returns(bool yes);\n\n /**\n * @dev Check if the agreement class is whitelisted\n */\n function isAgreementClassListed(ISuperAgreement agreementClass) external view returns(bool yes);\n\n /**\n * @notice Get agreement class\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n */\n function getAgreementClass(bytes32 agreementType) external view returns(ISuperAgreement agreementClass);\n\n /**\n * @dev Map list of the agreement classes using a bitmap\n * @param bitmap Agreement class bitmap\n */\n function mapAgreementClasses(uint256 bitmap)\n external view\n returns (ISuperAgreement[] memory agreementClasses);\n\n /**\n * @notice Create a new bitmask by adding a agreement class to it\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param bitmap Agreement class bitmap\n */\n function addToAgreementClassesBitmap(uint256 bitmap, bytes32 agreementType)\n external view\n returns (uint256 newBitmap);\n\n /**\n * @notice Create a new bitmask by removing a agreement class from it\n * @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n * @param bitmap Agreement class bitmap\n */\n function removeFromAgreementClassesBitmap(uint256 bitmap, bytes32 agreementType)\n external view\n returns (uint256 newBitmap);\n\n /**************************************************************************\n * Super Token Factory\n **************************************************************************/\n\n /**\n * @dev Get the super token factory\n * @return factory The factory\n */\n function getSuperTokenFactory() external view returns (ISuperTokenFactory factory);\n\n /**\n * @dev Get the super token factory logic (applicable to upgradable deployment)\n * @return logic The factory logic\n */\n function getSuperTokenFactoryLogic() external view returns (address logic);\n\n /**\n * @dev Update super token factory\n * @param newFactory New factory logic\n */\n function updateSuperTokenFactory(ISuperTokenFactory newFactory) external;\n /**\n * @dev SuperToken factory updated event\n * @param newFactory Address of the new factory\n */\n event SuperTokenFactoryUpdated(ISuperTokenFactory newFactory);\n\n /**\n * @notice Update the super token logic to the latest\n * @dev Refer to ISuperTokenFactory.Upgradability for expected behaviours\n */\n function updateSuperTokenLogic(ISuperToken token) external;\n /**\n * @dev SuperToken logic updated event\n * @param code Address of the new SuperToken logic\n */\n event SuperTokenLogicUpdated(ISuperToken indexed token, address code);\n\n /**************************************************************************\n * App Registry\n *************************************************************************/\n\n /**\n * @dev Message sender (must be a contract) declares itself as a super app.\n * @custom:deprecated you should use `registerAppWithKey` or `registerAppByFactory` instead,\n * because app registration is currently governance permissioned on mainnets.\n * @param configWord The super app manifest configuration, flags are defined in\n * `SuperAppDefinitions`\n */\n function registerApp(uint256 configWord) external;\n /**\n * @dev App registered event\n * @param app Address of jailed app\n */\n event AppRegistered(ISuperApp indexed app);\n\n /**\n * @dev Message sender declares itself as a super app.\n * @param configWord The super app manifest configuration, flags are defined in `SuperAppDefinitions`\n * @param registrationKey The registration key issued by the governance, needed to register on a mainnet.\n * @notice See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\n * On testnets or in dev environment, a placeholder (e.g. empty string) can be used.\n * While the message sender must be the super app itself, the transaction sender (tx.origin)\n * must be the deployer account the registration key was issued for.\n */\n function registerAppWithKey(uint256 configWord, string calldata registrationKey) external;\n\n /**\n * @dev Message sender (must be a contract) declares app as a super app\n * @param configWord The super app manifest configuration, flags are defined in `SuperAppDefinitions`\n * @notice On mainnet deployments, only factory contracts pre-authorized by governance can use this.\n * See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\n */\n function registerAppByFactory(ISuperApp app, uint256 configWord) external;\n\n /**\n * @dev Query if the app is registered\n * @param app Super app address\n */\n function isApp(ISuperApp app) external view returns(bool);\n\n /**\n * @dev Query app level\n * @param app Super app address\n */\n function getAppLevel(ISuperApp app) external view returns(uint8 appLevel);\n\n /**\n * @dev Get the manifest of the super app\n * @param app Super app address\n */\n function getAppManifest(\n ISuperApp app\n )\n external view\n returns (\n bool isSuperApp,\n bool isJailed,\n uint256 noopMask\n );\n\n /**\n * @dev Query if the app has been jailed\n * @param app Super app address\n */\n function isAppJailed(ISuperApp app) external view returns (bool isJail);\n\n /**\n * @dev Whitelist the target app for app composition for the source app (msg.sender)\n * @param targetApp The target super app address\n */\n function allowCompositeApp(ISuperApp targetApp) external;\n\n /**\n * @dev Query if source app is allowed to call the target app as downstream app\n * @param app Super app address\n * @param targetApp The target super app address\n */\n function isCompositeAppAllowed(\n ISuperApp app,\n ISuperApp targetApp\n )\n external view\n returns (bool isAppAllowed);\n\n /**************************************************************************\n * Agreement Framework\n *\n * Agreements use these function to trigger super app callbacks, updates\n * app allowance and charge gas fees.\n *\n * These functions can only be called by registered agreements.\n *************************************************************************/\n\n /**\n * @dev (For agreements) StaticCall the app before callback\n * @param app The super app.\n * @param callData The call data sending to the super app.\n * @param isTermination Is it a termination callback?\n * @param ctx Current ctx, it will be validated.\n * @return cbdata Data returned from the callback.\n */\n function callAppBeforeCallback(\n ISuperApp app,\n bytes calldata callData,\n bool isTermination,\n bytes calldata ctx\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns(bytes memory cbdata);\n\n /**\n * @dev (For agreements) Call the app after callback\n * @param app The super app.\n * @param callData The call data sending to the super app.\n * @param isTermination Is it a termination callback?\n * @param ctx Current ctx, it will be validated.\n * @return newCtx The current context of the transaction.\n */\n function callAppAfterCallback(\n ISuperApp app,\n bytes calldata callData,\n bool isTermination,\n bytes calldata ctx\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns(bytes memory newCtx);\n\n /**\n * @dev (For agreements) Create a new callback stack\n * @param ctx The current ctx, it will be validated.\n * @param app The super app.\n * @param appAllowanceGranted App allowance granted so far.\n * @param appAllowanceUsed App allowance used so far.\n * @return newCtx The current context of the transaction.\n */\n function appCallbackPush(\n bytes calldata ctx,\n ISuperApp app,\n uint256 appAllowanceGranted,\n int256 appAllowanceUsed,\n ISuperfluidToken appAllowanceToken\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns (bytes memory newCtx);\n\n /**\n * @dev (For agreements) Pop from the current app callback stack\n * @param ctx The ctx that was pushed before the callback stack.\n * @param appAllowanceUsedDelta App allowance used by the app.\n * @return newCtx The current context of the transaction.\n *\n * @custom:security \n * - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory.\n * - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly.\n */\n function appCallbackPop(\n bytes calldata ctx,\n int256 appAllowanceUsedDelta\n )\n external\n // onlyAgreement\n returns (bytes memory newCtx);\n\n /**\n * @dev (For agreements) Use app allowance.\n * @param ctx The current ctx, it will be validated.\n * @param appAllowanceWantedMore See app allowance for more details.\n * @param appAllowanceUsedDelta See app allowance for more details.\n * @return newCtx The current context of the transaction.\n */\n function ctxUseAllowance(\n bytes calldata ctx,\n uint256 appAllowanceWantedMore,\n int256 appAllowanceUsedDelta\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns (bytes memory newCtx);\n\n /**\n * @dev (For agreements) Jail the app.\n * @param app The super app.\n * @param reason Jail reason code.\n * @return newCtx The current context of the transaction.\n */\n function jailApp(\n bytes calldata ctx,\n ISuperApp app,\n uint256 reason\n )\n external\n // onlyAgreement\n // assertValidCtx(ctx)\n returns (bytes memory newCtx);\n\n /**\n * @dev Jail event for the app\n * @param app Address of jailed app\n * @param reason Reason the app is jailed (see Definitions.sol for the full list)\n */\n event Jail(ISuperApp indexed app, uint256 reason);\n\n /**************************************************************************\n * Contextless Call Proxies\n *\n * NOTE: For EOAs or non-app contracts, they are the entry points for interacting\n * with agreements or apps.\n *\n * NOTE: The contextual call data should be generated using\n * abi.encodeWithSelector. The context parameter should be set to \"0x\",\n * an empty bytes array as a placeholder to be replaced by the host\n * contract.\n *************************************************************************/\n\n /**\n * @dev Call agreement function\n * @param agreementClass The agreement address you are calling\n * @param callData The contextual call data with placeholder ctx\n * @param userData Extra user data being sent to the super app callbacks\n */\n function callAgreement(\n ISuperAgreement agreementClass,\n bytes calldata callData,\n bytes calldata userData\n )\n external\n //cleanCtx\n //isAgreement(agreementClass)\n returns(bytes memory returnedData);\n\n /**\n * @notice Call app action\n * @dev Main use case is calling app action in a batch call via the host\n * @param callData The contextual call data\n *\n * @custom:note See \"Contextless Call Proxies\" above for more about contextual call data.\n */\n function callAppAction(\n ISuperApp app,\n bytes calldata callData\n )\n external\n //cleanCtx\n //isAppActive(app)\n //isValidAppAction(callData)\n returns(bytes memory returnedData);\n\n /**************************************************************************\n * Contextual Call Proxies and Context Utilities\n *\n * For apps, they must use context they receive to interact with\n * agreements or apps.\n *\n * The context changes must be saved and returned by the apps in their\n * callbacks always, any modification to the context will be detected and\n * the violating app will be jailed.\n *************************************************************************/\n\n /**\n * @dev Context Struct\n *\n * @custom:note on backward compatibility:\n * - Non-dynamic fields are padded to 32bytes and packed\n * - Dynamic fields are referenced through a 32bytes offset to their \"parents\" field (or root)\n * - The order of the fields hence should not be rearranged in order to be backward compatible:\n * - non-dynamic fields will be parsed at the same memory location,\n * - and dynamic fields will simply have a greater offset than it was.\n */\n struct Context {\n //\n // Call context\n //\n // callback level\n uint8 appLevel;\n // type of call\n uint8 callType;\n // the system timestamp\n uint256 timestamp;\n // The intended message sender for the call\n address msgSender;\n\n //\n // Callback context\n //\n // For callbacks it is used to know which agreement function selector is called\n bytes4 agreementSelector;\n // User provided data for app callbacks\n bytes userData;\n\n //\n // App context\n //\n // app allowance granted\n uint256 appAllowanceGranted;\n // app allowance wanted by the app callback\n uint256 appAllowanceWanted;\n // app allowance used, allowing negative values over a callback session\n int256 appAllowanceUsed;\n // app address\n address appAddress;\n // app allowance in super token\n ISuperfluidToken appAllowanceToken;\n }\n\n function callAgreementWithContext(\n ISuperAgreement agreementClass,\n bytes calldata callData,\n bytes calldata userData,\n bytes calldata ctx\n )\n external\n // requireValidCtx(ctx)\n // onlyAgreement(agreementClass)\n returns (bytes memory newCtx, bytes memory returnedData);\n\n function callAppActionWithContext(\n ISuperApp app,\n bytes calldata callData,\n bytes calldata ctx\n )\n external\n // requireValidCtx(ctx)\n // isAppActive(app)\n returns (bytes memory newCtx);\n\n function decodeCtx(bytes calldata ctx)\n external pure\n returns (Context memory context);\n\n function isCtxValid(bytes calldata ctx) external view returns (bool);\n\n /**************************************************************************\n * Batch call\n **************************************************************************/\n /**\n * @dev Batch operation data\n */\n struct Operation {\n // Operation type. Defined in BatchOperation (Definitions.sol)\n uint32 operationType;\n // Operation target\n address target;\n // Data specific to the operation\n bytes data;\n }\n\n /**\n * @dev Batch call function\n * @param operations Array of batch operations\n */\n function batchCall(Operation[] memory operations) external;\n\n /**\n * @dev Batch call function for trusted forwarders (EIP-2771)\n * @param operations Array of batch operations\n */\n function forwardBatchCall(Operation[] memory operations) external;\n\n /**************************************************************************\n * Function modifiers for access control and parameter validations\n *\n * While they cannot be explicitly stated in function definitions, they are\n * listed in function definition comments instead for clarity.\n *\n * TODO: turning these off because solidity-coverage doesn't like it\n *************************************************************************/\n\n /* /// @dev The current superfluid context is clean.\n modifier cleanCtx() virtual;\n\n /// @dev Require the ctx being valid.\n modifier requireValidCtx(bytes memory ctx) virtual;\n\n /// @dev Assert the ctx being valid.\n modifier assertValidCtx(bytes memory ctx) virtual;\n\n /// @dev The agreement is a listed agreement.\n modifier isAgreement(ISuperAgreement agreementClass) virtual;\n\n // onlyGovernance\n\n /// @dev The msg.sender must be a listed agreement.\n modifier onlyAgreement() virtual;\n\n /// @dev The app is registered and not jailed.\n modifier isAppActive(ISuperApp app) virtual; */\n}\n",
1013
1013
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol",
1014
1014
  "ast": {
1015
1015
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluid.sol",
@@ -1382,8 +1382,8 @@
1382
1382
  "documentation": {
1383
1383
  "id": 17877,
1384
1384
  "nodeType": "StructuredDocumentation",
1385
- "src": "774:346:47",
1386
- "text": " @title Host interface\n @author Superfluid\n NOTE:\n This is the central contract of the system where super agreement, super app\n and super token features are connected.\n The Superfluid host contract is also the entry point for the protocol users,\n where batch call and meta transaction are provided for UX improvements."
1385
+ "src": "774:345:47",
1386
+ "text": " @title Host interface\n @author Superfluid\n @notice This is the central contract of the system where super agreement, super app\n and super token features are connected.\n The Superfluid host contract is also the entry point for the protocol users,\n where batch call and meta transaction are provided for UX improvements."
1387
1387
  },
1388
1388
  "fullyImplemented": false,
1389
1389
  "id": 18324,
@@ -1391,7 +1391,7 @@
1391
1391
  18324
1392
1392
  ],
1393
1393
  "name": "ISuperfluid",
1394
- "nameLocation": "1131:11:47",
1394
+ "nameLocation": "1130:11:47",
1395
1395
  "nodeType": "ContractDefinition",
1396
1396
  "nodes": [
1397
1397
  {
@@ -1401,13 +1401,13 @@
1401
1401
  "kind": "function",
1402
1402
  "modifiers": [],
1403
1403
  "name": "getNow",
1404
- "nameLocation": "1672:6:47",
1404
+ "nameLocation": "1671:6:47",
1405
1405
  "nodeType": "FunctionDefinition",
1406
1406
  "parameters": {
1407
1407
  "id": 17878,
1408
1408
  "nodeType": "ParameterList",
1409
1409
  "parameters": [],
1410
- "src": "1678:2:47"
1410
+ "src": "1677:2:47"
1411
1411
  },
1412
1412
  "returnParameters": {
1413
1413
  "id": 17881,
@@ -1421,7 +1421,7 @@
1421
1421
  "nameLocation": "-1:-1:-1",
1422
1422
  "nodeType": "VariableDeclaration",
1423
1423
  "scope": 17882,
1424
- "src": "1704:7:47",
1424
+ "src": "1703:7:47",
1425
1425
  "stateVariable": false,
1426
1426
  "storageLocation": "default",
1427
1427
  "typeDescriptions": {
@@ -1432,7 +1432,7 @@
1432
1432
  "id": 17879,
1433
1433
  "name": "uint256",
1434
1434
  "nodeType": "ElementaryTypeName",
1435
- "src": "1704:7:47",
1435
+ "src": "1703:7:47",
1436
1436
  "typeDescriptions": {
1437
1437
  "typeIdentifier": "t_uint256",
1438
1438
  "typeString": "uint256"
@@ -1441,10 +1441,10 @@
1441
1441
  "visibility": "internal"
1442
1442
  }
1443
1443
  ],
1444
- "src": "1703:9:47"
1444
+ "src": "1702:9:47"
1445
1445
  },
1446
1446
  "scope": 18324,
1447
- "src": "1663:50:47",
1447
+ "src": "1662:50:47",
1448
1448
  "stateMutability": "view",
1449
1449
  "virtual": false,
1450
1450
  "visibility": "external"
@@ -1453,7 +1453,7 @@
1453
1453
  "documentation": {
1454
1454
  "id": 17883,
1455
1455
  "nodeType": "StructuredDocumentation",
1456
- "src": "1898:81:47",
1456
+ "src": "1897:81:47",
1457
1457
  "text": " @dev Get the current governance address of the Superfluid host"
1458
1458
  },
1459
1459
  "functionSelector": "289b3c0d",
@@ -1462,13 +1462,13 @@
1462
1462
  "kind": "function",
1463
1463
  "modifiers": [],
1464
1464
  "name": "getGovernance",
1465
- "nameLocation": "1993:13:47",
1465
+ "nameLocation": "1992:13:47",
1466
1466
  "nodeType": "FunctionDefinition",
1467
1467
  "parameters": {
1468
1468
  "id": 17884,
1469
1469
  "nodeType": "ParameterList",
1470
1470
  "parameters": [],
1471
- "src": "2006:2:47"
1471
+ "src": "2005:2:47"
1472
1472
  },
1473
1473
  "returnParameters": {
1474
1474
  "id": 17888,
@@ -1479,10 +1479,10 @@
1479
1479
  "id": 17887,
1480
1480
  "mutability": "mutable",
1481
1481
  "name": "governance",
1482
- "nameLocation": "2053:10:47",
1482
+ "nameLocation": "2052:10:47",
1483
1483
  "nodeType": "VariableDeclaration",
1484
1484
  "scope": 17889,
1485
- "src": "2031:32:47",
1485
+ "src": "2030:32:47",
1486
1486
  "stateVariable": false,
1487
1487
  "storageLocation": "default",
1488
1488
  "typeDescriptions": {
@@ -1497,10 +1497,10 @@
1497
1497
  "name": "ISuperfluidGovernance",
1498
1498
  "nodeType": "IdentifierPath",
1499
1499
  "referencedDeclaration": 18447,
1500
- "src": "2031:21:47"
1500
+ "src": "2030:21:47"
1501
1501
  },
1502
1502
  "referencedDeclaration": 18447,
1503
- "src": "2031:21:47",
1503
+ "src": "2030:21:47",
1504
1504
  "typeDescriptions": {
1505
1505
  "typeIdentifier": "t_contract$_ISuperfluidGovernance_$18447",
1506
1506
  "typeString": "contract ISuperfluidGovernance"
@@ -1509,10 +1509,10 @@
1509
1509
  "visibility": "internal"
1510
1510
  }
1511
1511
  ],
1512
- "src": "2030:34:47"
1512
+ "src": "2029:34:47"
1513
1513
  },
1514
1514
  "scope": 18324,
1515
- "src": "1984:81:47",
1515
+ "src": "1983:81:47",
1516
1516
  "stateMutability": "view",
1517
1517
  "virtual": false,
1518
1518
  "visibility": "external"
@@ -1521,7 +1521,7 @@
1521
1521
  "documentation": {
1522
1522
  "id": 17890,
1523
1523
  "nodeType": "StructuredDocumentation",
1524
- "src": "2071:69:47",
1524
+ "src": "2070:69:47",
1525
1525
  "text": " @dev Replace the current governance with a new one"
1526
1526
  },
1527
1527
  "functionSelector": "7283100c",
@@ -1530,7 +1530,7 @@
1530
1530
  "kind": "function",
1531
1531
  "modifiers": [],
1532
1532
  "name": "replaceGovernance",
1533
- "nameLocation": "2154:17:47",
1533
+ "nameLocation": "2153:17:47",
1534
1534
  "nodeType": "FunctionDefinition",
1535
1535
  "parameters": {
1536
1536
  "id": 17894,
@@ -1541,10 +1541,10 @@
1541
1541
  "id": 17893,
1542
1542
  "mutability": "mutable",
1543
1543
  "name": "newGov",
1544
- "nameLocation": "2194:6:47",
1544
+ "nameLocation": "2193:6:47",
1545
1545
  "nodeType": "VariableDeclaration",
1546
1546
  "scope": 17896,
1547
- "src": "2172:28:47",
1547
+ "src": "2171:28:47",
1548
1548
  "stateVariable": false,
1549
1549
  "storageLocation": "default",
1550
1550
  "typeDescriptions": {
@@ -1559,10 +1559,10 @@
1559
1559
  "name": "ISuperfluidGovernance",
1560
1560
  "nodeType": "IdentifierPath",
1561
1561
  "referencedDeclaration": 18447,
1562
- "src": "2172:21:47"
1562
+ "src": "2171:21:47"
1563
1563
  },
1564
1564
  "referencedDeclaration": 18447,
1565
- "src": "2172:21:47",
1565
+ "src": "2171:21:47",
1566
1566
  "typeDescriptions": {
1567
1567
  "typeIdentifier": "t_contract$_ISuperfluidGovernance_$18447",
1568
1568
  "typeString": "contract ISuperfluidGovernance"
@@ -1571,16 +1571,16 @@
1571
1571
  "visibility": "internal"
1572
1572
  }
1573
1573
  ],
1574
- "src": "2171:30:47"
1574
+ "src": "2170:30:47"
1575
1575
  },
1576
1576
  "returnParameters": {
1577
1577
  "id": 17895,
1578
1578
  "nodeType": "ParameterList",
1579
1579
  "parameters": [],
1580
- "src": "2210:0:47"
1580
+ "src": "2209:0:47"
1581
1581
  },
1582
1582
  "scope": 18324,
1583
- "src": "2145:66:47",
1583
+ "src": "2144:66:47",
1584
1584
  "stateMutability": "nonpayable",
1585
1585
  "virtual": false,
1586
1586
  "visibility": "external"
@@ -1590,13 +1590,13 @@
1590
1590
  "documentation": {
1591
1591
  "id": 17897,
1592
1592
  "nodeType": "StructuredDocumentation",
1593
- "src": "2216:169:47",
1593
+ "src": "2215:169:47",
1594
1594
  "text": " @dev Governance replaced event\n @param oldGov Address of the old governance contract\n @param newGov Address of the new governance contract"
1595
1595
  },
1596
1596
  "eventSelector": "13abda02e63c790d0e2818b251282cfe5cbe0a8abd69c54bf5d2260c0907bd2e",
1597
1597
  "id": 17905,
1598
1598
  "name": "GovernanceReplaced",
1599
- "nameLocation": "2396:18:47",
1599
+ "nameLocation": "2395:18:47",
1600
1600
  "nodeType": "EventDefinition",
1601
1601
  "parameters": {
1602
1602
  "id": 17904,
@@ -1608,10 +1608,10 @@
1608
1608
  "indexed": false,
1609
1609
  "mutability": "mutable",
1610
1610
  "name": "oldGov",
1611
- "nameLocation": "2437:6:47",
1611
+ "nameLocation": "2436:6:47",
1612
1612
  "nodeType": "VariableDeclaration",
1613
1613
  "scope": 17905,
1614
- "src": "2415:28:47",
1614
+ "src": "2414:28:47",
1615
1615
  "stateVariable": false,
1616
1616
  "storageLocation": "default",
1617
1617
  "typeDescriptions": {
@@ -1626,10 +1626,10 @@
1626
1626
  "name": "ISuperfluidGovernance",
1627
1627
  "nodeType": "IdentifierPath",
1628
1628
  "referencedDeclaration": 18447,
1629
- "src": "2415:21:47"
1629
+ "src": "2414:21:47"
1630
1630
  },
1631
1631
  "referencedDeclaration": 18447,
1632
- "src": "2415:21:47",
1632
+ "src": "2414:21:47",
1633
1633
  "typeDescriptions": {
1634
1634
  "typeIdentifier": "t_contract$_ISuperfluidGovernance_$18447",
1635
1635
  "typeString": "contract ISuperfluidGovernance"
@@ -1643,10 +1643,10 @@
1643
1643
  "indexed": false,
1644
1644
  "mutability": "mutable",
1645
1645
  "name": "newGov",
1646
- "nameLocation": "2467:6:47",
1646
+ "nameLocation": "2466:6:47",
1647
1647
  "nodeType": "VariableDeclaration",
1648
1648
  "scope": 17905,
1649
- "src": "2445:28:47",
1649
+ "src": "2444:28:47",
1650
1650
  "stateVariable": false,
1651
1651
  "storageLocation": "default",
1652
1652
  "typeDescriptions": {
@@ -1661,10 +1661,10 @@
1661
1661
  "name": "ISuperfluidGovernance",
1662
1662
  "nodeType": "IdentifierPath",
1663
1663
  "referencedDeclaration": 18447,
1664
- "src": "2445:21:47"
1664
+ "src": "2444:21:47"
1665
1665
  },
1666
1666
  "referencedDeclaration": 18447,
1667
- "src": "2445:21:47",
1667
+ "src": "2444:21:47",
1668
1668
  "typeDescriptions": {
1669
1669
  "typeIdentifier": "t_contract$_ISuperfluidGovernance_$18447",
1670
1670
  "typeString": "contract ISuperfluidGovernance"
@@ -1673,16 +1673,16 @@
1673
1673
  "visibility": "internal"
1674
1674
  }
1675
1675
  ],
1676
- "src": "2414:60:47"
1676
+ "src": "2413:60:47"
1677
1677
  },
1678
- "src": "2390:85:47"
1678
+ "src": "2389:85:47"
1679
1679
  },
1680
1680
  {
1681
1681
  "documentation": {
1682
1682
  "id": 17906,
1683
1683
  "nodeType": "StructuredDocumentation",
1684
- "src": "2672:181:47",
1685
- "text": " @dev Register a new agreement class to the system\n @param agreementClassLogic Initial agreement class code\n Modifiers:\n - onlyGovernance"
1684
+ "src": "2671:188:47",
1685
+ "text": " @dev Register a new agreement class to the system\n @param agreementClassLogic Initial agreement class code\n @custom:modifiers \n - onlyGovernance"
1686
1686
  },
1687
1687
  "functionSelector": "15a024e1",
1688
1688
  "id": 17912,
@@ -1690,7 +1690,7 @@
1690
1690
  "kind": "function",
1691
1691
  "modifiers": [],
1692
1692
  "name": "registerAgreementClass",
1693
- "nameLocation": "2867:22:47",
1693
+ "nameLocation": "2873:22:47",
1694
1694
  "nodeType": "FunctionDefinition",
1695
1695
  "parameters": {
1696
1696
  "id": 17910,
@@ -1701,10 +1701,10 @@
1701
1701
  "id": 17909,
1702
1702
  "mutability": "mutable",
1703
1703
  "name": "agreementClassLogic",
1704
- "nameLocation": "2906:19:47",
1704
+ "nameLocation": "2912:19:47",
1705
1705
  "nodeType": "VariableDeclaration",
1706
1706
  "scope": 17912,
1707
- "src": "2890:35:47",
1707
+ "src": "2896:35:47",
1708
1708
  "stateVariable": false,
1709
1709
  "storageLocation": "default",
1710
1710
  "typeDescriptions": {
@@ -1719,10 +1719,10 @@
1719
1719
  "name": "ISuperAgreement",
1720
1720
  "nodeType": "IdentifierPath",
1721
1721
  "referencedDeclaration": 17271,
1722
- "src": "2890:15:47"
1722
+ "src": "2896:15:47"
1723
1723
  },
1724
1724
  "referencedDeclaration": 17271,
1725
- "src": "2890:15:47",
1725
+ "src": "2896:15:47",
1726
1726
  "typeDescriptions": {
1727
1727
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
1728
1728
  "typeString": "contract ISuperAgreement"
@@ -1731,16 +1731,16 @@
1731
1731
  "visibility": "internal"
1732
1732
  }
1733
1733
  ],
1734
- "src": "2889:37:47"
1734
+ "src": "2895:37:47"
1735
1735
  },
1736
1736
  "returnParameters": {
1737
1737
  "id": 17911,
1738
1738
  "nodeType": "ParameterList",
1739
1739
  "parameters": [],
1740
- "src": "2935:0:47"
1740
+ "src": "2941:0:47"
1741
1741
  },
1742
1742
  "scope": 18324,
1743
- "src": "2858:78:47",
1743
+ "src": "2864:78:47",
1744
1744
  "stateMutability": "nonpayable",
1745
1745
  "virtual": false,
1746
1746
  "visibility": "external"
@@ -1750,13 +1750,13 @@
1750
1750
  "documentation": {
1751
1751
  "id": 17913,
1752
1752
  "nodeType": "StructuredDocumentation",
1753
- "src": "2941:280:47",
1753
+ "src": "2947:280:47",
1754
1754
  "text": " @notice Agreement class registered event\n @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n @param agreementType The agreement type registered\n @param code Address of the new agreement"
1755
1755
  },
1756
1756
  "eventSelector": "878135063a6cfb3bc333e534b1fdc83f4f12221cad6705c31c0567048a8bd3d1",
1757
1757
  "id": 17919,
1758
1758
  "name": "AgreementClassRegistered",
1759
- "nameLocation": "3232:24:47",
1759
+ "nameLocation": "3238:24:47",
1760
1760
  "nodeType": "EventDefinition",
1761
1761
  "parameters": {
1762
1762
  "id": 17918,
@@ -1768,10 +1768,10 @@
1768
1768
  "indexed": false,
1769
1769
  "mutability": "mutable",
1770
1770
  "name": "agreementType",
1771
- "nameLocation": "3265:13:47",
1771
+ "nameLocation": "3271:13:47",
1772
1772
  "nodeType": "VariableDeclaration",
1773
1773
  "scope": 17919,
1774
- "src": "3257:21:47",
1774
+ "src": "3263:21:47",
1775
1775
  "stateVariable": false,
1776
1776
  "storageLocation": "default",
1777
1777
  "typeDescriptions": {
@@ -1782,7 +1782,7 @@
1782
1782
  "id": 17914,
1783
1783
  "name": "bytes32",
1784
1784
  "nodeType": "ElementaryTypeName",
1785
- "src": "3257:7:47",
1785
+ "src": "3263:7:47",
1786
1786
  "typeDescriptions": {
1787
1787
  "typeIdentifier": "t_bytes32",
1788
1788
  "typeString": "bytes32"
@@ -1796,10 +1796,10 @@
1796
1796
  "indexed": false,
1797
1797
  "mutability": "mutable",
1798
1798
  "name": "code",
1799
- "nameLocation": "3288:4:47",
1799
+ "nameLocation": "3294:4:47",
1800
1800
  "nodeType": "VariableDeclaration",
1801
1801
  "scope": 17919,
1802
- "src": "3280:12:47",
1802
+ "src": "3286:12:47",
1803
1803
  "stateVariable": false,
1804
1804
  "storageLocation": "default",
1805
1805
  "typeDescriptions": {
@@ -1810,7 +1810,7 @@
1810
1810
  "id": 17916,
1811
1811
  "name": "address",
1812
1812
  "nodeType": "ElementaryTypeName",
1813
- "src": "3280:7:47",
1813
+ "src": "3286:7:47",
1814
1814
  "stateMutability": "nonpayable",
1815
1815
  "typeDescriptions": {
1816
1816
  "typeIdentifier": "t_address",
@@ -1820,16 +1820,16 @@
1820
1820
  "visibility": "internal"
1821
1821
  }
1822
1822
  ],
1823
- "src": "3256:37:47"
1823
+ "src": "3262:37:47"
1824
1824
  },
1825
- "src": "3226:68:47"
1825
+ "src": "3232:68:47"
1826
1826
  },
1827
1827
  {
1828
1828
  "documentation": {
1829
1829
  "id": 17920,
1830
1830
  "nodeType": "StructuredDocumentation",
1831
- "src": "3300:168:47",
1832
- "text": " @dev Update code of an agreement class\n @param agreementClassLogic New code for the agreement class\n Modifiers:\n - onlyGovernance"
1831
+ "src": "3306:176:47",
1832
+ "text": " @dev Update code of an agreement class\n @param agreementClassLogic New code for the agreement class\n @custom:modifiers \n - onlyGovernance"
1833
1833
  },
1834
1834
  "functionSelector": "06cecba8",
1835
1835
  "id": 17926,
@@ -1837,7 +1837,7 @@
1837
1837
  "kind": "function",
1838
1838
  "modifiers": [],
1839
1839
  "name": "updateAgreementClass",
1840
- "nameLocation": "3482:20:47",
1840
+ "nameLocation": "3496:20:47",
1841
1841
  "nodeType": "FunctionDefinition",
1842
1842
  "parameters": {
1843
1843
  "id": 17924,
@@ -1848,10 +1848,10 @@
1848
1848
  "id": 17923,
1849
1849
  "mutability": "mutable",
1850
1850
  "name": "agreementClassLogic",
1851
- "nameLocation": "3519:19:47",
1851
+ "nameLocation": "3533:19:47",
1852
1852
  "nodeType": "VariableDeclaration",
1853
1853
  "scope": 17926,
1854
- "src": "3503:35:47",
1854
+ "src": "3517:35:47",
1855
1855
  "stateVariable": false,
1856
1856
  "storageLocation": "default",
1857
1857
  "typeDescriptions": {
@@ -1866,10 +1866,10 @@
1866
1866
  "name": "ISuperAgreement",
1867
1867
  "nodeType": "IdentifierPath",
1868
1868
  "referencedDeclaration": 17271,
1869
- "src": "3503:15:47"
1869
+ "src": "3517:15:47"
1870
1870
  },
1871
1871
  "referencedDeclaration": 17271,
1872
- "src": "3503:15:47",
1872
+ "src": "3517:15:47",
1873
1873
  "typeDescriptions": {
1874
1874
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
1875
1875
  "typeString": "contract ISuperAgreement"
@@ -1878,16 +1878,16 @@
1878
1878
  "visibility": "internal"
1879
1879
  }
1880
1880
  ],
1881
- "src": "3502:37:47"
1881
+ "src": "3516:37:47"
1882
1882
  },
1883
1883
  "returnParameters": {
1884
1884
  "id": 17925,
1885
1885
  "nodeType": "ParameterList",
1886
1886
  "parameters": [],
1887
- "src": "3548:0:47"
1887
+ "src": "3562:0:47"
1888
1888
  },
1889
1889
  "scope": 18324,
1890
- "src": "3473:76:47",
1890
+ "src": "3487:76:47",
1891
1891
  "stateMutability": "nonpayable",
1892
1892
  "virtual": false,
1893
1893
  "visibility": "external"
@@ -1897,13 +1897,13 @@
1897
1897
  "documentation": {
1898
1898
  "id": 17927,
1899
1899
  "nodeType": "StructuredDocumentation",
1900
- "src": "3554:274:47",
1900
+ "src": "3568:274:47",
1901
1901
  "text": " @notice Agreement class updated event\n @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n @param agreementType The agreement type updated\n @param code Address of the new agreement"
1902
1902
  },
1903
1903
  "eventSelector": "9279aa773f2b588996032d8de89911555039f28b13a11a7c17074330bc082d9a",
1904
1904
  "id": 17933,
1905
1905
  "name": "AgreementClassUpdated",
1906
- "nameLocation": "3839:21:47",
1906
+ "nameLocation": "3853:21:47",
1907
1907
  "nodeType": "EventDefinition",
1908
1908
  "parameters": {
1909
1909
  "id": 17932,
@@ -1915,10 +1915,10 @@
1915
1915
  "indexed": false,
1916
1916
  "mutability": "mutable",
1917
1917
  "name": "agreementType",
1918
- "nameLocation": "3869:13:47",
1918
+ "nameLocation": "3883:13:47",
1919
1919
  "nodeType": "VariableDeclaration",
1920
1920
  "scope": 17933,
1921
- "src": "3861:21:47",
1921
+ "src": "3875:21:47",
1922
1922
  "stateVariable": false,
1923
1923
  "storageLocation": "default",
1924
1924
  "typeDescriptions": {
@@ -1929,7 +1929,7 @@
1929
1929
  "id": 17928,
1930
1930
  "name": "bytes32",
1931
1931
  "nodeType": "ElementaryTypeName",
1932
- "src": "3861:7:47",
1932
+ "src": "3875:7:47",
1933
1933
  "typeDescriptions": {
1934
1934
  "typeIdentifier": "t_bytes32",
1935
1935
  "typeString": "bytes32"
@@ -1943,10 +1943,10 @@
1943
1943
  "indexed": false,
1944
1944
  "mutability": "mutable",
1945
1945
  "name": "code",
1946
- "nameLocation": "3892:4:47",
1946
+ "nameLocation": "3906:4:47",
1947
1947
  "nodeType": "VariableDeclaration",
1948
1948
  "scope": 17933,
1949
- "src": "3884:12:47",
1949
+ "src": "3898:12:47",
1950
1950
  "stateVariable": false,
1951
1951
  "storageLocation": "default",
1952
1952
  "typeDescriptions": {
@@ -1957,7 +1957,7 @@
1957
1957
  "id": 17930,
1958
1958
  "name": "address",
1959
1959
  "nodeType": "ElementaryTypeName",
1960
- "src": "3884:7:47",
1960
+ "src": "3898:7:47",
1961
1961
  "stateMutability": "nonpayable",
1962
1962
  "typeDescriptions": {
1963
1963
  "typeIdentifier": "t_address",
@@ -1967,15 +1967,15 @@
1967
1967
  "visibility": "internal"
1968
1968
  }
1969
1969
  ],
1970
- "src": "3860:37:47"
1970
+ "src": "3874:37:47"
1971
1971
  },
1972
- "src": "3833:65:47"
1972
+ "src": "3847:65:47"
1973
1973
  },
1974
1974
  {
1975
1975
  "documentation": {
1976
1976
  "id": 17934,
1977
1977
  "nodeType": "StructuredDocumentation",
1978
- "src": "3904:181:47",
1978
+ "src": "3918:181:47",
1979
1979
  "text": " @notice Check if the agreement type is whitelisted\n @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\""
1980
1980
  },
1981
1981
  "functionSelector": "e8dccb7d",
@@ -1984,7 +1984,7 @@
1984
1984
  "kind": "function",
1985
1985
  "modifiers": [],
1986
1986
  "name": "isAgreementTypeListed",
1987
- "nameLocation": "4099:21:47",
1987
+ "nameLocation": "4113:21:47",
1988
1988
  "nodeType": "FunctionDefinition",
1989
1989
  "parameters": {
1990
1990
  "id": 17937,
@@ -1995,10 +1995,10 @@
1995
1995
  "id": 17936,
1996
1996
  "mutability": "mutable",
1997
1997
  "name": "agreementType",
1998
- "nameLocation": "4129:13:47",
1998
+ "nameLocation": "4143:13:47",
1999
1999
  "nodeType": "VariableDeclaration",
2000
2000
  "scope": 17941,
2001
- "src": "4121:21:47",
2001
+ "src": "4135:21:47",
2002
2002
  "stateVariable": false,
2003
2003
  "storageLocation": "default",
2004
2004
  "typeDescriptions": {
@@ -2009,7 +2009,7 @@
2009
2009
  "id": 17935,
2010
2010
  "name": "bytes32",
2011
2011
  "nodeType": "ElementaryTypeName",
2012
- "src": "4121:7:47",
2012
+ "src": "4135:7:47",
2013
2013
  "typeDescriptions": {
2014
2014
  "typeIdentifier": "t_bytes32",
2015
2015
  "typeString": "bytes32"
@@ -2018,7 +2018,7 @@
2018
2018
  "visibility": "internal"
2019
2019
  }
2020
2020
  ],
2021
- "src": "4120:23:47"
2021
+ "src": "4134:23:47"
2022
2022
  },
2023
2023
  "returnParameters": {
2024
2024
  "id": 17940,
@@ -2029,10 +2029,10 @@
2029
2029
  "id": 17939,
2030
2030
  "mutability": "mutable",
2031
2031
  "name": "yes",
2032
- "nameLocation": "4171:3:47",
2032
+ "nameLocation": "4185:3:47",
2033
2033
  "nodeType": "VariableDeclaration",
2034
2034
  "scope": 17941,
2035
- "src": "4166:8:47",
2035
+ "src": "4180:8:47",
2036
2036
  "stateVariable": false,
2037
2037
  "storageLocation": "default",
2038
2038
  "typeDescriptions": {
@@ -2043,7 +2043,7 @@
2043
2043
  "id": 17938,
2044
2044
  "name": "bool",
2045
2045
  "nodeType": "ElementaryTypeName",
2046
- "src": "4166:4:47",
2046
+ "src": "4180:4:47",
2047
2047
  "typeDescriptions": {
2048
2048
  "typeIdentifier": "t_bool",
2049
2049
  "typeString": "bool"
@@ -2052,10 +2052,10 @@
2052
2052
  "visibility": "internal"
2053
2053
  }
2054
2054
  ],
2055
- "src": "4165:10:47"
2055
+ "src": "4179:10:47"
2056
2056
  },
2057
2057
  "scope": 18324,
2058
- "src": "4090:86:47",
2058
+ "src": "4104:86:47",
2059
2059
  "stateMutability": "view",
2060
2060
  "virtual": false,
2061
2061
  "visibility": "external"
@@ -2064,7 +2064,7 @@
2064
2064
  "documentation": {
2065
2065
  "id": 17942,
2066
2066
  "nodeType": "StructuredDocumentation",
2067
- "src": "4182:65:47",
2067
+ "src": "4196:65:47",
2068
2068
  "text": " @dev Check if the agreement class is whitelisted"
2069
2069
  },
2070
2070
  "functionSelector": "8ca48484",
@@ -2073,7 +2073,7 @@
2073
2073
  "kind": "function",
2074
2074
  "modifiers": [],
2075
2075
  "name": "isAgreementClassListed",
2076
- "nameLocation": "4261:22:47",
2076
+ "nameLocation": "4275:22:47",
2077
2077
  "nodeType": "FunctionDefinition",
2078
2078
  "parameters": {
2079
2079
  "id": 17946,
@@ -2084,10 +2084,10 @@
2084
2084
  "id": 17945,
2085
2085
  "mutability": "mutable",
2086
2086
  "name": "agreementClass",
2087
- "nameLocation": "4300:14:47",
2087
+ "nameLocation": "4314:14:47",
2088
2088
  "nodeType": "VariableDeclaration",
2089
2089
  "scope": 17950,
2090
- "src": "4284:30:47",
2090
+ "src": "4298:30:47",
2091
2091
  "stateVariable": false,
2092
2092
  "storageLocation": "default",
2093
2093
  "typeDescriptions": {
@@ -2102,10 +2102,10 @@
2102
2102
  "name": "ISuperAgreement",
2103
2103
  "nodeType": "IdentifierPath",
2104
2104
  "referencedDeclaration": 17271,
2105
- "src": "4284:15:47"
2105
+ "src": "4298:15:47"
2106
2106
  },
2107
2107
  "referencedDeclaration": 17271,
2108
- "src": "4284:15:47",
2108
+ "src": "4298:15:47",
2109
2109
  "typeDescriptions": {
2110
2110
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
2111
2111
  "typeString": "contract ISuperAgreement"
@@ -2114,7 +2114,7 @@
2114
2114
  "visibility": "internal"
2115
2115
  }
2116
2116
  ],
2117
- "src": "4283:32:47"
2117
+ "src": "4297:32:47"
2118
2118
  },
2119
2119
  "returnParameters": {
2120
2120
  "id": 17949,
@@ -2125,10 +2125,10 @@
2125
2125
  "id": 17948,
2126
2126
  "mutability": "mutable",
2127
2127
  "name": "yes",
2128
- "nameLocation": "4343:3:47",
2128
+ "nameLocation": "4357:3:47",
2129
2129
  "nodeType": "VariableDeclaration",
2130
2130
  "scope": 17950,
2131
- "src": "4338:8:47",
2131
+ "src": "4352:8:47",
2132
2132
  "stateVariable": false,
2133
2133
  "storageLocation": "default",
2134
2134
  "typeDescriptions": {
@@ -2139,7 +2139,7 @@
2139
2139
  "id": 17947,
2140
2140
  "name": "bool",
2141
2141
  "nodeType": "ElementaryTypeName",
2142
- "src": "4338:4:47",
2142
+ "src": "4352:4:47",
2143
2143
  "typeDescriptions": {
2144
2144
  "typeIdentifier": "t_bool",
2145
2145
  "typeString": "bool"
@@ -2148,10 +2148,10 @@
2148
2148
  "visibility": "internal"
2149
2149
  }
2150
2150
  ],
2151
- "src": "4337:10:47"
2151
+ "src": "4351:10:47"
2152
2152
  },
2153
2153
  "scope": 18324,
2154
- "src": "4252:96:47",
2154
+ "src": "4266:96:47",
2155
2155
  "stateMutability": "view",
2156
2156
  "virtual": false,
2157
2157
  "visibility": "external"
@@ -2160,7 +2160,7 @@
2160
2160
  "documentation": {
2161
2161
  "id": 17951,
2162
2162
  "nodeType": "StructuredDocumentation",
2163
- "src": "4354:158:47",
2163
+ "src": "4368:158:47",
2164
2164
  "text": " @notice Get agreement class\n @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\""
2165
2165
  },
2166
2166
  "functionSelector": "b6d200de",
@@ -2169,7 +2169,7 @@
2169
2169
  "kind": "function",
2170
2170
  "modifiers": [],
2171
2171
  "name": "getAgreementClass",
2172
- "nameLocation": "4526:17:47",
2172
+ "nameLocation": "4540:17:47",
2173
2173
  "nodeType": "FunctionDefinition",
2174
2174
  "parameters": {
2175
2175
  "id": 17954,
@@ -2180,10 +2180,10 @@
2180
2180
  "id": 17953,
2181
2181
  "mutability": "mutable",
2182
2182
  "name": "agreementType",
2183
- "nameLocation": "4552:13:47",
2183
+ "nameLocation": "4566:13:47",
2184
2184
  "nodeType": "VariableDeclaration",
2185
2185
  "scope": 17959,
2186
- "src": "4544:21:47",
2186
+ "src": "4558:21:47",
2187
2187
  "stateVariable": false,
2188
2188
  "storageLocation": "default",
2189
2189
  "typeDescriptions": {
@@ -2194,7 +2194,7 @@
2194
2194
  "id": 17952,
2195
2195
  "name": "bytes32",
2196
2196
  "nodeType": "ElementaryTypeName",
2197
- "src": "4544:7:47",
2197
+ "src": "4558:7:47",
2198
2198
  "typeDescriptions": {
2199
2199
  "typeIdentifier": "t_bytes32",
2200
2200
  "typeString": "bytes32"
@@ -2203,7 +2203,7 @@
2203
2203
  "visibility": "internal"
2204
2204
  }
2205
2205
  ],
2206
- "src": "4543:23:47"
2206
+ "src": "4557:23:47"
2207
2207
  },
2208
2208
  "returnParameters": {
2209
2209
  "id": 17958,
@@ -2214,10 +2214,10 @@
2214
2214
  "id": 17957,
2215
2215
  "mutability": "mutable",
2216
2216
  "name": "agreementClass",
2217
- "nameLocation": "4605:14:47",
2217
+ "nameLocation": "4619:14:47",
2218
2218
  "nodeType": "VariableDeclaration",
2219
2219
  "scope": 17959,
2220
- "src": "4589:30:47",
2220
+ "src": "4603:30:47",
2221
2221
  "stateVariable": false,
2222
2222
  "storageLocation": "default",
2223
2223
  "typeDescriptions": {
@@ -2232,10 +2232,10 @@
2232
2232
  "name": "ISuperAgreement",
2233
2233
  "nodeType": "IdentifierPath",
2234
2234
  "referencedDeclaration": 17271,
2235
- "src": "4589:15:47"
2235
+ "src": "4603:15:47"
2236
2236
  },
2237
2237
  "referencedDeclaration": 17271,
2238
- "src": "4589:15:47",
2238
+ "src": "4603:15:47",
2239
2239
  "typeDescriptions": {
2240
2240
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
2241
2241
  "typeString": "contract ISuperAgreement"
@@ -2244,10 +2244,10 @@
2244
2244
  "visibility": "internal"
2245
2245
  }
2246
2246
  ],
2247
- "src": "4588:32:47"
2247
+ "src": "4602:32:47"
2248
2248
  },
2249
2249
  "scope": 18324,
2250
- "src": "4517:104:47",
2250
+ "src": "4531:104:47",
2251
2251
  "stateMutability": "view",
2252
2252
  "virtual": false,
2253
2253
  "visibility": "external"
@@ -2256,7 +2256,7 @@
2256
2256
  "documentation": {
2257
2257
  "id": 17960,
2258
2258
  "nodeType": "StructuredDocumentation",
2259
- "src": "4627:113:47",
2259
+ "src": "4641:113:47",
2260
2260
  "text": " @dev Map list of the agreement classes using a bitmap\n @param bitmap Agreement class bitmap"
2261
2261
  },
2262
2262
  "functionSelector": "c56a069d",
@@ -2265,7 +2265,7 @@
2265
2265
  "kind": "function",
2266
2266
  "modifiers": [],
2267
2267
  "name": "mapAgreementClasses",
2268
- "nameLocation": "4754:19:47",
2268
+ "nameLocation": "4768:19:47",
2269
2269
  "nodeType": "FunctionDefinition",
2270
2270
  "parameters": {
2271
2271
  "id": 17963,
@@ -2276,10 +2276,10 @@
2276
2276
  "id": 17962,
2277
2277
  "mutability": "mutable",
2278
2278
  "name": "bitmap",
2279
- "nameLocation": "4782:6:47",
2279
+ "nameLocation": "4796:6:47",
2280
2280
  "nodeType": "VariableDeclaration",
2281
2281
  "scope": 17969,
2282
- "src": "4774:14:47",
2282
+ "src": "4788:14:47",
2283
2283
  "stateVariable": false,
2284
2284
  "storageLocation": "default",
2285
2285
  "typeDescriptions": {
@@ -2290,7 +2290,7 @@
2290
2290
  "id": 17961,
2291
2291
  "name": "uint256",
2292
2292
  "nodeType": "ElementaryTypeName",
2293
- "src": "4774:7:47",
2293
+ "src": "4788:7:47",
2294
2294
  "typeDescriptions": {
2295
2295
  "typeIdentifier": "t_uint256",
2296
2296
  "typeString": "uint256"
@@ -2299,7 +2299,7 @@
2299
2299
  "visibility": "internal"
2300
2300
  }
2301
2301
  ],
2302
- "src": "4773:16:47"
2302
+ "src": "4787:16:47"
2303
2303
  },
2304
2304
  "returnParameters": {
2305
2305
  "id": 17968,
@@ -2310,10 +2310,10 @@
2310
2310
  "id": 17967,
2311
2311
  "mutability": "mutable",
2312
2312
  "name": "agreementClasses",
2313
- "nameLocation": "4854:16:47",
2313
+ "nameLocation": "4868:16:47",
2314
2314
  "nodeType": "VariableDeclaration",
2315
2315
  "scope": 17969,
2316
- "src": "4829:41:47",
2316
+ "src": "4843:41:47",
2317
2317
  "stateVariable": false,
2318
2318
  "storageLocation": "memory",
2319
2319
  "typeDescriptions": {
@@ -2329,10 +2329,10 @@
2329
2329
  "name": "ISuperAgreement",
2330
2330
  "nodeType": "IdentifierPath",
2331
2331
  "referencedDeclaration": 17271,
2332
- "src": "4829:15:47"
2332
+ "src": "4843:15:47"
2333
2333
  },
2334
2334
  "referencedDeclaration": 17271,
2335
- "src": "4829:15:47",
2335
+ "src": "4843:15:47",
2336
2336
  "typeDescriptions": {
2337
2337
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
2338
2338
  "typeString": "contract ISuperAgreement"
@@ -2340,7 +2340,7 @@
2340
2340
  },
2341
2341
  "id": 17966,
2342
2342
  "nodeType": "ArrayTypeName",
2343
- "src": "4829:17:47",
2343
+ "src": "4843:17:47",
2344
2344
  "typeDescriptions": {
2345
2345
  "typeIdentifier": "t_array$_t_contract$_ISuperAgreement_$17271_$dyn_storage_ptr",
2346
2346
  "typeString": "contract ISuperAgreement[]"
@@ -2349,10 +2349,10 @@
2349
2349
  "visibility": "internal"
2350
2350
  }
2351
2351
  ],
2352
- "src": "4828:43:47"
2352
+ "src": "4842:43:47"
2353
2353
  },
2354
2354
  "scope": 18324,
2355
- "src": "4745:127:47",
2355
+ "src": "4759:127:47",
2356
2356
  "stateMutability": "view",
2357
2357
  "virtual": false,
2358
2358
  "visibility": "external"
@@ -2361,7 +2361,7 @@
2361
2361
  "documentation": {
2362
2362
  "id": 17970,
2363
2363
  "nodeType": "StructuredDocumentation",
2364
- "src": "4878:236:47",
2364
+ "src": "4892:236:47",
2365
2365
  "text": " @notice Create a new bitmask by adding a agreement class to it\n @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n @param bitmap Agreement class bitmap"
2366
2366
  },
2367
2367
  "functionSelector": "bced3ddc",
@@ -2370,7 +2370,7 @@
2370
2370
  "kind": "function",
2371
2371
  "modifiers": [],
2372
2372
  "name": "addToAgreementClassesBitmap",
2373
- "nameLocation": "5128:27:47",
2373
+ "nameLocation": "5142:27:47",
2374
2374
  "nodeType": "FunctionDefinition",
2375
2375
  "parameters": {
2376
2376
  "id": 17975,
@@ -2381,10 +2381,10 @@
2381
2381
  "id": 17972,
2382
2382
  "mutability": "mutable",
2383
2383
  "name": "bitmap",
2384
- "nameLocation": "5164:6:47",
2384
+ "nameLocation": "5178:6:47",
2385
2385
  "nodeType": "VariableDeclaration",
2386
2386
  "scope": 17979,
2387
- "src": "5156:14:47",
2387
+ "src": "5170:14:47",
2388
2388
  "stateVariable": false,
2389
2389
  "storageLocation": "default",
2390
2390
  "typeDescriptions": {
@@ -2395,7 +2395,7 @@
2395
2395
  "id": 17971,
2396
2396
  "name": "uint256",
2397
2397
  "nodeType": "ElementaryTypeName",
2398
- "src": "5156:7:47",
2398
+ "src": "5170:7:47",
2399
2399
  "typeDescriptions": {
2400
2400
  "typeIdentifier": "t_uint256",
2401
2401
  "typeString": "uint256"
@@ -2408,10 +2408,10 @@
2408
2408
  "id": 17974,
2409
2409
  "mutability": "mutable",
2410
2410
  "name": "agreementType",
2411
- "nameLocation": "5180:13:47",
2411
+ "nameLocation": "5194:13:47",
2412
2412
  "nodeType": "VariableDeclaration",
2413
2413
  "scope": 17979,
2414
- "src": "5172:21:47",
2414
+ "src": "5186:21:47",
2415
2415
  "stateVariable": false,
2416
2416
  "storageLocation": "default",
2417
2417
  "typeDescriptions": {
@@ -2422,7 +2422,7 @@
2422
2422
  "id": 17973,
2423
2423
  "name": "bytes32",
2424
2424
  "nodeType": "ElementaryTypeName",
2425
- "src": "5172:7:47",
2425
+ "src": "5186:7:47",
2426
2426
  "typeDescriptions": {
2427
2427
  "typeIdentifier": "t_bytes32",
2428
2428
  "typeString": "bytes32"
@@ -2431,7 +2431,7 @@
2431
2431
  "visibility": "internal"
2432
2432
  }
2433
2433
  ],
2434
- "src": "5155:39:47"
2434
+ "src": "5169:39:47"
2435
2435
  },
2436
2436
  "returnParameters": {
2437
2437
  "id": 17978,
@@ -2442,10 +2442,10 @@
2442
2442
  "id": 17977,
2443
2443
  "mutability": "mutable",
2444
2444
  "name": "newBitmap",
2445
- "nameLocation": "5242:9:47",
2445
+ "nameLocation": "5256:9:47",
2446
2446
  "nodeType": "VariableDeclaration",
2447
2447
  "scope": 17979,
2448
- "src": "5234:17:47",
2448
+ "src": "5248:17:47",
2449
2449
  "stateVariable": false,
2450
2450
  "storageLocation": "default",
2451
2451
  "typeDescriptions": {
@@ -2456,7 +2456,7 @@
2456
2456
  "id": 17976,
2457
2457
  "name": "uint256",
2458
2458
  "nodeType": "ElementaryTypeName",
2459
- "src": "5234:7:47",
2459
+ "src": "5248:7:47",
2460
2460
  "typeDescriptions": {
2461
2461
  "typeIdentifier": "t_uint256",
2462
2462
  "typeString": "uint256"
@@ -2465,10 +2465,10 @@
2465
2465
  "visibility": "internal"
2466
2466
  }
2467
2467
  ],
2468
- "src": "5233:19:47"
2468
+ "src": "5247:19:47"
2469
2469
  },
2470
2470
  "scope": 18324,
2471
- "src": "5119:134:47",
2471
+ "src": "5133:134:47",
2472
2472
  "stateMutability": "view",
2473
2473
  "virtual": false,
2474
2474
  "visibility": "external"
@@ -2477,7 +2477,7 @@
2477
2477
  "documentation": {
2478
2478
  "id": 17980,
2479
2479
  "nodeType": "StructuredDocumentation",
2480
- "src": "5259:240:47",
2480
+ "src": "5273:240:47",
2481
2481
  "text": " @notice Create a new bitmask by removing a agreement class from it\n @dev agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"\n @param bitmap Agreement class bitmap"
2482
2482
  },
2483
2483
  "functionSelector": "a5dbbbcd",
@@ -2486,7 +2486,7 @@
2486
2486
  "kind": "function",
2487
2487
  "modifiers": [],
2488
2488
  "name": "removeFromAgreementClassesBitmap",
2489
- "nameLocation": "5513:32:47",
2489
+ "nameLocation": "5527:32:47",
2490
2490
  "nodeType": "FunctionDefinition",
2491
2491
  "parameters": {
2492
2492
  "id": 17985,
@@ -2497,10 +2497,10 @@
2497
2497
  "id": 17982,
2498
2498
  "mutability": "mutable",
2499
2499
  "name": "bitmap",
2500
- "nameLocation": "5554:6:47",
2500
+ "nameLocation": "5568:6:47",
2501
2501
  "nodeType": "VariableDeclaration",
2502
2502
  "scope": 17989,
2503
- "src": "5546:14:47",
2503
+ "src": "5560:14:47",
2504
2504
  "stateVariable": false,
2505
2505
  "storageLocation": "default",
2506
2506
  "typeDescriptions": {
@@ -2511,7 +2511,7 @@
2511
2511
  "id": 17981,
2512
2512
  "name": "uint256",
2513
2513
  "nodeType": "ElementaryTypeName",
2514
- "src": "5546:7:47",
2514
+ "src": "5560:7:47",
2515
2515
  "typeDescriptions": {
2516
2516
  "typeIdentifier": "t_uint256",
2517
2517
  "typeString": "uint256"
@@ -2524,10 +2524,10 @@
2524
2524
  "id": 17984,
2525
2525
  "mutability": "mutable",
2526
2526
  "name": "agreementType",
2527
- "nameLocation": "5570:13:47",
2527
+ "nameLocation": "5584:13:47",
2528
2528
  "nodeType": "VariableDeclaration",
2529
2529
  "scope": 17989,
2530
- "src": "5562:21:47",
2530
+ "src": "5576:21:47",
2531
2531
  "stateVariable": false,
2532
2532
  "storageLocation": "default",
2533
2533
  "typeDescriptions": {
@@ -2538,7 +2538,7 @@
2538
2538
  "id": 17983,
2539
2539
  "name": "bytes32",
2540
2540
  "nodeType": "ElementaryTypeName",
2541
- "src": "5562:7:47",
2541
+ "src": "5576:7:47",
2542
2542
  "typeDescriptions": {
2543
2543
  "typeIdentifier": "t_bytes32",
2544
2544
  "typeString": "bytes32"
@@ -2547,7 +2547,7 @@
2547
2547
  "visibility": "internal"
2548
2548
  }
2549
2549
  ],
2550
- "src": "5545:39:47"
2550
+ "src": "5559:39:47"
2551
2551
  },
2552
2552
  "returnParameters": {
2553
2553
  "id": 17988,
@@ -2558,10 +2558,10 @@
2558
2558
  "id": 17987,
2559
2559
  "mutability": "mutable",
2560
2560
  "name": "newBitmap",
2561
- "nameLocation": "5632:9:47",
2561
+ "nameLocation": "5646:9:47",
2562
2562
  "nodeType": "VariableDeclaration",
2563
2563
  "scope": 17989,
2564
- "src": "5624:17:47",
2564
+ "src": "5638:17:47",
2565
2565
  "stateVariable": false,
2566
2566
  "storageLocation": "default",
2567
2567
  "typeDescriptions": {
@@ -2572,7 +2572,7 @@
2572
2572
  "id": 17986,
2573
2573
  "name": "uint256",
2574
2574
  "nodeType": "ElementaryTypeName",
2575
- "src": "5624:7:47",
2575
+ "src": "5638:7:47",
2576
2576
  "typeDescriptions": {
2577
2577
  "typeIdentifier": "t_uint256",
2578
2578
  "typeString": "uint256"
@@ -2581,10 +2581,10 @@
2581
2581
  "visibility": "internal"
2582
2582
  }
2583
2583
  ],
2584
- "src": "5623:19:47"
2584
+ "src": "5637:19:47"
2585
2585
  },
2586
2586
  "scope": 18324,
2587
- "src": "5504:139:47",
2587
+ "src": "5518:139:47",
2588
2588
  "stateMutability": "view",
2589
2589
  "virtual": false,
2590
2590
  "visibility": "external"
@@ -2593,7 +2593,7 @@
2593
2593
  "documentation": {
2594
2594
  "id": 17990,
2595
2595
  "nodeType": "StructuredDocumentation",
2596
- "src": "5836:86:47",
2596
+ "src": "5850:86:47",
2597
2597
  "text": " @dev Get the super token factory\n @return factory The factory"
2598
2598
  },
2599
2599
  "functionSelector": "731aed6e",
@@ -2602,13 +2602,13 @@
2602
2602
  "kind": "function",
2603
2603
  "modifiers": [],
2604
2604
  "name": "getSuperTokenFactory",
2605
- "nameLocation": "5936:20:47",
2605
+ "nameLocation": "5950:20:47",
2606
2606
  "nodeType": "FunctionDefinition",
2607
2607
  "parameters": {
2608
2608
  "id": 17991,
2609
2609
  "nodeType": "ParameterList",
2610
2610
  "parameters": [],
2611
- "src": "5956:2:47"
2611
+ "src": "5970:2:47"
2612
2612
  },
2613
2613
  "returnParameters": {
2614
2614
  "id": 17995,
@@ -2619,10 +2619,10 @@
2619
2619
  "id": 17994,
2620
2620
  "mutability": "mutable",
2621
2621
  "name": "factory",
2622
- "nameLocation": "6001:7:47",
2622
+ "nameLocation": "6015:7:47",
2623
2623
  "nodeType": "VariableDeclaration",
2624
2624
  "scope": 17996,
2625
- "src": "5982:26:47",
2625
+ "src": "5996:26:47",
2626
2626
  "stateVariable": false,
2627
2627
  "storageLocation": "default",
2628
2628
  "typeDescriptions": {
@@ -2637,10 +2637,10 @@
2637
2637
  "name": "ISuperTokenFactory",
2638
2638
  "nodeType": "IdentifierPath",
2639
2639
  "referencedDeclaration": 17850,
2640
- "src": "5982:18:47"
2640
+ "src": "5996:18:47"
2641
2641
  },
2642
2642
  "referencedDeclaration": 17850,
2643
- "src": "5982:18:47",
2643
+ "src": "5996:18:47",
2644
2644
  "typeDescriptions": {
2645
2645
  "typeIdentifier": "t_contract$_ISuperTokenFactory_$17850",
2646
2646
  "typeString": "contract ISuperTokenFactory"
@@ -2649,10 +2649,10 @@
2649
2649
  "visibility": "internal"
2650
2650
  }
2651
2651
  ],
2652
- "src": "5981:28:47"
2652
+ "src": "5995:28:47"
2653
2653
  },
2654
2654
  "scope": 18324,
2655
- "src": "5927:83:47",
2655
+ "src": "5941:83:47",
2656
2656
  "stateMutability": "view",
2657
2657
  "virtual": false,
2658
2658
  "visibility": "external"
@@ -2661,7 +2661,7 @@
2661
2661
  "documentation": {
2662
2662
  "id": 17997,
2663
2663
  "nodeType": "StructuredDocumentation",
2664
- "src": "6016:134:47",
2664
+ "src": "6030:134:47",
2665
2665
  "text": " @dev Get the super token factory logic (applicable to upgradable deployment)\n @return logic The factory logic"
2666
2666
  },
2667
2667
  "functionSelector": "f2e55caf",
@@ -2670,13 +2670,13 @@
2670
2670
  "kind": "function",
2671
2671
  "modifiers": [],
2672
2672
  "name": "getSuperTokenFactoryLogic",
2673
- "nameLocation": "6164:25:47",
2673
+ "nameLocation": "6178:25:47",
2674
2674
  "nodeType": "FunctionDefinition",
2675
2675
  "parameters": {
2676
2676
  "id": 17998,
2677
2677
  "nodeType": "ParameterList",
2678
2678
  "parameters": [],
2679
- "src": "6189:2:47"
2679
+ "src": "6203:2:47"
2680
2680
  },
2681
2681
  "returnParameters": {
2682
2682
  "id": 18001,
@@ -2687,10 +2687,10 @@
2687
2687
  "id": 18000,
2688
2688
  "mutability": "mutable",
2689
2689
  "name": "logic",
2690
- "nameLocation": "6223:5:47",
2690
+ "nameLocation": "6237:5:47",
2691
2691
  "nodeType": "VariableDeclaration",
2692
2692
  "scope": 18002,
2693
- "src": "6215:13:47",
2693
+ "src": "6229:13:47",
2694
2694
  "stateVariable": false,
2695
2695
  "storageLocation": "default",
2696
2696
  "typeDescriptions": {
@@ -2701,7 +2701,7 @@
2701
2701
  "id": 17999,
2702
2702
  "name": "address",
2703
2703
  "nodeType": "ElementaryTypeName",
2704
- "src": "6215:7:47",
2704
+ "src": "6229:7:47",
2705
2705
  "stateMutability": "nonpayable",
2706
2706
  "typeDescriptions": {
2707
2707
  "typeIdentifier": "t_address",
@@ -2711,10 +2711,10 @@
2711
2711
  "visibility": "internal"
2712
2712
  }
2713
2713
  ],
2714
- "src": "6214:15:47"
2714
+ "src": "6228:15:47"
2715
2715
  },
2716
2716
  "scope": 18324,
2717
- "src": "6155:75:47",
2717
+ "src": "6169:75:47",
2718
2718
  "stateMutability": "view",
2719
2719
  "virtual": false,
2720
2720
  "visibility": "external"
@@ -2723,7 +2723,7 @@
2723
2723
  "documentation": {
2724
2724
  "id": 18003,
2725
2725
  "nodeType": "StructuredDocumentation",
2726
- "src": "6236:93:47",
2726
+ "src": "6250:93:47",
2727
2727
  "text": " @dev Update super token factory\n @param newFactory New factory logic"
2728
2728
  },
2729
2729
  "functionSelector": "54fbc493",
@@ -2732,7 +2732,7 @@
2732
2732
  "kind": "function",
2733
2733
  "modifiers": [],
2734
2734
  "name": "updateSuperTokenFactory",
2735
- "nameLocation": "6343:23:47",
2735
+ "nameLocation": "6357:23:47",
2736
2736
  "nodeType": "FunctionDefinition",
2737
2737
  "parameters": {
2738
2738
  "id": 18007,
@@ -2743,10 +2743,10 @@
2743
2743
  "id": 18006,
2744
2744
  "mutability": "mutable",
2745
2745
  "name": "newFactory",
2746
- "nameLocation": "6386:10:47",
2746
+ "nameLocation": "6400:10:47",
2747
2747
  "nodeType": "VariableDeclaration",
2748
2748
  "scope": 18009,
2749
- "src": "6367:29:47",
2749
+ "src": "6381:29:47",
2750
2750
  "stateVariable": false,
2751
2751
  "storageLocation": "default",
2752
2752
  "typeDescriptions": {
@@ -2761,10 +2761,10 @@
2761
2761
  "name": "ISuperTokenFactory",
2762
2762
  "nodeType": "IdentifierPath",
2763
2763
  "referencedDeclaration": 17850,
2764
- "src": "6367:18:47"
2764
+ "src": "6381:18:47"
2765
2765
  },
2766
2766
  "referencedDeclaration": 17850,
2767
- "src": "6367:18:47",
2767
+ "src": "6381:18:47",
2768
2768
  "typeDescriptions": {
2769
2769
  "typeIdentifier": "t_contract$_ISuperTokenFactory_$17850",
2770
2770
  "typeString": "contract ISuperTokenFactory"
@@ -2773,16 +2773,16 @@
2773
2773
  "visibility": "internal"
2774
2774
  }
2775
2775
  ],
2776
- "src": "6366:31:47"
2776
+ "src": "6380:31:47"
2777
2777
  },
2778
2778
  "returnParameters": {
2779
2779
  "id": 18008,
2780
2780
  "nodeType": "ParameterList",
2781
2781
  "parameters": [],
2782
- "src": "6406:0:47"
2782
+ "src": "6420:0:47"
2783
2783
  },
2784
2784
  "scope": 18324,
2785
- "src": "6334:73:47",
2785
+ "src": "6348:73:47",
2786
2786
  "stateMutability": "nonpayable",
2787
2787
  "virtual": false,
2788
2788
  "visibility": "external"
@@ -2792,13 +2792,13 @@
2792
2792
  "documentation": {
2793
2793
  "id": 18010,
2794
2794
  "nodeType": "StructuredDocumentation",
2795
- "src": "6412:108:47",
2795
+ "src": "6426:108:47",
2796
2796
  "text": " @dev SuperToken factory updated event\n @param newFactory Address of the new factory"
2797
2797
  },
2798
2798
  "eventSelector": "ce13a9895a1719ad4493b2ac1a9bfb36070566161abab408e7ecbe586da8d499",
2799
2799
  "id": 18015,
2800
2800
  "name": "SuperTokenFactoryUpdated",
2801
- "nameLocation": "6531:24:47",
2801
+ "nameLocation": "6545:24:47",
2802
2802
  "nodeType": "EventDefinition",
2803
2803
  "parameters": {
2804
2804
  "id": 18014,
@@ -2810,10 +2810,10 @@
2810
2810
  "indexed": false,
2811
2811
  "mutability": "mutable",
2812
2812
  "name": "newFactory",
2813
- "nameLocation": "6575:10:47",
2813
+ "nameLocation": "6589:10:47",
2814
2814
  "nodeType": "VariableDeclaration",
2815
2815
  "scope": 18015,
2816
- "src": "6556:29:47",
2816
+ "src": "6570:29:47",
2817
2817
  "stateVariable": false,
2818
2818
  "storageLocation": "default",
2819
2819
  "typeDescriptions": {
@@ -2828,10 +2828,10 @@
2828
2828
  "name": "ISuperTokenFactory",
2829
2829
  "nodeType": "IdentifierPath",
2830
2830
  "referencedDeclaration": 17850,
2831
- "src": "6556:18:47"
2831
+ "src": "6570:18:47"
2832
2832
  },
2833
2833
  "referencedDeclaration": 17850,
2834
- "src": "6556:18:47",
2834
+ "src": "6570:18:47",
2835
2835
  "typeDescriptions": {
2836
2836
  "typeIdentifier": "t_contract$_ISuperTokenFactory_$17850",
2837
2837
  "typeString": "contract ISuperTokenFactory"
@@ -2840,15 +2840,15 @@
2840
2840
  "visibility": "internal"
2841
2841
  }
2842
2842
  ],
2843
- "src": "6555:31:47"
2843
+ "src": "6569:31:47"
2844
2844
  },
2845
- "src": "6525:62:47"
2845
+ "src": "6539:62:47"
2846
2846
  },
2847
2847
  {
2848
2848
  "documentation": {
2849
2849
  "id": 18016,
2850
2850
  "nodeType": "StructuredDocumentation",
2851
- "src": "6593:147:47",
2851
+ "src": "6607:147:47",
2852
2852
  "text": " @notice Update the super token logic to the latest\n @dev Refer to ISuperTokenFactory.Upgradability for expected behaviours"
2853
2853
  },
2854
2854
  "functionSelector": "787afde7",
@@ -2857,7 +2857,7 @@
2857
2857
  "kind": "function",
2858
2858
  "modifiers": [],
2859
2859
  "name": "updateSuperTokenLogic",
2860
- "nameLocation": "6754:21:47",
2860
+ "nameLocation": "6768:21:47",
2861
2861
  "nodeType": "FunctionDefinition",
2862
2862
  "parameters": {
2863
2863
  "id": 18020,
@@ -2868,10 +2868,10 @@
2868
2868
  "id": 18019,
2869
2869
  "mutability": "mutable",
2870
2870
  "name": "token",
2871
- "nameLocation": "6788:5:47",
2871
+ "nameLocation": "6802:5:47",
2872
2872
  "nodeType": "VariableDeclaration",
2873
2873
  "scope": 18022,
2874
- "src": "6776:17:47",
2874
+ "src": "6790:17:47",
2875
2875
  "stateVariable": false,
2876
2876
  "storageLocation": "default",
2877
2877
  "typeDescriptions": {
@@ -2886,10 +2886,10 @@
2886
2886
  "name": "ISuperToken",
2887
2887
  "nodeType": "IdentifierPath",
2888
2888
  "referencedDeclaration": 17761,
2889
- "src": "6776:11:47"
2889
+ "src": "6790:11:47"
2890
2890
  },
2891
2891
  "referencedDeclaration": 17761,
2892
- "src": "6776:11:47",
2892
+ "src": "6790:11:47",
2893
2893
  "typeDescriptions": {
2894
2894
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
2895
2895
  "typeString": "contract ISuperToken"
@@ -2898,16 +2898,16 @@
2898
2898
  "visibility": "internal"
2899
2899
  }
2900
2900
  ],
2901
- "src": "6775:19:47"
2901
+ "src": "6789:19:47"
2902
2902
  },
2903
2903
  "returnParameters": {
2904
2904
  "id": 18021,
2905
2905
  "nodeType": "ParameterList",
2906
2906
  "parameters": [],
2907
- "src": "6803:0:47"
2907
+ "src": "6817:0:47"
2908
2908
  },
2909
2909
  "scope": 18324,
2910
- "src": "6745:59:47",
2910
+ "src": "6759:59:47",
2911
2911
  "stateMutability": "nonpayable",
2912
2912
  "virtual": false,
2913
2913
  "visibility": "external"
@@ -2917,13 +2917,13 @@
2917
2917
  "documentation": {
2918
2918
  "id": 18023,
2919
2919
  "nodeType": "StructuredDocumentation",
2920
- "src": "6809:109:47",
2920
+ "src": "6823:109:47",
2921
2921
  "text": " @dev SuperToken logic updated event\n @param code Address of the new SuperToken logic"
2922
2922
  },
2923
2923
  "eventSelector": "840acbd291b38534819f47f875839277e502f40e1c7bfea2c5fc2c8017442cd3",
2924
2924
  "id": 18030,
2925
2925
  "name": "SuperTokenLogicUpdated",
2926
- "nameLocation": "6929:22:47",
2926
+ "nameLocation": "6943:22:47",
2927
2927
  "nodeType": "EventDefinition",
2928
2928
  "parameters": {
2929
2929
  "id": 18029,
@@ -2935,10 +2935,10 @@
2935
2935
  "indexed": true,
2936
2936
  "mutability": "mutable",
2937
2937
  "name": "token",
2938
- "nameLocation": "6972:5:47",
2938
+ "nameLocation": "6986:5:47",
2939
2939
  "nodeType": "VariableDeclaration",
2940
2940
  "scope": 18030,
2941
- "src": "6952:25:47",
2941
+ "src": "6966:25:47",
2942
2942
  "stateVariable": false,
2943
2943
  "storageLocation": "default",
2944
2944
  "typeDescriptions": {
@@ -2953,10 +2953,10 @@
2953
2953
  "name": "ISuperToken",
2954
2954
  "nodeType": "IdentifierPath",
2955
2955
  "referencedDeclaration": 17761,
2956
- "src": "6952:11:47"
2956
+ "src": "6966:11:47"
2957
2957
  },
2958
2958
  "referencedDeclaration": 17761,
2959
- "src": "6952:11:47",
2959
+ "src": "6966:11:47",
2960
2960
  "typeDescriptions": {
2961
2961
  "typeIdentifier": "t_contract$_ISuperToken_$17761",
2962
2962
  "typeString": "contract ISuperToken"
@@ -2970,10 +2970,10 @@
2970
2970
  "indexed": false,
2971
2971
  "mutability": "mutable",
2972
2972
  "name": "code",
2973
- "nameLocation": "6987:4:47",
2973
+ "nameLocation": "7001:4:47",
2974
2974
  "nodeType": "VariableDeclaration",
2975
2975
  "scope": 18030,
2976
- "src": "6979:12:47",
2976
+ "src": "6993:12:47",
2977
2977
  "stateVariable": false,
2978
2978
  "storageLocation": "default",
2979
2979
  "typeDescriptions": {
@@ -2984,7 +2984,7 @@
2984
2984
  "id": 18027,
2985
2985
  "name": "address",
2986
2986
  "nodeType": "ElementaryTypeName",
2987
- "src": "6979:7:47",
2987
+ "src": "6993:7:47",
2988
2988
  "stateMutability": "nonpayable",
2989
2989
  "typeDescriptions": {
2990
2990
  "typeIdentifier": "t_address",
@@ -2994,15 +2994,15 @@
2994
2994
  "visibility": "internal"
2995
2995
  }
2996
2996
  ],
2997
- "src": "6951:41:47"
2997
+ "src": "6965:41:47"
2998
2998
  },
2999
- "src": "6923:70:47"
2999
+ "src": "6937:70:47"
3000
3000
  },
3001
3001
  {
3002
3002
  "documentation": {
3003
3003
  "id": 18031,
3004
3004
  "nodeType": "StructuredDocumentation",
3005
- "src": "7180:383:47",
3005
+ "src": "7194:383:47",
3006
3006
  "text": " @dev Message sender (must be a contract) declares itself as a super app.\n @custom:deprecated you should use `registerAppWithKey` or `registerAppByFactory` instead,\n because app registration is currently governance permissioned on mainnets.\n @param configWord The super app manifest configuration, flags are defined in\n `SuperAppDefinitions`"
3007
3007
  },
3008
3008
  "functionSelector": "ad3915c8",
@@ -3011,7 +3011,7 @@
3011
3011
  "kind": "function",
3012
3012
  "modifiers": [],
3013
3013
  "name": "registerApp",
3014
- "nameLocation": "7577:11:47",
3014
+ "nameLocation": "7591:11:47",
3015
3015
  "nodeType": "FunctionDefinition",
3016
3016
  "parameters": {
3017
3017
  "id": 18034,
@@ -3022,10 +3022,10 @@
3022
3022
  "id": 18033,
3023
3023
  "mutability": "mutable",
3024
3024
  "name": "configWord",
3025
- "nameLocation": "7597:10:47",
3025
+ "nameLocation": "7611:10:47",
3026
3026
  "nodeType": "VariableDeclaration",
3027
3027
  "scope": 18036,
3028
- "src": "7589:18:47",
3028
+ "src": "7603:18:47",
3029
3029
  "stateVariable": false,
3030
3030
  "storageLocation": "default",
3031
3031
  "typeDescriptions": {
@@ -3036,7 +3036,7 @@
3036
3036
  "id": 18032,
3037
3037
  "name": "uint256",
3038
3038
  "nodeType": "ElementaryTypeName",
3039
- "src": "7589:7:47",
3039
+ "src": "7603:7:47",
3040
3040
  "typeDescriptions": {
3041
3041
  "typeIdentifier": "t_uint256",
3042
3042
  "typeString": "uint256"
@@ -3045,16 +3045,16 @@
3045
3045
  "visibility": "internal"
3046
3046
  }
3047
3047
  ],
3048
- "src": "7588:20:47"
3048
+ "src": "7602:20:47"
3049
3049
  },
3050
3050
  "returnParameters": {
3051
3051
  "id": 18035,
3052
3052
  "nodeType": "ParameterList",
3053
3053
  "parameters": [],
3054
- "src": "7617:0:47"
3054
+ "src": "7631:0:47"
3055
3055
  },
3056
3056
  "scope": 18324,
3057
- "src": "7568:50:47",
3057
+ "src": "7582:50:47",
3058
3058
  "stateMutability": "nonpayable",
3059
3059
  "virtual": false,
3060
3060
  "visibility": "external"
@@ -3064,13 +3064,13 @@
3064
3064
  "documentation": {
3065
3065
  "id": 18037,
3066
3066
  "nodeType": "StructuredDocumentation",
3067
- "src": "7623:84:47",
3067
+ "src": "7637:84:47",
3068
3068
  "text": " @dev App registered event\n @param app Address of jailed app"
3069
3069
  },
3070
3070
  "eventSelector": "0d540ad8f39e07d19909687352b9fa017405d93c91a6760981fbae9cf28bfef7",
3071
3071
  "id": 18042,
3072
3072
  "name": "AppRegistered",
3073
- "nameLocation": "7718:13:47",
3073
+ "nameLocation": "7732:13:47",
3074
3074
  "nodeType": "EventDefinition",
3075
3075
  "parameters": {
3076
3076
  "id": 18041,
@@ -3082,10 +3082,10 @@
3082
3082
  "indexed": true,
3083
3083
  "mutability": "mutable",
3084
3084
  "name": "app",
3085
- "nameLocation": "7750:3:47",
3085
+ "nameLocation": "7764:3:47",
3086
3086
  "nodeType": "VariableDeclaration",
3087
3087
  "scope": 18042,
3088
- "src": "7732:21:47",
3088
+ "src": "7746:21:47",
3089
3089
  "stateVariable": false,
3090
3090
  "storageLocation": "default",
3091
3091
  "typeDescriptions": {
@@ -3100,10 +3100,10 @@
3100
3100
  "name": "ISuperApp",
3101
3101
  "nodeType": "IdentifierPath",
3102
3102
  "referencedDeclaration": 17385,
3103
- "src": "7732:9:47"
3103
+ "src": "7746:9:47"
3104
3104
  },
3105
3105
  "referencedDeclaration": 17385,
3106
- "src": "7732:9:47",
3106
+ "src": "7746:9:47",
3107
3107
  "typeDescriptions": {
3108
3108
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3109
3109
  "typeString": "contract ISuperApp"
@@ -3112,16 +3112,16 @@
3112
3112
  "visibility": "internal"
3113
3113
  }
3114
3114
  ],
3115
- "src": "7731:23:47"
3115
+ "src": "7745:23:47"
3116
3116
  },
3117
- "src": "7712:43:47"
3117
+ "src": "7726:43:47"
3118
3118
  },
3119
3119
  {
3120
3120
  "documentation": {
3121
3121
  "id": 18043,
3122
3122
  "nodeType": "StructuredDocumentation",
3123
- "src": "7761:669:47",
3124
- "text": " @dev Message sender declares itself as a super app.\n @param configWord The super app manifest configuration, flags are defined in\n `SuperAppDefinitions`\n @param registrationKey The registration key issued by the governance, needed to\n register on a mainnet.\n See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\n On testnets or in dev environment, a placeholder (e.g. empty string) can be used.\n @notice While the message sender must be the super app itself, the transaction sender (tx.origin)\n must be the deployer account the registration key was issued for."
3123
+ "src": "7775:655:47",
3124
+ "text": " @dev Message sender declares itself as a super app.\n @param configWord The super app manifest configuration, flags are defined in `SuperAppDefinitions`\n @param registrationKey The registration key issued by the governance, needed to register on a mainnet.\n @notice See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide\n On testnets or in dev environment, a placeholder (e.g. empty string) can be used.\n While the message sender must be the super app itself, the transaction sender (tx.origin)\n must be the deployer account the registration key was issued for."
3125
3125
  },
3126
3126
  "functionSelector": "bd1c448b",
3127
3127
  "id": 18050,
@@ -3208,8 +3208,8 @@
3208
3208
  "documentation": {
3209
3209
  "id": 18051,
3210
3210
  "nodeType": "StructuredDocumentation",
3211
- "src": "8531:407:47",
3212
- "text": " @dev Message sender (must be a contract) declares app as a super app\n @param configWord The super app manifest configuration, flags are defined in\n `SuperAppDefinitions`\n @notice On mainnet deployments, only factory contracts pre-authorized by governance can use this.\n See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide"
3211
+ "src": "8531:400:47",
3212
+ "text": " @dev Message sender (must be a contract) declares app as a super app\n @param configWord The super app manifest configuration, flags are defined in `SuperAppDefinitions`\n @notice On mainnet deployments, only factory contracts pre-authorized by governance can use this.\n See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide"
3213
3213
  },
3214
3214
  "functionSelector": "f3733052",
3215
3215
  "id": 18059,
@@ -3217,7 +3217,7 @@
3217
3217
  "kind": "function",
3218
3218
  "modifiers": [],
3219
3219
  "name": "registerAppByFactory",
3220
- "nameLocation": "8952:20:47",
3220
+ "nameLocation": "8945:20:47",
3221
3221
  "nodeType": "FunctionDefinition",
3222
3222
  "parameters": {
3223
3223
  "id": 18057,
@@ -3228,10 +3228,10 @@
3228
3228
  "id": 18054,
3229
3229
  "mutability": "mutable",
3230
3230
  "name": "app",
3231
- "nameLocation": "8983:3:47",
3231
+ "nameLocation": "8976:3:47",
3232
3232
  "nodeType": "VariableDeclaration",
3233
3233
  "scope": 18059,
3234
- "src": "8973:13:47",
3234
+ "src": "8966:13:47",
3235
3235
  "stateVariable": false,
3236
3236
  "storageLocation": "default",
3237
3237
  "typeDescriptions": {
@@ -3246,10 +3246,10 @@
3246
3246
  "name": "ISuperApp",
3247
3247
  "nodeType": "IdentifierPath",
3248
3248
  "referencedDeclaration": 17385,
3249
- "src": "8973:9:47"
3249
+ "src": "8966:9:47"
3250
3250
  },
3251
3251
  "referencedDeclaration": 17385,
3252
- "src": "8973:9:47",
3252
+ "src": "8966:9:47",
3253
3253
  "typeDescriptions": {
3254
3254
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3255
3255
  "typeString": "contract ISuperApp"
@@ -3262,10 +3262,10 @@
3262
3262
  "id": 18056,
3263
3263
  "mutability": "mutable",
3264
3264
  "name": "configWord",
3265
- "nameLocation": "8996:10:47",
3265
+ "nameLocation": "8989:10:47",
3266
3266
  "nodeType": "VariableDeclaration",
3267
3267
  "scope": 18059,
3268
- "src": "8988:18:47",
3268
+ "src": "8981:18:47",
3269
3269
  "stateVariable": false,
3270
3270
  "storageLocation": "default",
3271
3271
  "typeDescriptions": {
@@ -3276,7 +3276,7 @@
3276
3276
  "id": 18055,
3277
3277
  "name": "uint256",
3278
3278
  "nodeType": "ElementaryTypeName",
3279
- "src": "8988:7:47",
3279
+ "src": "8981:7:47",
3280
3280
  "typeDescriptions": {
3281
3281
  "typeIdentifier": "t_uint256",
3282
3282
  "typeString": "uint256"
@@ -3285,16 +3285,16 @@
3285
3285
  "visibility": "internal"
3286
3286
  }
3287
3287
  ],
3288
- "src": "8972:35:47"
3288
+ "src": "8965:35:47"
3289
3289
  },
3290
3290
  "returnParameters": {
3291
3291
  "id": 18058,
3292
3292
  "nodeType": "ParameterList",
3293
3293
  "parameters": [],
3294
- "src": "9016:0:47"
3294
+ "src": "9009:0:47"
3295
3295
  },
3296
3296
  "scope": 18324,
3297
- "src": "8943:74:47",
3297
+ "src": "8936:74:47",
3298
3298
  "stateMutability": "nonpayable",
3299
3299
  "virtual": false,
3300
3300
  "visibility": "external"
@@ -3303,7 +3303,7 @@
3303
3303
  "documentation": {
3304
3304
  "id": 18060,
3305
3305
  "nodeType": "StructuredDocumentation",
3306
- "src": "9023:90:47",
3306
+ "src": "9016:90:47",
3307
3307
  "text": " @dev Query if the app is registered\n @param app Super app address"
3308
3308
  },
3309
3309
  "functionSelector": "3ca3ad4e",
@@ -3312,7 +3312,7 @@
3312
3312
  "kind": "function",
3313
3313
  "modifiers": [],
3314
3314
  "name": "isApp",
3315
- "nameLocation": "9127:5:47",
3315
+ "nameLocation": "9120:5:47",
3316
3316
  "nodeType": "FunctionDefinition",
3317
3317
  "parameters": {
3318
3318
  "id": 18064,
@@ -3323,10 +3323,10 @@
3323
3323
  "id": 18063,
3324
3324
  "mutability": "mutable",
3325
3325
  "name": "app",
3326
- "nameLocation": "9143:3:47",
3326
+ "nameLocation": "9136:3:47",
3327
3327
  "nodeType": "VariableDeclaration",
3328
3328
  "scope": 18068,
3329
- "src": "9133:13:47",
3329
+ "src": "9126:13:47",
3330
3330
  "stateVariable": false,
3331
3331
  "storageLocation": "default",
3332
3332
  "typeDescriptions": {
@@ -3341,10 +3341,10 @@
3341
3341
  "name": "ISuperApp",
3342
3342
  "nodeType": "IdentifierPath",
3343
3343
  "referencedDeclaration": 17385,
3344
- "src": "9133:9:47"
3344
+ "src": "9126:9:47"
3345
3345
  },
3346
3346
  "referencedDeclaration": 17385,
3347
- "src": "9133:9:47",
3347
+ "src": "9126:9:47",
3348
3348
  "typeDescriptions": {
3349
3349
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3350
3350
  "typeString": "contract ISuperApp"
@@ -3353,7 +3353,7 @@
3353
3353
  "visibility": "internal"
3354
3354
  }
3355
3355
  ],
3356
- "src": "9132:15:47"
3356
+ "src": "9125:15:47"
3357
3357
  },
3358
3358
  "returnParameters": {
3359
3359
  "id": 18067,
@@ -3367,7 +3367,7 @@
3367
3367
  "nameLocation": "-1:-1:-1",
3368
3368
  "nodeType": "VariableDeclaration",
3369
3369
  "scope": 18068,
3370
- "src": "9170:4:47",
3370
+ "src": "9163:4:47",
3371
3371
  "stateVariable": false,
3372
3372
  "storageLocation": "default",
3373
3373
  "typeDescriptions": {
@@ -3378,7 +3378,7 @@
3378
3378
  "id": 18065,
3379
3379
  "name": "bool",
3380
3380
  "nodeType": "ElementaryTypeName",
3381
- "src": "9170:4:47",
3381
+ "src": "9163:4:47",
3382
3382
  "typeDescriptions": {
3383
3383
  "typeIdentifier": "t_bool",
3384
3384
  "typeString": "bool"
@@ -3387,10 +3387,10 @@
3387
3387
  "visibility": "internal"
3388
3388
  }
3389
3389
  ],
3390
- "src": "9169:6:47"
3390
+ "src": "9162:6:47"
3391
3391
  },
3392
3392
  "scope": 18324,
3393
- "src": "9118:58:47",
3393
+ "src": "9111:58:47",
3394
3394
  "stateMutability": "view",
3395
3395
  "virtual": false,
3396
3396
  "visibility": "external"
@@ -3399,7 +3399,7 @@
3399
3399
  "documentation": {
3400
3400
  "id": 18069,
3401
3401
  "nodeType": "StructuredDocumentation",
3402
- "src": "9182:75:47",
3402
+ "src": "9175:75:47",
3403
3403
  "text": " @dev Query app level\n @param app Super app address"
3404
3404
  },
3405
3405
  "functionSelector": "13349046",
@@ -3408,7 +3408,7 @@
3408
3408
  "kind": "function",
3409
3409
  "modifiers": [],
3410
3410
  "name": "getAppLevel",
3411
- "nameLocation": "9271:11:47",
3411
+ "nameLocation": "9264:11:47",
3412
3412
  "nodeType": "FunctionDefinition",
3413
3413
  "parameters": {
3414
3414
  "id": 18073,
@@ -3419,10 +3419,10 @@
3419
3419
  "id": 18072,
3420
3420
  "mutability": "mutable",
3421
3421
  "name": "app",
3422
- "nameLocation": "9293:3:47",
3422
+ "nameLocation": "9286:3:47",
3423
3423
  "nodeType": "VariableDeclaration",
3424
3424
  "scope": 18077,
3425
- "src": "9283:13:47",
3425
+ "src": "9276:13:47",
3426
3426
  "stateVariable": false,
3427
3427
  "storageLocation": "default",
3428
3428
  "typeDescriptions": {
@@ -3437,10 +3437,10 @@
3437
3437
  "name": "ISuperApp",
3438
3438
  "nodeType": "IdentifierPath",
3439
3439
  "referencedDeclaration": 17385,
3440
- "src": "9283:9:47"
3440
+ "src": "9276:9:47"
3441
3441
  },
3442
3442
  "referencedDeclaration": 17385,
3443
- "src": "9283:9:47",
3443
+ "src": "9276:9:47",
3444
3444
  "typeDescriptions": {
3445
3445
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3446
3446
  "typeString": "contract ISuperApp"
@@ -3449,7 +3449,7 @@
3449
3449
  "visibility": "internal"
3450
3450
  }
3451
3451
  ],
3452
- "src": "9282:15:47"
3452
+ "src": "9275:15:47"
3453
3453
  },
3454
3454
  "returnParameters": {
3455
3455
  "id": 18076,
@@ -3460,10 +3460,10 @@
3460
3460
  "id": 18075,
3461
3461
  "mutability": "mutable",
3462
3462
  "name": "appLevel",
3463
- "nameLocation": "9326:8:47",
3463
+ "nameLocation": "9319:8:47",
3464
3464
  "nodeType": "VariableDeclaration",
3465
3465
  "scope": 18077,
3466
- "src": "9320:14:47",
3466
+ "src": "9313:14:47",
3467
3467
  "stateVariable": false,
3468
3468
  "storageLocation": "default",
3469
3469
  "typeDescriptions": {
@@ -3474,7 +3474,7 @@
3474
3474
  "id": 18074,
3475
3475
  "name": "uint8",
3476
3476
  "nodeType": "ElementaryTypeName",
3477
- "src": "9320:5:47",
3477
+ "src": "9313:5:47",
3478
3478
  "typeDescriptions": {
3479
3479
  "typeIdentifier": "t_uint8",
3480
3480
  "typeString": "uint8"
@@ -3483,10 +3483,10 @@
3483
3483
  "visibility": "internal"
3484
3484
  }
3485
3485
  ],
3486
- "src": "9319:16:47"
3486
+ "src": "9312:16:47"
3487
3487
  },
3488
3488
  "scope": 18324,
3489
- "src": "9262:74:47",
3489
+ "src": "9255:74:47",
3490
3490
  "stateMutability": "view",
3491
3491
  "virtual": false,
3492
3492
  "visibility": "external"
@@ -3495,7 +3495,7 @@
3495
3495
  "documentation": {
3496
3496
  "id": 18078,
3497
3497
  "nodeType": "StructuredDocumentation",
3498
- "src": "9342:93:47",
3498
+ "src": "9335:93:47",
3499
3499
  "text": " @dev Get the manifest of the super app\n @param app Super app address"
3500
3500
  },
3501
3501
  "functionSelector": "f9f522f4",
@@ -3504,7 +3504,7 @@
3504
3504
  "kind": "function",
3505
3505
  "modifiers": [],
3506
3506
  "name": "getAppManifest",
3507
- "nameLocation": "9449:14:47",
3507
+ "nameLocation": "9442:14:47",
3508
3508
  "nodeType": "FunctionDefinition",
3509
3509
  "parameters": {
3510
3510
  "id": 18082,
@@ -3515,10 +3515,10 @@
3515
3515
  "id": 18081,
3516
3516
  "mutability": "mutable",
3517
3517
  "name": "app",
3518
- "nameLocation": "9483:3:47",
3518
+ "nameLocation": "9476:3:47",
3519
3519
  "nodeType": "VariableDeclaration",
3520
3520
  "scope": 18090,
3521
- "src": "9473:13:47",
3521
+ "src": "9466:13:47",
3522
3522
  "stateVariable": false,
3523
3523
  "storageLocation": "default",
3524
3524
  "typeDescriptions": {
@@ -3533,10 +3533,10 @@
3533
3533
  "name": "ISuperApp",
3534
3534
  "nodeType": "IdentifierPath",
3535
3535
  "referencedDeclaration": 17385,
3536
- "src": "9473:9:47"
3536
+ "src": "9466:9:47"
3537
3537
  },
3538
3538
  "referencedDeclaration": 17385,
3539
- "src": "9473:9:47",
3539
+ "src": "9466:9:47",
3540
3540
  "typeDescriptions": {
3541
3541
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3542
3542
  "typeString": "contract ISuperApp"
@@ -3545,7 +3545,7 @@
3545
3545
  "visibility": "internal"
3546
3546
  }
3547
3547
  ],
3548
- "src": "9463:29:47"
3548
+ "src": "9456:29:47"
3549
3549
  },
3550
3550
  "returnParameters": {
3551
3551
  "id": 18089,
@@ -3556,10 +3556,10 @@
3556
3556
  "id": 18084,
3557
3557
  "mutability": "mutable",
3558
3558
  "name": "isSuperApp",
3559
- "nameLocation": "9550:10:47",
3559
+ "nameLocation": "9543:10:47",
3560
3560
  "nodeType": "VariableDeclaration",
3561
3561
  "scope": 18090,
3562
- "src": "9545:15:47",
3562
+ "src": "9538:15:47",
3563
3563
  "stateVariable": false,
3564
3564
  "storageLocation": "default",
3565
3565
  "typeDescriptions": {
@@ -3570,7 +3570,7 @@
3570
3570
  "id": 18083,
3571
3571
  "name": "bool",
3572
3572
  "nodeType": "ElementaryTypeName",
3573
- "src": "9545:4:47",
3573
+ "src": "9538:4:47",
3574
3574
  "typeDescriptions": {
3575
3575
  "typeIdentifier": "t_bool",
3576
3576
  "typeString": "bool"
@@ -3583,10 +3583,10 @@
3583
3583
  "id": 18086,
3584
3584
  "mutability": "mutable",
3585
3585
  "name": "isJailed",
3586
- "nameLocation": "9579:8:47",
3586
+ "nameLocation": "9572:8:47",
3587
3587
  "nodeType": "VariableDeclaration",
3588
3588
  "scope": 18090,
3589
- "src": "9574:13:47",
3589
+ "src": "9567:13:47",
3590
3590
  "stateVariable": false,
3591
3591
  "storageLocation": "default",
3592
3592
  "typeDescriptions": {
@@ -3597,7 +3597,7 @@
3597
3597
  "id": 18085,
3598
3598
  "name": "bool",
3599
3599
  "nodeType": "ElementaryTypeName",
3600
- "src": "9574:4:47",
3600
+ "src": "9567:4:47",
3601
3601
  "typeDescriptions": {
3602
3602
  "typeIdentifier": "t_bool",
3603
3603
  "typeString": "bool"
@@ -3610,10 +3610,10 @@
3610
3610
  "id": 18088,
3611
3611
  "mutability": "mutable",
3612
3612
  "name": "noopMask",
3613
- "nameLocation": "9609:8:47",
3613
+ "nameLocation": "9602:8:47",
3614
3614
  "nodeType": "VariableDeclaration",
3615
3615
  "scope": 18090,
3616
- "src": "9601:16:47",
3616
+ "src": "9594:16:47",
3617
3617
  "stateVariable": false,
3618
3618
  "storageLocation": "default",
3619
3619
  "typeDescriptions": {
@@ -3624,7 +3624,7 @@
3624
3624
  "id": 18087,
3625
3625
  "name": "uint256",
3626
3626
  "nodeType": "ElementaryTypeName",
3627
- "src": "9601:7:47",
3627
+ "src": "9594:7:47",
3628
3628
  "typeDescriptions": {
3629
3629
  "typeIdentifier": "t_uint256",
3630
3630
  "typeString": "uint256"
@@ -3633,10 +3633,10 @@
3633
3633
  "visibility": "internal"
3634
3634
  }
3635
3635
  ],
3636
- "src": "9531:96:47"
3636
+ "src": "9524:96:47"
3637
3637
  },
3638
3638
  "scope": 18324,
3639
- "src": "9440:188:47",
3639
+ "src": "9433:188:47",
3640
3640
  "stateMutability": "view",
3641
3641
  "virtual": false,
3642
3642
  "visibility": "external"
@@ -3645,7 +3645,7 @@
3645
3645
  "documentation": {
3646
3646
  "id": 18091,
3647
3647
  "nodeType": "StructuredDocumentation",
3648
- "src": "9634:92:47",
3648
+ "src": "9627:92:47",
3649
3649
  "text": " @dev Query if the app has been jailed\n @param app Super app address"
3650
3650
  },
3651
3651
  "functionSelector": "6b4f3335",
@@ -3654,7 +3654,7 @@
3654
3654
  "kind": "function",
3655
3655
  "modifiers": [],
3656
3656
  "name": "isAppJailed",
3657
- "nameLocation": "9740:11:47",
3657
+ "nameLocation": "9733:11:47",
3658
3658
  "nodeType": "FunctionDefinition",
3659
3659
  "parameters": {
3660
3660
  "id": 18095,
@@ -3665,10 +3665,10 @@
3665
3665
  "id": 18094,
3666
3666
  "mutability": "mutable",
3667
3667
  "name": "app",
3668
- "nameLocation": "9762:3:47",
3668
+ "nameLocation": "9755:3:47",
3669
3669
  "nodeType": "VariableDeclaration",
3670
3670
  "scope": 18099,
3671
- "src": "9752:13:47",
3671
+ "src": "9745:13:47",
3672
3672
  "stateVariable": false,
3673
3673
  "storageLocation": "default",
3674
3674
  "typeDescriptions": {
@@ -3683,10 +3683,10 @@
3683
3683
  "name": "ISuperApp",
3684
3684
  "nodeType": "IdentifierPath",
3685
3685
  "referencedDeclaration": 17385,
3686
- "src": "9752:9:47"
3686
+ "src": "9745:9:47"
3687
3687
  },
3688
3688
  "referencedDeclaration": 17385,
3689
- "src": "9752:9:47",
3689
+ "src": "9745:9:47",
3690
3690
  "typeDescriptions": {
3691
3691
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3692
3692
  "typeString": "contract ISuperApp"
@@ -3695,7 +3695,7 @@
3695
3695
  "visibility": "internal"
3696
3696
  }
3697
3697
  ],
3698
- "src": "9751:15:47"
3698
+ "src": "9744:15:47"
3699
3699
  },
3700
3700
  "returnParameters": {
3701
3701
  "id": 18098,
@@ -3706,10 +3706,10 @@
3706
3706
  "id": 18097,
3707
3707
  "mutability": "mutable",
3708
3708
  "name": "isJail",
3709
- "nameLocation": "9795:6:47",
3709
+ "nameLocation": "9788:6:47",
3710
3710
  "nodeType": "VariableDeclaration",
3711
3711
  "scope": 18099,
3712
- "src": "9790:11:47",
3712
+ "src": "9783:11:47",
3713
3713
  "stateVariable": false,
3714
3714
  "storageLocation": "default",
3715
3715
  "typeDescriptions": {
@@ -3720,7 +3720,7 @@
3720
3720
  "id": 18096,
3721
3721
  "name": "bool",
3722
3722
  "nodeType": "ElementaryTypeName",
3723
- "src": "9790:4:47",
3723
+ "src": "9783:4:47",
3724
3724
  "typeDescriptions": {
3725
3725
  "typeIdentifier": "t_bool",
3726
3726
  "typeString": "bool"
@@ -3729,10 +3729,10 @@
3729
3729
  "visibility": "internal"
3730
3730
  }
3731
3731
  ],
3732
- "src": "9789:13:47"
3732
+ "src": "9782:13:47"
3733
3733
  },
3734
3734
  "scope": 18324,
3735
- "src": "9731:72:47",
3735
+ "src": "9724:72:47",
3736
3736
  "stateMutability": "view",
3737
3737
  "virtual": false,
3738
3738
  "visibility": "external"
@@ -3741,7 +3741,7 @@
3741
3741
  "documentation": {
3742
3742
  "id": 18100,
3743
3743
  "nodeType": "StructuredDocumentation",
3744
- "src": "9809:153:47",
3744
+ "src": "9802:153:47",
3745
3745
  "text": " @dev Whitelist the target app for app composition for the source app (msg.sender)\n @param targetApp The target super app address"
3746
3746
  },
3747
3747
  "functionSelector": "57121e0c",
@@ -3750,7 +3750,7 @@
3750
3750
  "kind": "function",
3751
3751
  "modifiers": [],
3752
3752
  "name": "allowCompositeApp",
3753
- "nameLocation": "9976:17:47",
3753
+ "nameLocation": "9969:17:47",
3754
3754
  "nodeType": "FunctionDefinition",
3755
3755
  "parameters": {
3756
3756
  "id": 18104,
@@ -3761,10 +3761,10 @@
3761
3761
  "id": 18103,
3762
3762
  "mutability": "mutable",
3763
3763
  "name": "targetApp",
3764
- "nameLocation": "10004:9:47",
3764
+ "nameLocation": "9997:9:47",
3765
3765
  "nodeType": "VariableDeclaration",
3766
3766
  "scope": 18106,
3767
- "src": "9994:19:47",
3767
+ "src": "9987:19:47",
3768
3768
  "stateVariable": false,
3769
3769
  "storageLocation": "default",
3770
3770
  "typeDescriptions": {
@@ -3779,10 +3779,10 @@
3779
3779
  "name": "ISuperApp",
3780
3780
  "nodeType": "IdentifierPath",
3781
3781
  "referencedDeclaration": 17385,
3782
- "src": "9994:9:47"
3782
+ "src": "9987:9:47"
3783
3783
  },
3784
3784
  "referencedDeclaration": 17385,
3785
- "src": "9994:9:47",
3785
+ "src": "9987:9:47",
3786
3786
  "typeDescriptions": {
3787
3787
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3788
3788
  "typeString": "contract ISuperApp"
@@ -3791,16 +3791,16 @@
3791
3791
  "visibility": "internal"
3792
3792
  }
3793
3793
  ],
3794
- "src": "9993:21:47"
3794
+ "src": "9986:21:47"
3795
3795
  },
3796
3796
  "returnParameters": {
3797
3797
  "id": 18105,
3798
3798
  "nodeType": "ParameterList",
3799
3799
  "parameters": [],
3800
- "src": "10023:0:47"
3800
+ "src": "10016:0:47"
3801
3801
  },
3802
3802
  "scope": 18324,
3803
- "src": "9967:57:47",
3803
+ "src": "9960:57:47",
3804
3804
  "stateMutability": "nonpayable",
3805
3805
  "virtual": false,
3806
3806
  "visibility": "external"
@@ -3809,7 +3809,7 @@
3809
3809
  "documentation": {
3810
3810
  "id": 18107,
3811
3811
  "nodeType": "StructuredDocumentation",
3812
- "src": "10030:184:47",
3812
+ "src": "10023:184:47",
3813
3813
  "text": " @dev Query if source app is allowed to call the target app as downstream app\n @param app Super app address\n @param targetApp The target super app address"
3814
3814
  },
3815
3815
  "functionSelector": "bb84cfa1",
@@ -3818,7 +3818,7 @@
3818
3818
  "kind": "function",
3819
3819
  "modifiers": [],
3820
3820
  "name": "isCompositeAppAllowed",
3821
- "nameLocation": "10228:21:47",
3821
+ "nameLocation": "10221:21:47",
3822
3822
  "nodeType": "FunctionDefinition",
3823
3823
  "parameters": {
3824
3824
  "id": 18114,
@@ -3829,10 +3829,10 @@
3829
3829
  "id": 18110,
3830
3830
  "mutability": "mutable",
3831
3831
  "name": "app",
3832
- "nameLocation": "10269:3:47",
3832
+ "nameLocation": "10262:3:47",
3833
3833
  "nodeType": "VariableDeclaration",
3834
3834
  "scope": 18118,
3835
- "src": "10259:13:47",
3835
+ "src": "10252:13:47",
3836
3836
  "stateVariable": false,
3837
3837
  "storageLocation": "default",
3838
3838
  "typeDescriptions": {
@@ -3847,10 +3847,10 @@
3847
3847
  "name": "ISuperApp",
3848
3848
  "nodeType": "IdentifierPath",
3849
3849
  "referencedDeclaration": 17385,
3850
- "src": "10259:9:47"
3850
+ "src": "10252:9:47"
3851
3851
  },
3852
3852
  "referencedDeclaration": 17385,
3853
- "src": "10259:9:47",
3853
+ "src": "10252:9:47",
3854
3854
  "typeDescriptions": {
3855
3855
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3856
3856
  "typeString": "contract ISuperApp"
@@ -3863,10 +3863,10 @@
3863
3863
  "id": 18113,
3864
3864
  "mutability": "mutable",
3865
3865
  "name": "targetApp",
3866
- "nameLocation": "10292:9:47",
3866
+ "nameLocation": "10285:9:47",
3867
3867
  "nodeType": "VariableDeclaration",
3868
3868
  "scope": 18118,
3869
- "src": "10282:19:47",
3869
+ "src": "10275:19:47",
3870
3870
  "stateVariable": false,
3871
3871
  "storageLocation": "default",
3872
3872
  "typeDescriptions": {
@@ -3881,10 +3881,10 @@
3881
3881
  "name": "ISuperApp",
3882
3882
  "nodeType": "IdentifierPath",
3883
3883
  "referencedDeclaration": 17385,
3884
- "src": "10282:9:47"
3884
+ "src": "10275:9:47"
3885
3885
  },
3886
3886
  "referencedDeclaration": 17385,
3887
- "src": "10282:9:47",
3887
+ "src": "10275:9:47",
3888
3888
  "typeDescriptions": {
3889
3889
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3890
3890
  "typeString": "contract ISuperApp"
@@ -3893,7 +3893,7 @@
3893
3893
  "visibility": "internal"
3894
3894
  }
3895
3895
  ],
3896
- "src": "10249:58:47"
3896
+ "src": "10242:58:47"
3897
3897
  },
3898
3898
  "returnParameters": {
3899
3899
  "id": 18117,
@@ -3904,10 +3904,10 @@
3904
3904
  "id": 18116,
3905
3905
  "mutability": "mutable",
3906
3906
  "name": "isAppAllowed",
3907
- "nameLocation": "10352:12:47",
3907
+ "nameLocation": "10345:12:47",
3908
3908
  "nodeType": "VariableDeclaration",
3909
3909
  "scope": 18118,
3910
- "src": "10347:17:47",
3910
+ "src": "10340:17:47",
3911
3911
  "stateVariable": false,
3912
3912
  "storageLocation": "default",
3913
3913
  "typeDescriptions": {
@@ -3918,7 +3918,7 @@
3918
3918
  "id": 18115,
3919
3919
  "name": "bool",
3920
3920
  "nodeType": "ElementaryTypeName",
3921
- "src": "10347:4:47",
3921
+ "src": "10340:4:47",
3922
3922
  "typeDescriptions": {
3923
3923
  "typeIdentifier": "t_bool",
3924
3924
  "typeString": "bool"
@@ -3927,10 +3927,10 @@
3927
3927
  "visibility": "internal"
3928
3928
  }
3929
3929
  ],
3930
- "src": "10346:19:47"
3930
+ "src": "10339:19:47"
3931
3931
  },
3932
3932
  "scope": 18324,
3933
- "src": "10219:147:47",
3933
+ "src": "10212:147:47",
3934
3934
  "stateMutability": "view",
3935
3935
  "virtual": false,
3936
3936
  "visibility": "external"
@@ -3939,7 +3939,7 @@
3939
3939
  "documentation": {
3940
3940
  "id": 18119,
3941
3941
  "nodeType": "StructuredDocumentation",
3942
- "src": "10761:393:47",
3942
+ "src": "10754:393:47",
3943
3943
  "text": " @dev (For agreements) StaticCall the app before callback\n @param app The super app.\n @param callData The call data sending to the super app.\n @param isTermination Is it a termination callback?\n @param ctx Current ctx, it will be validated.\n @return cbdata Data returned from the callback."
3944
3944
  },
3945
3945
  "functionSelector": "74041e02",
@@ -3948,7 +3948,7 @@
3948
3948
  "kind": "function",
3949
3949
  "modifiers": [],
3950
3950
  "name": "callAppBeforeCallback",
3951
- "nameLocation": "11168:21:47",
3951
+ "nameLocation": "11161:21:47",
3952
3952
  "nodeType": "FunctionDefinition",
3953
3953
  "parameters": {
3954
3954
  "id": 18129,
@@ -3959,10 +3959,10 @@
3959
3959
  "id": 18122,
3960
3960
  "mutability": "mutable",
3961
3961
  "name": "app",
3962
- "nameLocation": "11209:3:47",
3962
+ "nameLocation": "11202:3:47",
3963
3963
  "nodeType": "VariableDeclaration",
3964
3964
  "scope": 18133,
3965
- "src": "11199:13:47",
3965
+ "src": "11192:13:47",
3966
3966
  "stateVariable": false,
3967
3967
  "storageLocation": "default",
3968
3968
  "typeDescriptions": {
@@ -3977,10 +3977,10 @@
3977
3977
  "name": "ISuperApp",
3978
3978
  "nodeType": "IdentifierPath",
3979
3979
  "referencedDeclaration": 17385,
3980
- "src": "11199:9:47"
3980
+ "src": "11192:9:47"
3981
3981
  },
3982
3982
  "referencedDeclaration": 17385,
3983
- "src": "11199:9:47",
3983
+ "src": "11192:9:47",
3984
3984
  "typeDescriptions": {
3985
3985
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
3986
3986
  "typeString": "contract ISuperApp"
@@ -3993,10 +3993,10 @@
3993
3993
  "id": 18124,
3994
3994
  "mutability": "mutable",
3995
3995
  "name": "callData",
3996
- "nameLocation": "11237:8:47",
3996
+ "nameLocation": "11230:8:47",
3997
3997
  "nodeType": "VariableDeclaration",
3998
3998
  "scope": 18133,
3999
- "src": "11222:23:47",
3999
+ "src": "11215:23:47",
4000
4000
  "stateVariable": false,
4001
4001
  "storageLocation": "calldata",
4002
4002
  "typeDescriptions": {
@@ -4007,7 +4007,7 @@
4007
4007
  "id": 18123,
4008
4008
  "name": "bytes",
4009
4009
  "nodeType": "ElementaryTypeName",
4010
- "src": "11222:5:47",
4010
+ "src": "11215:5:47",
4011
4011
  "typeDescriptions": {
4012
4012
  "typeIdentifier": "t_bytes_storage_ptr",
4013
4013
  "typeString": "bytes"
@@ -4020,10 +4020,10 @@
4020
4020
  "id": 18126,
4021
4021
  "mutability": "mutable",
4022
4022
  "name": "isTermination",
4023
- "nameLocation": "11260:13:47",
4023
+ "nameLocation": "11253:13:47",
4024
4024
  "nodeType": "VariableDeclaration",
4025
4025
  "scope": 18133,
4026
- "src": "11255:18:47",
4026
+ "src": "11248:18:47",
4027
4027
  "stateVariable": false,
4028
4028
  "storageLocation": "default",
4029
4029
  "typeDescriptions": {
@@ -4034,7 +4034,7 @@
4034
4034
  "id": 18125,
4035
4035
  "name": "bool",
4036
4036
  "nodeType": "ElementaryTypeName",
4037
- "src": "11255:4:47",
4037
+ "src": "11248:4:47",
4038
4038
  "typeDescriptions": {
4039
4039
  "typeIdentifier": "t_bool",
4040
4040
  "typeString": "bool"
@@ -4047,10 +4047,10 @@
4047
4047
  "id": 18128,
4048
4048
  "mutability": "mutable",
4049
4049
  "name": "ctx",
4050
- "nameLocation": "11298:3:47",
4050
+ "nameLocation": "11291:3:47",
4051
4051
  "nodeType": "VariableDeclaration",
4052
4052
  "scope": 18133,
4053
- "src": "11283:18:47",
4053
+ "src": "11276:18:47",
4054
4054
  "stateVariable": false,
4055
4055
  "storageLocation": "calldata",
4056
4056
  "typeDescriptions": {
@@ -4061,7 +4061,7 @@
4061
4061
  "id": 18127,
4062
4062
  "name": "bytes",
4063
4063
  "nodeType": "ElementaryTypeName",
4064
- "src": "11283:5:47",
4064
+ "src": "11276:5:47",
4065
4065
  "typeDescriptions": {
4066
4066
  "typeIdentifier": "t_bytes_storage_ptr",
4067
4067
  "typeString": "bytes"
@@ -4070,7 +4070,7 @@
4070
4070
  "visibility": "internal"
4071
4071
  }
4072
4072
  ],
4073
- "src": "11189:118:47"
4073
+ "src": "11182:118:47"
4074
4074
  },
4075
4075
  "returnParameters": {
4076
4076
  "id": 18132,
@@ -4081,10 +4081,10 @@
4081
4081
  "id": 18131,
4082
4082
  "mutability": "mutable",
4083
4083
  "name": "cbdata",
4084
- "nameLocation": "11410:6:47",
4084
+ "nameLocation": "11403:6:47",
4085
4085
  "nodeType": "VariableDeclaration",
4086
4086
  "scope": 18133,
4087
- "src": "11397:19:47",
4087
+ "src": "11390:19:47",
4088
4088
  "stateVariable": false,
4089
4089
  "storageLocation": "memory",
4090
4090
  "typeDescriptions": {
@@ -4095,7 +4095,7 @@
4095
4095
  "id": 18130,
4096
4096
  "name": "bytes",
4097
4097
  "nodeType": "ElementaryTypeName",
4098
- "src": "11397:5:47",
4098
+ "src": "11390:5:47",
4099
4099
  "typeDescriptions": {
4100
4100
  "typeIdentifier": "t_bytes_storage_ptr",
4101
4101
  "typeString": "bytes"
@@ -4104,10 +4104,10 @@
4104
4104
  "visibility": "internal"
4105
4105
  }
4106
4106
  ],
4107
- "src": "11396:21:47"
4107
+ "src": "11389:21:47"
4108
4108
  },
4109
4109
  "scope": 18324,
4110
- "src": "11159:259:47",
4110
+ "src": "11152:259:47",
4111
4111
  "stateMutability": "nonpayable",
4112
4112
  "virtual": false,
4113
4113
  "visibility": "external"
@@ -4116,8 +4116,8 @@
4116
4116
  "documentation": {
4117
4117
  "id": 18134,
4118
4118
  "nodeType": "StructuredDocumentation",
4119
- "src": "11424:342:47",
4120
- "text": " @dev (For agreements) Call the app after callback\n @param app The super app.\n @param callData The call data sending to the super app.\n @param isTermination Is it a termination callback?\n @param ctx Current ctx, it will be validated.\n @return newCtx"
4119
+ "src": "11417:393:47",
4120
+ "text": " @dev (For agreements) Call the app after callback\n @param app The super app.\n @param callData The call data sending to the super app.\n @param isTermination Is it a termination callback?\n @param ctx Current ctx, it will be validated.\n @return newCtx The current context of the transaction."
4121
4121
  },
4122
4122
  "functionSelector": "1e6d0a84",
4123
4123
  "id": 18148,
@@ -4125,7 +4125,7 @@
4125
4125
  "kind": "function",
4126
4126
  "modifiers": [],
4127
4127
  "name": "callAppAfterCallback",
4128
- "nameLocation": "11780:20:47",
4128
+ "nameLocation": "11824:20:47",
4129
4129
  "nodeType": "FunctionDefinition",
4130
4130
  "parameters": {
4131
4131
  "id": 18144,
@@ -4136,10 +4136,10 @@
4136
4136
  "id": 18137,
4137
4137
  "mutability": "mutable",
4138
4138
  "name": "app",
4139
- "nameLocation": "11820:3:47",
4139
+ "nameLocation": "11864:3:47",
4140
4140
  "nodeType": "VariableDeclaration",
4141
4141
  "scope": 18148,
4142
- "src": "11810:13:47",
4142
+ "src": "11854:13:47",
4143
4143
  "stateVariable": false,
4144
4144
  "storageLocation": "default",
4145
4145
  "typeDescriptions": {
@@ -4154,10 +4154,10 @@
4154
4154
  "name": "ISuperApp",
4155
4155
  "nodeType": "IdentifierPath",
4156
4156
  "referencedDeclaration": 17385,
4157
- "src": "11810:9:47"
4157
+ "src": "11854:9:47"
4158
4158
  },
4159
4159
  "referencedDeclaration": 17385,
4160
- "src": "11810:9:47",
4160
+ "src": "11854:9:47",
4161
4161
  "typeDescriptions": {
4162
4162
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
4163
4163
  "typeString": "contract ISuperApp"
@@ -4170,10 +4170,10 @@
4170
4170
  "id": 18139,
4171
4171
  "mutability": "mutable",
4172
4172
  "name": "callData",
4173
- "nameLocation": "11848:8:47",
4173
+ "nameLocation": "11892:8:47",
4174
4174
  "nodeType": "VariableDeclaration",
4175
4175
  "scope": 18148,
4176
- "src": "11833:23:47",
4176
+ "src": "11877:23:47",
4177
4177
  "stateVariable": false,
4178
4178
  "storageLocation": "calldata",
4179
4179
  "typeDescriptions": {
@@ -4184,7 +4184,7 @@
4184
4184
  "id": 18138,
4185
4185
  "name": "bytes",
4186
4186
  "nodeType": "ElementaryTypeName",
4187
- "src": "11833:5:47",
4187
+ "src": "11877:5:47",
4188
4188
  "typeDescriptions": {
4189
4189
  "typeIdentifier": "t_bytes_storage_ptr",
4190
4190
  "typeString": "bytes"
@@ -4197,10 +4197,10 @@
4197
4197
  "id": 18141,
4198
4198
  "mutability": "mutable",
4199
4199
  "name": "isTermination",
4200
- "nameLocation": "11871:13:47",
4200
+ "nameLocation": "11915:13:47",
4201
4201
  "nodeType": "VariableDeclaration",
4202
4202
  "scope": 18148,
4203
- "src": "11866:18:47",
4203
+ "src": "11910:18:47",
4204
4204
  "stateVariable": false,
4205
4205
  "storageLocation": "default",
4206
4206
  "typeDescriptions": {
@@ -4211,7 +4211,7 @@
4211
4211
  "id": 18140,
4212
4212
  "name": "bool",
4213
4213
  "nodeType": "ElementaryTypeName",
4214
- "src": "11866:4:47",
4214
+ "src": "11910:4:47",
4215
4215
  "typeDescriptions": {
4216
4216
  "typeIdentifier": "t_bool",
4217
4217
  "typeString": "bool"
@@ -4224,10 +4224,10 @@
4224
4224
  "id": 18143,
4225
4225
  "mutability": "mutable",
4226
4226
  "name": "ctx",
4227
- "nameLocation": "11909:3:47",
4227
+ "nameLocation": "11953:3:47",
4228
4228
  "nodeType": "VariableDeclaration",
4229
4229
  "scope": 18148,
4230
- "src": "11894:18:47",
4230
+ "src": "11938:18:47",
4231
4231
  "stateVariable": false,
4232
4232
  "storageLocation": "calldata",
4233
4233
  "typeDescriptions": {
@@ -4238,7 +4238,7 @@
4238
4238
  "id": 18142,
4239
4239
  "name": "bytes",
4240
4240
  "nodeType": "ElementaryTypeName",
4241
- "src": "11894:5:47",
4241
+ "src": "11938:5:47",
4242
4242
  "typeDescriptions": {
4243
4243
  "typeIdentifier": "t_bytes_storage_ptr",
4244
4244
  "typeString": "bytes"
@@ -4247,7 +4247,7 @@
4247
4247
  "visibility": "internal"
4248
4248
  }
4249
4249
  ],
4250
- "src": "11800:118:47"
4250
+ "src": "11844:118:47"
4251
4251
  },
4252
4252
  "returnParameters": {
4253
4253
  "id": 18147,
@@ -4258,10 +4258,10 @@
4258
4258
  "id": 18146,
4259
4259
  "mutability": "mutable",
4260
4260
  "name": "newCtx",
4261
- "nameLocation": "12021:6:47",
4261
+ "nameLocation": "12065:6:47",
4262
4262
  "nodeType": "VariableDeclaration",
4263
4263
  "scope": 18148,
4264
- "src": "12008:19:47",
4264
+ "src": "12052:19:47",
4265
4265
  "stateVariable": false,
4266
4266
  "storageLocation": "memory",
4267
4267
  "typeDescriptions": {
@@ -4272,7 +4272,7 @@
4272
4272
  "id": 18145,
4273
4273
  "name": "bytes",
4274
4274
  "nodeType": "ElementaryTypeName",
4275
- "src": "12008:5:47",
4275
+ "src": "12052:5:47",
4276
4276
  "typeDescriptions": {
4277
4277
  "typeIdentifier": "t_bytes_storage_ptr",
4278
4278
  "typeString": "bytes"
@@ -4281,10 +4281,10 @@
4281
4281
  "visibility": "internal"
4282
4282
  }
4283
4283
  ],
4284
- "src": "12007:21:47"
4284
+ "src": "12051:21:47"
4285
4285
  },
4286
4286
  "scope": 18324,
4287
- "src": "11771:258:47",
4287
+ "src": "11815:258:47",
4288
4288
  "stateMutability": "nonpayable",
4289
4289
  "virtual": false,
4290
4290
  "visibility": "external"
@@ -4293,8 +4293,8 @@
4293
4293
  "documentation": {
4294
4294
  "id": 18149,
4295
4295
  "nodeType": "StructuredDocumentation",
4296
- "src": "12035:357:47",
4297
- "text": " @dev (For agreements) Create a new callback stack\n @param ctx The current ctx, it will be validated.\n @param app The super app.\n @param appAllowanceGranted App allowance granted so far.\n @param appAllowanceUsed App allowance used so far.\n @return newCtx"
4296
+ "src": "12079:414:47",
4297
+ "text": " @dev (For agreements) Create a new callback stack\n @param ctx The current ctx, it will be validated.\n @param app The super app.\n @param appAllowanceGranted App allowance granted so far.\n @param appAllowanceUsed App allowance used so far.\n @return newCtx The current context of the transaction."
4298
4298
  },
4299
4299
  "functionSelector": "768fabb0",
4300
4300
  "id": 18166,
@@ -4302,7 +4302,7 @@
4302
4302
  "kind": "function",
4303
4303
  "modifiers": [],
4304
4304
  "name": "appCallbackPush",
4305
- "nameLocation": "12406:15:47",
4305
+ "nameLocation": "12507:15:47",
4306
4306
  "nodeType": "FunctionDefinition",
4307
4307
  "parameters": {
4308
4308
  "id": 18162,
@@ -4313,10 +4313,10 @@
4313
4313
  "id": 18151,
4314
4314
  "mutability": "mutable",
4315
4315
  "name": "ctx",
4316
- "nameLocation": "12446:3:47",
4316
+ "nameLocation": "12547:3:47",
4317
4317
  "nodeType": "VariableDeclaration",
4318
4318
  "scope": 18166,
4319
- "src": "12431:18:47",
4319
+ "src": "12532:18:47",
4320
4320
  "stateVariable": false,
4321
4321
  "storageLocation": "calldata",
4322
4322
  "typeDescriptions": {
@@ -4327,7 +4327,7 @@
4327
4327
  "id": 18150,
4328
4328
  "name": "bytes",
4329
4329
  "nodeType": "ElementaryTypeName",
4330
- "src": "12431:5:47",
4330
+ "src": "12532:5:47",
4331
4331
  "typeDescriptions": {
4332
4332
  "typeIdentifier": "t_bytes_storage_ptr",
4333
4333
  "typeString": "bytes"
@@ -4340,10 +4340,10 @@
4340
4340
  "id": 18154,
4341
4341
  "mutability": "mutable",
4342
4342
  "name": "app",
4343
- "nameLocation": "12469:3:47",
4343
+ "nameLocation": "12570:3:47",
4344
4344
  "nodeType": "VariableDeclaration",
4345
4345
  "scope": 18166,
4346
- "src": "12459:13:47",
4346
+ "src": "12560:13:47",
4347
4347
  "stateVariable": false,
4348
4348
  "storageLocation": "default",
4349
4349
  "typeDescriptions": {
@@ -4358,10 +4358,10 @@
4358
4358
  "name": "ISuperApp",
4359
4359
  "nodeType": "IdentifierPath",
4360
4360
  "referencedDeclaration": 17385,
4361
- "src": "12459:9:47"
4361
+ "src": "12560:9:47"
4362
4362
  },
4363
4363
  "referencedDeclaration": 17385,
4364
- "src": "12459:9:47",
4364
+ "src": "12560:9:47",
4365
4365
  "typeDescriptions": {
4366
4366
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
4367
4367
  "typeString": "contract ISuperApp"
@@ -4374,10 +4374,10 @@
4374
4374
  "id": 18156,
4375
4375
  "mutability": "mutable",
4376
4376
  "name": "appAllowanceGranted",
4377
- "nameLocation": "12490:19:47",
4377
+ "nameLocation": "12591:19:47",
4378
4378
  "nodeType": "VariableDeclaration",
4379
4379
  "scope": 18166,
4380
- "src": "12482:27:47",
4380
+ "src": "12583:27:47",
4381
4381
  "stateVariable": false,
4382
4382
  "storageLocation": "default",
4383
4383
  "typeDescriptions": {
@@ -4388,7 +4388,7 @@
4388
4388
  "id": 18155,
4389
4389
  "name": "uint256",
4390
4390
  "nodeType": "ElementaryTypeName",
4391
- "src": "12482:7:47",
4391
+ "src": "12583:7:47",
4392
4392
  "typeDescriptions": {
4393
4393
  "typeIdentifier": "t_uint256",
4394
4394
  "typeString": "uint256"
@@ -4401,10 +4401,10 @@
4401
4401
  "id": 18158,
4402
4402
  "mutability": "mutable",
4403
4403
  "name": "appAllowanceUsed",
4404
- "nameLocation": "12526:16:47",
4404
+ "nameLocation": "12627:16:47",
4405
4405
  "nodeType": "VariableDeclaration",
4406
4406
  "scope": 18166,
4407
- "src": "12519:23:47",
4407
+ "src": "12620:23:47",
4408
4408
  "stateVariable": false,
4409
4409
  "storageLocation": "default",
4410
4410
  "typeDescriptions": {
@@ -4415,7 +4415,7 @@
4415
4415
  "id": 18157,
4416
4416
  "name": "int256",
4417
4417
  "nodeType": "ElementaryTypeName",
4418
- "src": "12519:6:47",
4418
+ "src": "12620:6:47",
4419
4419
  "typeDescriptions": {
4420
4420
  "typeIdentifier": "t_int256",
4421
4421
  "typeString": "int256"
@@ -4428,10 +4428,10 @@
4428
4428
  "id": 18161,
4429
4429
  "mutability": "mutable",
4430
4430
  "name": "appAllowanceToken",
4431
- "nameLocation": "12569:17:47",
4431
+ "nameLocation": "12670:17:47",
4432
4432
  "nodeType": "VariableDeclaration",
4433
4433
  "scope": 18166,
4434
- "src": "12552:34:47",
4434
+ "src": "12653:34:47",
4435
4435
  "stateVariable": false,
4436
4436
  "storageLocation": "default",
4437
4437
  "typeDescriptions": {
@@ -4446,10 +4446,10 @@
4446
4446
  "name": "ISuperfluidToken",
4447
4447
  "nodeType": "IdentifierPath",
4448
4448
  "referencedDeclaration": 18721,
4449
- "src": "12552:16:47"
4449
+ "src": "12653:16:47"
4450
4450
  },
4451
4451
  "referencedDeclaration": 18721,
4452
- "src": "12552:16:47",
4452
+ "src": "12653:16:47",
4453
4453
  "typeDescriptions": {
4454
4454
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4455
4455
  "typeString": "contract ISuperfluidToken"
@@ -4458,7 +4458,7 @@
4458
4458
  "visibility": "internal"
4459
4459
  }
4460
4460
  ],
4461
- "src": "12421:171:47"
4461
+ "src": "12522:171:47"
4462
4462
  },
4463
4463
  "returnParameters": {
4464
4464
  "id": 18165,
@@ -4469,10 +4469,10 @@
4469
4469
  "id": 18164,
4470
4470
  "mutability": "mutable",
4471
4471
  "name": "newCtx",
4472
- "nameLocation": "12696:6:47",
4472
+ "nameLocation": "12797:6:47",
4473
4473
  "nodeType": "VariableDeclaration",
4474
4474
  "scope": 18166,
4475
- "src": "12683:19:47",
4475
+ "src": "12784:19:47",
4476
4476
  "stateVariable": false,
4477
4477
  "storageLocation": "memory",
4478
4478
  "typeDescriptions": {
@@ -4483,7 +4483,7 @@
4483
4483
  "id": 18163,
4484
4484
  "name": "bytes",
4485
4485
  "nodeType": "ElementaryTypeName",
4486
- "src": "12683:5:47",
4486
+ "src": "12784:5:47",
4487
4487
  "typeDescriptions": {
4488
4488
  "typeIdentifier": "t_bytes_storage_ptr",
4489
4489
  "typeString": "bytes"
@@ -4492,10 +4492,10 @@
4492
4492
  "visibility": "internal"
4493
4493
  }
4494
4494
  ],
4495
- "src": "12682:21:47"
4495
+ "src": "12783:21:47"
4496
4496
  },
4497
4497
  "scope": 18324,
4498
- "src": "12397:307:47",
4498
+ "src": "12498:307:47",
4499
4499
  "stateMutability": "nonpayable",
4500
4500
  "virtual": false,
4501
4501
  "visibility": "external"
@@ -4504,8 +4504,8 @@
4504
4504
  "documentation": {
4505
4505
  "id": 18167,
4506
4506
  "nodeType": "StructuredDocumentation",
4507
- "src": "12710:500:47",
4508
- "text": " @dev (For agreements) Pop from the current app callback stack\n @param ctx The ctx that was pushed before the callback stack.\n @param appAllowanceUsedDelta App allowance used by the app.\n @return newCtx\n [SECURITY] NOTE:\n - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory.\n - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly."
4507
+ "src": "12811:558:47",
4508
+ "text": " @dev (For agreements) Pop from the current app callback stack\n @param ctx The ctx that was pushed before the callback stack.\n @param appAllowanceUsedDelta App allowance used by the app.\n @return newCtx The current context of the transaction.\n @custom:security \n - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory.\n - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly."
4509
4509
  },
4510
4510
  "functionSelector": "989b0c3e",
4511
4511
  "id": 18176,
@@ -4513,7 +4513,7 @@
4513
4513
  "kind": "function",
4514
4514
  "modifiers": [],
4515
4515
  "name": "appCallbackPop",
4516
- "nameLocation": "13224:14:47",
4516
+ "nameLocation": "13383:14:47",
4517
4517
  "nodeType": "FunctionDefinition",
4518
4518
  "parameters": {
4519
4519
  "id": 18172,
@@ -4524,10 +4524,10 @@
4524
4524
  "id": 18169,
4525
4525
  "mutability": "mutable",
4526
4526
  "name": "ctx",
4527
- "nameLocation": "13263:3:47",
4527
+ "nameLocation": "13422:3:47",
4528
4528
  "nodeType": "VariableDeclaration",
4529
4529
  "scope": 18176,
4530
- "src": "13248:18:47",
4530
+ "src": "13407:18:47",
4531
4531
  "stateVariable": false,
4532
4532
  "storageLocation": "calldata",
4533
4533
  "typeDescriptions": {
@@ -4538,7 +4538,7 @@
4538
4538
  "id": 18168,
4539
4539
  "name": "bytes",
4540
4540
  "nodeType": "ElementaryTypeName",
4541
- "src": "13248:5:47",
4541
+ "src": "13407:5:47",
4542
4542
  "typeDescriptions": {
4543
4543
  "typeIdentifier": "t_bytes_storage_ptr",
4544
4544
  "typeString": "bytes"
@@ -4551,10 +4551,10 @@
4551
4551
  "id": 18171,
4552
4552
  "mutability": "mutable",
4553
4553
  "name": "appAllowanceUsedDelta",
4554
- "nameLocation": "13283:21:47",
4554
+ "nameLocation": "13442:21:47",
4555
4555
  "nodeType": "VariableDeclaration",
4556
4556
  "scope": 18176,
4557
- "src": "13276:28:47",
4557
+ "src": "13435:28:47",
4558
4558
  "stateVariable": false,
4559
4559
  "storageLocation": "default",
4560
4560
  "typeDescriptions": {
@@ -4565,7 +4565,7 @@
4565
4565
  "id": 18170,
4566
4566
  "name": "int256",
4567
4567
  "nodeType": "ElementaryTypeName",
4568
- "src": "13276:6:47",
4568
+ "src": "13435:6:47",
4569
4569
  "typeDescriptions": {
4570
4570
  "typeIdentifier": "t_int256",
4571
4571
  "typeString": "int256"
@@ -4574,7 +4574,7 @@
4574
4574
  "visibility": "internal"
4575
4575
  }
4576
4576
  ],
4577
- "src": "13238:72:47"
4577
+ "src": "13397:72:47"
4578
4578
  },
4579
4579
  "returnParameters": {
4580
4580
  "id": 18175,
@@ -4585,10 +4585,10 @@
4585
4585
  "id": 18174,
4586
4586
  "mutability": "mutable",
4587
4587
  "name": "newCtx",
4588
- "nameLocation": "13383:6:47",
4588
+ "nameLocation": "13542:6:47",
4589
4589
  "nodeType": "VariableDeclaration",
4590
4590
  "scope": 18176,
4591
- "src": "13370:19:47",
4591
+ "src": "13529:19:47",
4592
4592
  "stateVariable": false,
4593
4593
  "storageLocation": "memory",
4594
4594
  "typeDescriptions": {
@@ -4599,7 +4599,7 @@
4599
4599
  "id": 18173,
4600
4600
  "name": "bytes",
4601
4601
  "nodeType": "ElementaryTypeName",
4602
- "src": "13370:5:47",
4602
+ "src": "13529:5:47",
4603
4603
  "typeDescriptions": {
4604
4604
  "typeIdentifier": "t_bytes_storage_ptr",
4605
4605
  "typeString": "bytes"
@@ -4608,10 +4608,10 @@
4608
4608
  "visibility": "internal"
4609
4609
  }
4610
4610
  ],
4611
- "src": "13369:21:47"
4611
+ "src": "13528:21:47"
4612
4612
  },
4613
4613
  "scope": 18324,
4614
- "src": "13215:176:47",
4614
+ "src": "13374:176:47",
4615
4615
  "stateMutability": "nonpayable",
4616
4616
  "virtual": false,
4617
4617
  "visibility": "external"
@@ -4620,8 +4620,8 @@
4620
4620
  "documentation": {
4621
4621
  "id": 18177,
4622
4622
  "nodeType": "StructuredDocumentation",
4623
- "src": "13397:312:47",
4624
- "text": " @dev (For agreements) Use app allowance.\n @param ctx The current ctx, it will be validated.\n @param appAllowanceWantedMore See app allowance for more details.\n @param appAllowanceUsedDelta See app allowance for more details.\n @return newCtx"
4623
+ "src": "13556:370:47",
4624
+ "text": " @dev (For agreements) Use app allowance.\n @param ctx The current ctx, it will be validated.\n @param appAllowanceWantedMore See app allowance for more details.\n @param appAllowanceUsedDelta See app allowance for more details.\n @return newCtx The current context of the transaction."
4625
4625
  },
4626
4626
  "functionSelector": "0792f20a",
4627
4627
  "id": 18188,
@@ -4629,7 +4629,7 @@
4629
4629
  "kind": "function",
4630
4630
  "modifiers": [],
4631
4631
  "name": "ctxUseAllowance",
4632
- "nameLocation": "13723:15:47",
4632
+ "nameLocation": "13940:15:47",
4633
4633
  "nodeType": "FunctionDefinition",
4634
4634
  "parameters": {
4635
4635
  "id": 18184,
@@ -4640,10 +4640,10 @@
4640
4640
  "id": 18179,
4641
4641
  "mutability": "mutable",
4642
4642
  "name": "ctx",
4643
- "nameLocation": "13763:3:47",
4643
+ "nameLocation": "13980:3:47",
4644
4644
  "nodeType": "VariableDeclaration",
4645
4645
  "scope": 18188,
4646
- "src": "13748:18:47",
4646
+ "src": "13965:18:47",
4647
4647
  "stateVariable": false,
4648
4648
  "storageLocation": "calldata",
4649
4649
  "typeDescriptions": {
@@ -4654,7 +4654,7 @@
4654
4654
  "id": 18178,
4655
4655
  "name": "bytes",
4656
4656
  "nodeType": "ElementaryTypeName",
4657
- "src": "13748:5:47",
4657
+ "src": "13965:5:47",
4658
4658
  "typeDescriptions": {
4659
4659
  "typeIdentifier": "t_bytes_storage_ptr",
4660
4660
  "typeString": "bytes"
@@ -4667,10 +4667,10 @@
4667
4667
  "id": 18181,
4668
4668
  "mutability": "mutable",
4669
4669
  "name": "appAllowanceWantedMore",
4670
- "nameLocation": "13784:22:47",
4670
+ "nameLocation": "14001:22:47",
4671
4671
  "nodeType": "VariableDeclaration",
4672
4672
  "scope": 18188,
4673
- "src": "13776:30:47",
4673
+ "src": "13993:30:47",
4674
4674
  "stateVariable": false,
4675
4675
  "storageLocation": "default",
4676
4676
  "typeDescriptions": {
@@ -4681,7 +4681,7 @@
4681
4681
  "id": 18180,
4682
4682
  "name": "uint256",
4683
4683
  "nodeType": "ElementaryTypeName",
4684
- "src": "13776:7:47",
4684
+ "src": "13993:7:47",
4685
4685
  "typeDescriptions": {
4686
4686
  "typeIdentifier": "t_uint256",
4687
4687
  "typeString": "uint256"
@@ -4694,10 +4694,10 @@
4694
4694
  "id": 18183,
4695
4695
  "mutability": "mutable",
4696
4696
  "name": "appAllowanceUsedDelta",
4697
- "nameLocation": "13823:21:47",
4697
+ "nameLocation": "14040:21:47",
4698
4698
  "nodeType": "VariableDeclaration",
4699
4699
  "scope": 18188,
4700
- "src": "13816:28:47",
4700
+ "src": "14033:28:47",
4701
4701
  "stateVariable": false,
4702
4702
  "storageLocation": "default",
4703
4703
  "typeDescriptions": {
@@ -4708,7 +4708,7 @@
4708
4708
  "id": 18182,
4709
4709
  "name": "int256",
4710
4710
  "nodeType": "ElementaryTypeName",
4711
- "src": "13816:6:47",
4711
+ "src": "14033:6:47",
4712
4712
  "typeDescriptions": {
4713
4713
  "typeIdentifier": "t_int256",
4714
4714
  "typeString": "int256"
@@ -4717,7 +4717,7 @@
4717
4717
  "visibility": "internal"
4718
4718
  }
4719
4719
  ],
4720
- "src": "13738:112:47"
4720
+ "src": "13955:112:47"
4721
4721
  },
4722
4722
  "returnParameters": {
4723
4723
  "id": 18187,
@@ -4728,10 +4728,10 @@
4728
4728
  "id": 18186,
4729
4729
  "mutability": "mutable",
4730
4730
  "name": "newCtx",
4731
- "nameLocation": "13954:6:47",
4731
+ "nameLocation": "14171:6:47",
4732
4732
  "nodeType": "VariableDeclaration",
4733
4733
  "scope": 18188,
4734
- "src": "13941:19:47",
4734
+ "src": "14158:19:47",
4735
4735
  "stateVariable": false,
4736
4736
  "storageLocation": "memory",
4737
4737
  "typeDescriptions": {
@@ -4742,7 +4742,7 @@
4742
4742
  "id": 18185,
4743
4743
  "name": "bytes",
4744
4744
  "nodeType": "ElementaryTypeName",
4745
- "src": "13941:5:47",
4745
+ "src": "14158:5:47",
4746
4746
  "typeDescriptions": {
4747
4747
  "typeIdentifier": "t_bytes_storage_ptr",
4748
4748
  "typeString": "bytes"
@@ -4751,10 +4751,10 @@
4751
4751
  "visibility": "internal"
4752
4752
  }
4753
4753
  ],
4754
- "src": "13940:21:47"
4754
+ "src": "14157:21:47"
4755
4755
  },
4756
4756
  "scope": 18324,
4757
- "src": "13714:248:47",
4757
+ "src": "13931:248:47",
4758
4758
  "stateMutability": "nonpayable",
4759
4759
  "virtual": false,
4760
4760
  "visibility": "external"
@@ -4763,8 +4763,8 @@
4763
4763
  "documentation": {
4764
4764
  "id": 18189,
4765
4765
  "nodeType": "StructuredDocumentation",
4766
- "src": "13968:187:47",
4767
- "text": " @dev (For agreements) Jail the app.\n @param app The super app.\n @param reason Jail reason code.\n @return newCtx"
4766
+ "src": "14185:244:47",
4767
+ "text": " @dev (For agreements) Jail the app.\n @param app The super app.\n @param reason Jail reason code.\n @return newCtx The current context of the transaction."
4768
4768
  },
4769
4769
  "functionSelector": "b724211e",
4770
4770
  "id": 18201,
@@ -4772,7 +4772,7 @@
4772
4772
  "kind": "function",
4773
4773
  "modifiers": [],
4774
4774
  "name": "jailApp",
4775
- "nameLocation": "14169:7:47",
4775
+ "nameLocation": "14443:7:47",
4776
4776
  "nodeType": "FunctionDefinition",
4777
4777
  "parameters": {
4778
4778
  "id": 18197,
@@ -4783,10 +4783,10 @@
4783
4783
  "id": 18191,
4784
4784
  "mutability": "mutable",
4785
4785
  "name": "ctx",
4786
- "nameLocation": "14201:3:47",
4786
+ "nameLocation": "14475:3:47",
4787
4787
  "nodeType": "VariableDeclaration",
4788
4788
  "scope": 18201,
4789
- "src": "14186:18:47",
4789
+ "src": "14460:18:47",
4790
4790
  "stateVariable": false,
4791
4791
  "storageLocation": "calldata",
4792
4792
  "typeDescriptions": {
@@ -4797,7 +4797,7 @@
4797
4797
  "id": 18190,
4798
4798
  "name": "bytes",
4799
4799
  "nodeType": "ElementaryTypeName",
4800
- "src": "14186:5:47",
4800
+ "src": "14460:5:47",
4801
4801
  "typeDescriptions": {
4802
4802
  "typeIdentifier": "t_bytes_storage_ptr",
4803
4803
  "typeString": "bytes"
@@ -4810,10 +4810,10 @@
4810
4810
  "id": 18194,
4811
4811
  "mutability": "mutable",
4812
4812
  "name": "app",
4813
- "nameLocation": "14224:3:47",
4813
+ "nameLocation": "14498:3:47",
4814
4814
  "nodeType": "VariableDeclaration",
4815
4815
  "scope": 18201,
4816
- "src": "14214:13:47",
4816
+ "src": "14488:13:47",
4817
4817
  "stateVariable": false,
4818
4818
  "storageLocation": "default",
4819
4819
  "typeDescriptions": {
@@ -4828,10 +4828,10 @@
4828
4828
  "name": "ISuperApp",
4829
4829
  "nodeType": "IdentifierPath",
4830
4830
  "referencedDeclaration": 17385,
4831
- "src": "14214:9:47"
4831
+ "src": "14488:9:47"
4832
4832
  },
4833
4833
  "referencedDeclaration": 17385,
4834
- "src": "14214:9:47",
4834
+ "src": "14488:9:47",
4835
4835
  "typeDescriptions": {
4836
4836
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
4837
4837
  "typeString": "contract ISuperApp"
@@ -4844,10 +4844,10 @@
4844
4844
  "id": 18196,
4845
4845
  "mutability": "mutable",
4846
4846
  "name": "reason",
4847
- "nameLocation": "14245:6:47",
4847
+ "nameLocation": "14519:6:47",
4848
4848
  "nodeType": "VariableDeclaration",
4849
4849
  "scope": 18201,
4850
- "src": "14237:14:47",
4850
+ "src": "14511:14:47",
4851
4851
  "stateVariable": false,
4852
4852
  "storageLocation": "default",
4853
4853
  "typeDescriptions": {
@@ -4858,7 +4858,7 @@
4858
4858
  "id": 18195,
4859
4859
  "name": "uint256",
4860
4860
  "nodeType": "ElementaryTypeName",
4861
- "src": "14237:7:47",
4861
+ "src": "14511:7:47",
4862
4862
  "typeDescriptions": {
4863
4863
  "typeIdentifier": "t_uint256",
4864
4864
  "typeString": "uint256"
@@ -4867,7 +4867,7 @@
4867
4867
  "visibility": "internal"
4868
4868
  }
4869
4869
  ],
4870
- "src": "14176:81:47"
4870
+ "src": "14450:81:47"
4871
4871
  },
4872
4872
  "returnParameters": {
4873
4873
  "id": 18200,
@@ -4878,10 +4878,10 @@
4878
4878
  "id": 18199,
4879
4879
  "mutability": "mutable",
4880
4880
  "name": "newCtx",
4881
- "nameLocation": "14361:6:47",
4881
+ "nameLocation": "14635:6:47",
4882
4882
  "nodeType": "VariableDeclaration",
4883
4883
  "scope": 18201,
4884
- "src": "14348:19:47",
4884
+ "src": "14622:19:47",
4885
4885
  "stateVariable": false,
4886
4886
  "storageLocation": "memory",
4887
4887
  "typeDescriptions": {
@@ -4892,7 +4892,7 @@
4892
4892
  "id": 18198,
4893
4893
  "name": "bytes",
4894
4894
  "nodeType": "ElementaryTypeName",
4895
- "src": "14348:5:47",
4895
+ "src": "14622:5:47",
4896
4896
  "typeDescriptions": {
4897
4897
  "typeIdentifier": "t_bytes_storage_ptr",
4898
4898
  "typeString": "bytes"
@@ -4901,10 +4901,10 @@
4901
4901
  "visibility": "internal"
4902
4902
  }
4903
4903
  ],
4904
- "src": "14347:21:47"
4904
+ "src": "14621:21:47"
4905
4905
  },
4906
4906
  "scope": 18324,
4907
- "src": "14160:209:47",
4907
+ "src": "14434:209:47",
4908
4908
  "stateMutability": "nonpayable",
4909
4909
  "virtual": false,
4910
4910
  "visibility": "external"
@@ -4914,13 +4914,13 @@
4914
4914
  "documentation": {
4915
4915
  "id": 18202,
4916
4916
  "nodeType": "StructuredDocumentation",
4917
- "src": "14375:172:47",
4917
+ "src": "14649:172:47",
4918
4918
  "text": " @dev Jail event for the app\n @param app Address of jailed app\n @param reason Reason the app is jailed (see Definitions.sol for the full list)"
4919
4919
  },
4920
4920
  "eventSelector": "be3aa33bd245135e4e26b223d79d14ea479a47bff09f2b03c53838af1edbb14b",
4921
4921
  "id": 18209,
4922
4922
  "name": "Jail",
4923
- "nameLocation": "14558:4:47",
4923
+ "nameLocation": "14832:4:47",
4924
4924
  "nodeType": "EventDefinition",
4925
4925
  "parameters": {
4926
4926
  "id": 18208,
@@ -4932,10 +4932,10 @@
4932
4932
  "indexed": true,
4933
4933
  "mutability": "mutable",
4934
4934
  "name": "app",
4935
- "nameLocation": "14581:3:47",
4935
+ "nameLocation": "14855:3:47",
4936
4936
  "nodeType": "VariableDeclaration",
4937
4937
  "scope": 18209,
4938
- "src": "14563:21:47",
4938
+ "src": "14837:21:47",
4939
4939
  "stateVariable": false,
4940
4940
  "storageLocation": "default",
4941
4941
  "typeDescriptions": {
@@ -4950,10 +4950,10 @@
4950
4950
  "name": "ISuperApp",
4951
4951
  "nodeType": "IdentifierPath",
4952
4952
  "referencedDeclaration": 17385,
4953
- "src": "14563:9:47"
4953
+ "src": "14837:9:47"
4954
4954
  },
4955
4955
  "referencedDeclaration": 17385,
4956
- "src": "14563:9:47",
4956
+ "src": "14837:9:47",
4957
4957
  "typeDescriptions": {
4958
4958
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
4959
4959
  "typeString": "contract ISuperApp"
@@ -4967,10 +4967,10 @@
4967
4967
  "indexed": false,
4968
4968
  "mutability": "mutable",
4969
4969
  "name": "reason",
4970
- "nameLocation": "14594:6:47",
4970
+ "nameLocation": "14868:6:47",
4971
4971
  "nodeType": "VariableDeclaration",
4972
4972
  "scope": 18209,
4973
- "src": "14586:14:47",
4973
+ "src": "14860:14:47",
4974
4974
  "stateVariable": false,
4975
4975
  "storageLocation": "default",
4976
4976
  "typeDescriptions": {
@@ -4981,7 +4981,7 @@
4981
4981
  "id": 18206,
4982
4982
  "name": "uint256",
4983
4983
  "nodeType": "ElementaryTypeName",
4984
- "src": "14586:7:47",
4984
+ "src": "14860:7:47",
4985
4985
  "typeDescriptions": {
4986
4986
  "typeIdentifier": "t_uint256",
4987
4987
  "typeString": "uint256"
@@ -4990,15 +4990,15 @@
4990
4990
  "visibility": "internal"
4991
4991
  }
4992
4992
  ],
4993
- "src": "14562:39:47"
4993
+ "src": "14836:39:47"
4994
4994
  },
4995
- "src": "14552:50:47"
4995
+ "src": "14826:50:47"
4996
4996
  },
4997
4997
  {
4998
4998
  "documentation": {
4999
4999
  "id": 18210,
5000
5000
  "nodeType": "StructuredDocumentation",
5001
- "src": "15163:265:47",
5001
+ "src": "15437:265:47",
5002
5002
  "text": " @dev Call agreement function\n @param agreementClass The agreement address you are calling\n @param callData The contextual call data with placeholder ctx\n @param userData Extra user data being sent to the super app callbacks"
5003
5003
  },
5004
5004
  "functionSelector": "39255d5b",
@@ -5007,7 +5007,7 @@
5007
5007
  "kind": "function",
5008
5008
  "modifiers": [],
5009
5009
  "name": "callAgreement",
5010
- "nameLocation": "15443:13:47",
5010
+ "nameLocation": "15717:13:47",
5011
5011
  "nodeType": "FunctionDefinition",
5012
5012
  "parameters": {
5013
5013
  "id": 18218,
@@ -5018,10 +5018,10 @@
5018
5018
  "id": 18213,
5019
5019
  "mutability": "mutable",
5020
5020
  "name": "agreementClass",
5021
- "nameLocation": "15483:14:47",
5021
+ "nameLocation": "15757:14:47",
5022
5022
  "nodeType": "VariableDeclaration",
5023
5023
  "scope": 18222,
5024
- "src": "15467:30:47",
5024
+ "src": "15741:30:47",
5025
5025
  "stateVariable": false,
5026
5026
  "storageLocation": "default",
5027
5027
  "typeDescriptions": {
@@ -5036,10 +5036,10 @@
5036
5036
  "name": "ISuperAgreement",
5037
5037
  "nodeType": "IdentifierPath",
5038
5038
  "referencedDeclaration": 17271,
5039
- "src": "15467:15:47"
5039
+ "src": "15741:15:47"
5040
5040
  },
5041
5041
  "referencedDeclaration": 17271,
5042
- "src": "15467:15:47",
5042
+ "src": "15741:15:47",
5043
5043
  "typeDescriptions": {
5044
5044
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
5045
5045
  "typeString": "contract ISuperAgreement"
@@ -5052,10 +5052,10 @@
5052
5052
  "id": 18215,
5053
5053
  "mutability": "mutable",
5054
5054
  "name": "callData",
5055
- "nameLocation": "15523:8:47",
5055
+ "nameLocation": "15797:8:47",
5056
5056
  "nodeType": "VariableDeclaration",
5057
5057
  "scope": 18222,
5058
- "src": "15508:23:47",
5058
+ "src": "15782:23:47",
5059
5059
  "stateVariable": false,
5060
5060
  "storageLocation": "calldata",
5061
5061
  "typeDescriptions": {
@@ -5066,7 +5066,7 @@
5066
5066
  "id": 18214,
5067
5067
  "name": "bytes",
5068
5068
  "nodeType": "ElementaryTypeName",
5069
- "src": "15508:5:47",
5069
+ "src": "15782:5:47",
5070
5070
  "typeDescriptions": {
5071
5071
  "typeIdentifier": "t_bytes_storage_ptr",
5072
5072
  "typeString": "bytes"
@@ -5079,10 +5079,10 @@
5079
5079
  "id": 18217,
5080
5080
  "mutability": "mutable",
5081
5081
  "name": "userData",
5082
- "nameLocation": "15557:8:47",
5082
+ "nameLocation": "15831:8:47",
5083
5083
  "nodeType": "VariableDeclaration",
5084
5084
  "scope": 18222,
5085
- "src": "15542:23:47",
5085
+ "src": "15816:23:47",
5086
5086
  "stateVariable": false,
5087
5087
  "storageLocation": "calldata",
5088
5088
  "typeDescriptions": {
@@ -5093,7 +5093,7 @@
5093
5093
  "id": 18216,
5094
5094
  "name": "bytes",
5095
5095
  "nodeType": "ElementaryTypeName",
5096
- "src": "15542:5:47",
5096
+ "src": "15816:5:47",
5097
5097
  "typeDescriptions": {
5098
5098
  "typeIdentifier": "t_bytes_storage_ptr",
5099
5099
  "typeString": "bytes"
@@ -5102,7 +5102,7 @@
5102
5102
  "visibility": "internal"
5103
5103
  }
5104
5104
  ],
5105
- "src": "15456:116:47"
5105
+ "src": "15730:116:47"
5106
5106
  },
5107
5107
  "returnParameters": {
5108
5108
  "id": 18221,
@@ -5113,10 +5113,10 @@
5113
5113
  "id": 18220,
5114
5114
  "mutability": "mutable",
5115
5115
  "name": "returnedData",
5116
- "nameLocation": "15676:12:47",
5116
+ "nameLocation": "15950:12:47",
5117
5117
  "nodeType": "VariableDeclaration",
5118
5118
  "scope": 18222,
5119
- "src": "15663:25:47",
5119
+ "src": "15937:25:47",
5120
5120
  "stateVariable": false,
5121
5121
  "storageLocation": "memory",
5122
5122
  "typeDescriptions": {
@@ -5127,7 +5127,7 @@
5127
5127
  "id": 18219,
5128
5128
  "name": "bytes",
5129
5129
  "nodeType": "ElementaryTypeName",
5130
- "src": "15663:5:47",
5130
+ "src": "15937:5:47",
5131
5131
  "typeDescriptions": {
5132
5132
  "typeIdentifier": "t_bytes_storage_ptr",
5133
5133
  "typeString": "bytes"
@@ -5136,10 +5136,10 @@
5136
5136
  "visibility": "internal"
5137
5137
  }
5138
5138
  ],
5139
- "src": "15662:27:47"
5139
+ "src": "15936:27:47"
5140
5140
  },
5141
5141
  "scope": 18324,
5142
- "src": "15434:256:47",
5142
+ "src": "15708:256:47",
5143
5143
  "stateMutability": "nonpayable",
5144
5144
  "virtual": false,
5145
5145
  "visibility": "external"
@@ -5148,8 +5148,8 @@
5148
5148
  "documentation": {
5149
5149
  "id": 18223,
5150
5150
  "nodeType": "StructuredDocumentation",
5151
- "src": "15696:261:47",
5152
- "text": " @notice Call app action\n @dev Main use case is calling app action in a batch call via the host\n @param callData The contextual call data\n NOTE: See \"Contextless Call Proxies\" above for more about contextual call data."
5151
+ "src": "15970:268:47",
5152
+ "text": " @notice Call app action\n @dev Main use case is calling app action in a batch call via the host\n @param callData The contextual call data\n @custom:note See \"Contextless Call Proxies\" above for more about contextual call data."
5153
5153
  },
5154
5154
  "functionSelector": "1e855cf3",
5155
5155
  "id": 18233,
@@ -5157,7 +5157,7 @@
5157
5157
  "kind": "function",
5158
5158
  "modifiers": [],
5159
5159
  "name": "callAppAction",
5160
- "nameLocation": "15971:13:47",
5160
+ "nameLocation": "16252:13:47",
5161
5161
  "nodeType": "FunctionDefinition",
5162
5162
  "parameters": {
5163
5163
  "id": 18229,
@@ -5168,10 +5168,10 @@
5168
5168
  "id": 18226,
5169
5169
  "mutability": "mutable",
5170
5170
  "name": "app",
5171
- "nameLocation": "16004:3:47",
5171
+ "nameLocation": "16285:3:47",
5172
5172
  "nodeType": "VariableDeclaration",
5173
5173
  "scope": 18233,
5174
- "src": "15994:13:47",
5174
+ "src": "16275:13:47",
5175
5175
  "stateVariable": false,
5176
5176
  "storageLocation": "default",
5177
5177
  "typeDescriptions": {
@@ -5186,10 +5186,10 @@
5186
5186
  "name": "ISuperApp",
5187
5187
  "nodeType": "IdentifierPath",
5188
5188
  "referencedDeclaration": 17385,
5189
- "src": "15994:9:47"
5189
+ "src": "16275:9:47"
5190
5190
  },
5191
5191
  "referencedDeclaration": 17385,
5192
- "src": "15994:9:47",
5192
+ "src": "16275:9:47",
5193
5193
  "typeDescriptions": {
5194
5194
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
5195
5195
  "typeString": "contract ISuperApp"
@@ -5202,10 +5202,10 @@
5202
5202
  "id": 18228,
5203
5203
  "mutability": "mutable",
5204
5204
  "name": "callData",
5205
- "nameLocation": "16032:8:47",
5205
+ "nameLocation": "16313:8:47",
5206
5206
  "nodeType": "VariableDeclaration",
5207
5207
  "scope": 18233,
5208
- "src": "16017:23:47",
5208
+ "src": "16298:23:47",
5209
5209
  "stateVariable": false,
5210
5210
  "storageLocation": "calldata",
5211
5211
  "typeDescriptions": {
@@ -5216,7 +5216,7 @@
5216
5216
  "id": 18227,
5217
5217
  "name": "bytes",
5218
5218
  "nodeType": "ElementaryTypeName",
5219
- "src": "16017:5:47",
5219
+ "src": "16298:5:47",
5220
5220
  "typeDescriptions": {
5221
5221
  "typeIdentifier": "t_bytes_storage_ptr",
5222
5222
  "typeString": "bytes"
@@ -5225,7 +5225,7 @@
5225
5225
  "visibility": "internal"
5226
5226
  }
5227
5227
  ],
5228
- "src": "15984:62:47"
5228
+ "src": "16265:62:47"
5229
5229
  },
5230
5230
  "returnParameters": {
5231
5231
  "id": 18232,
@@ -5236,10 +5236,10 @@
5236
5236
  "id": 18231,
5237
5237
  "mutability": "mutable",
5238
5238
  "name": "returnedData",
5239
- "nameLocation": "16176:12:47",
5239
+ "nameLocation": "16457:12:47",
5240
5240
  "nodeType": "VariableDeclaration",
5241
5241
  "scope": 18233,
5242
- "src": "16163:25:47",
5242
+ "src": "16444:25:47",
5243
5243
  "stateVariable": false,
5244
5244
  "storageLocation": "memory",
5245
5245
  "typeDescriptions": {
@@ -5250,7 +5250,7 @@
5250
5250
  "id": 18230,
5251
5251
  "name": "bytes",
5252
5252
  "nodeType": "ElementaryTypeName",
5253
- "src": "16163:5:47",
5253
+ "src": "16444:5:47",
5254
5254
  "typeDescriptions": {
5255
5255
  "typeIdentifier": "t_bytes_storage_ptr",
5256
5256
  "typeString": "bytes"
@@ -5259,10 +5259,10 @@
5259
5259
  "visibility": "internal"
5260
5260
  }
5261
5261
  ],
5262
- "src": "16162:27:47"
5262
+ "src": "16443:27:47"
5263
5263
  },
5264
5264
  "scope": 18324,
5265
- "src": "15962:228:47",
5265
+ "src": "16243:228:47",
5266
5266
  "stateMutability": "nonpayable",
5267
5267
  "virtual": false,
5268
5268
  "visibility": "external"
@@ -5276,10 +5276,10 @@
5276
5276
  "id": 18235,
5277
5277
  "mutability": "mutable",
5278
5278
  "name": "appLevel",
5279
- "nameLocation": "17319:8:47",
5279
+ "nameLocation": "17608:8:47",
5280
5280
  "nodeType": "VariableDeclaration",
5281
5281
  "scope": 18257,
5282
- "src": "17313:14:47",
5282
+ "src": "17602:14:47",
5283
5283
  "stateVariable": false,
5284
5284
  "storageLocation": "default",
5285
5285
  "typeDescriptions": {
@@ -5290,7 +5290,7 @@
5290
5290
  "id": 18234,
5291
5291
  "name": "uint8",
5292
5292
  "nodeType": "ElementaryTypeName",
5293
- "src": "17313:5:47",
5293
+ "src": "17602:5:47",
5294
5294
  "typeDescriptions": {
5295
5295
  "typeIdentifier": "t_uint8",
5296
5296
  "typeString": "uint8"
@@ -5303,10 +5303,10 @@
5303
5303
  "id": 18237,
5304
5304
  "mutability": "mutable",
5305
5305
  "name": "callType",
5306
- "nameLocation": "17367:8:47",
5306
+ "nameLocation": "17656:8:47",
5307
5307
  "nodeType": "VariableDeclaration",
5308
5308
  "scope": 18257,
5309
- "src": "17361:14:47",
5309
+ "src": "17650:14:47",
5310
5310
  "stateVariable": false,
5311
5311
  "storageLocation": "default",
5312
5312
  "typeDescriptions": {
@@ -5317,7 +5317,7 @@
5317
5317
  "id": 18236,
5318
5318
  "name": "uint8",
5319
5319
  "nodeType": "ElementaryTypeName",
5320
- "src": "17361:5:47",
5320
+ "src": "17650:5:47",
5321
5321
  "typeDescriptions": {
5322
5322
  "typeIdentifier": "t_uint8",
5323
5323
  "typeString": "uint8"
@@ -5330,10 +5330,10 @@
5330
5330
  "id": 18239,
5331
5331
  "mutability": "mutable",
5332
5332
  "name": "timestamp",
5333
- "nameLocation": "17425:9:47",
5333
+ "nameLocation": "17714:9:47",
5334
5334
  "nodeType": "VariableDeclaration",
5335
5335
  "scope": 18257,
5336
- "src": "17417:17:47",
5336
+ "src": "17706:17:47",
5337
5337
  "stateVariable": false,
5338
5338
  "storageLocation": "default",
5339
5339
  "typeDescriptions": {
@@ -5344,7 +5344,7 @@
5344
5344
  "id": 18238,
5345
5345
  "name": "uint256",
5346
5346
  "nodeType": "ElementaryTypeName",
5347
- "src": "17417:7:47",
5347
+ "src": "17706:7:47",
5348
5348
  "typeDescriptions": {
5349
5349
  "typeIdentifier": "t_uint256",
5350
5350
  "typeString": "uint256"
@@ -5357,10 +5357,10 @@
5357
5357
  "id": 18241,
5358
5358
  "mutability": "mutable",
5359
5359
  "name": "msgSender",
5360
- "nameLocation": "17504:9:47",
5360
+ "nameLocation": "17793:9:47",
5361
5361
  "nodeType": "VariableDeclaration",
5362
5362
  "scope": 18257,
5363
- "src": "17496:17:47",
5363
+ "src": "17785:17:47",
5364
5364
  "stateVariable": false,
5365
5365
  "storageLocation": "default",
5366
5366
  "typeDescriptions": {
@@ -5371,7 +5371,7 @@
5371
5371
  "id": 18240,
5372
5372
  "name": "address",
5373
5373
  "nodeType": "ElementaryTypeName",
5374
- "src": "17496:7:47",
5374
+ "src": "17785:7:47",
5375
5375
  "stateMutability": "nonpayable",
5376
5376
  "typeDescriptions": {
5377
5377
  "typeIdentifier": "t_address",
@@ -5385,10 +5385,10 @@
5385
5385
  "id": 18243,
5386
5386
  "mutability": "mutable",
5387
5387
  "name": "agreementSelector",
5388
- "nameLocation": "17669:17:47",
5388
+ "nameLocation": "17958:17:47",
5389
5389
  "nodeType": "VariableDeclaration",
5390
5390
  "scope": 18257,
5391
- "src": "17662:24:47",
5391
+ "src": "17951:24:47",
5392
5392
  "stateVariable": false,
5393
5393
  "storageLocation": "default",
5394
5394
  "typeDescriptions": {
@@ -5399,7 +5399,7 @@
5399
5399
  "id": 18242,
5400
5400
  "name": "bytes4",
5401
5401
  "nodeType": "ElementaryTypeName",
5402
- "src": "17662:6:47",
5402
+ "src": "17951:6:47",
5403
5403
  "typeDescriptions": {
5404
5404
  "typeIdentifier": "t_bytes4",
5405
5405
  "typeString": "bytes4"
@@ -5412,10 +5412,10 @@
5412
5412
  "id": 18245,
5413
5413
  "mutability": "mutable",
5414
5414
  "name": "userData",
5415
- "nameLocation": "17750:8:47",
5415
+ "nameLocation": "18039:8:47",
5416
5416
  "nodeType": "VariableDeclaration",
5417
5417
  "scope": 18257,
5418
- "src": "17744:14:47",
5418
+ "src": "18033:14:47",
5419
5419
  "stateVariable": false,
5420
5420
  "storageLocation": "default",
5421
5421
  "typeDescriptions": {
@@ -5426,7 +5426,7 @@
5426
5426
  "id": 18244,
5427
5427
  "name": "bytes",
5428
5428
  "nodeType": "ElementaryTypeName",
5429
- "src": "17744:5:47",
5429
+ "src": "18033:5:47",
5430
5430
  "typeDescriptions": {
5431
5431
  "typeIdentifier": "t_bytes_storage_ptr",
5432
5432
  "typeString": "bytes"
@@ -5439,10 +5439,10 @@
5439
5439
  "id": 18247,
5440
5440
  "mutability": "mutable",
5441
5441
  "name": "appAllowanceGranted",
5442
- "nameLocation": "17855:19:47",
5442
+ "nameLocation": "18144:19:47",
5443
5443
  "nodeType": "VariableDeclaration",
5444
5444
  "scope": 18257,
5445
- "src": "17847:27:47",
5445
+ "src": "18136:27:47",
5446
5446
  "stateVariable": false,
5447
5447
  "storageLocation": "default",
5448
5448
  "typeDescriptions": {
@@ -5453,7 +5453,7 @@
5453
5453
  "id": 18246,
5454
5454
  "name": "uint256",
5455
5455
  "nodeType": "ElementaryTypeName",
5456
- "src": "17847:7:47",
5456
+ "src": "18136:7:47",
5457
5457
  "typeDescriptions": {
5458
5458
  "typeIdentifier": "t_uint256",
5459
5459
  "typeString": "uint256"
@@ -5466,10 +5466,10 @@
5466
5466
  "id": 18249,
5467
5467
  "mutability": "mutable",
5468
5468
  "name": "appAllowanceWanted",
5469
- "nameLocation": "17944:18:47",
5469
+ "nameLocation": "18233:18:47",
5470
5470
  "nodeType": "VariableDeclaration",
5471
5471
  "scope": 18257,
5472
- "src": "17936:26:47",
5472
+ "src": "18225:26:47",
5473
5473
  "stateVariable": false,
5474
5474
  "storageLocation": "default",
5475
5475
  "typeDescriptions": {
@@ -5480,7 +5480,7 @@
5480
5480
  "id": 18248,
5481
5481
  "name": "uint256",
5482
5482
  "nodeType": "ElementaryTypeName",
5483
- "src": "17936:7:47",
5483
+ "src": "18225:7:47",
5484
5484
  "typeDescriptions": {
5485
5485
  "typeIdentifier": "t_uint256",
5486
5486
  "typeString": "uint256"
@@ -5493,10 +5493,10 @@
5493
5493
  "id": 18251,
5494
5494
  "mutability": "mutable",
5495
5495
  "name": "appAllowanceUsed",
5496
- "nameLocation": "18059:16:47",
5496
+ "nameLocation": "18348:16:47",
5497
5497
  "nodeType": "VariableDeclaration",
5498
5498
  "scope": 18257,
5499
- "src": "18052:23:47",
5499
+ "src": "18341:23:47",
5500
5500
  "stateVariable": false,
5501
5501
  "storageLocation": "default",
5502
5502
  "typeDescriptions": {
@@ -5507,7 +5507,7 @@
5507
5507
  "id": 18250,
5508
5508
  "name": "int256",
5509
5509
  "nodeType": "ElementaryTypeName",
5510
- "src": "18052:6:47",
5510
+ "src": "18341:6:47",
5511
5511
  "typeDescriptions": {
5512
5512
  "typeIdentifier": "t_int256",
5513
5513
  "typeString": "int256"
@@ -5520,10 +5520,10 @@
5520
5520
  "id": 18253,
5521
5521
  "mutability": "mutable",
5522
5522
  "name": "appAddress",
5523
- "nameLocation": "18116:10:47",
5523
+ "nameLocation": "18405:10:47",
5524
5524
  "nodeType": "VariableDeclaration",
5525
5525
  "scope": 18257,
5526
- "src": "18108:18:47",
5526
+ "src": "18397:18:47",
5527
5527
  "stateVariable": false,
5528
5528
  "storageLocation": "default",
5529
5529
  "typeDescriptions": {
@@ -5534,7 +5534,7 @@
5534
5534
  "id": 18252,
5535
5535
  "name": "address",
5536
5536
  "nodeType": "ElementaryTypeName",
5537
- "src": "18108:7:47",
5537
+ "src": "18397:7:47",
5538
5538
  "stateMutability": "nonpayable",
5539
5539
  "typeDescriptions": {
5540
5540
  "typeIdentifier": "t_address",
@@ -5548,10 +5548,10 @@
5548
5548
  "id": 18256,
5549
5549
  "mutability": "mutable",
5550
5550
  "name": "appAllowanceToken",
5551
- "nameLocation": "18193:17:47",
5551
+ "nameLocation": "18482:17:47",
5552
5552
  "nodeType": "VariableDeclaration",
5553
5553
  "scope": 18257,
5554
- "src": "18176:34:47",
5554
+ "src": "18465:34:47",
5555
5555
  "stateVariable": false,
5556
5556
  "storageLocation": "default",
5557
5557
  "typeDescriptions": {
@@ -5566,10 +5566,10 @@
5566
5566
  "name": "ISuperfluidToken",
5567
5567
  "nodeType": "IdentifierPath",
5568
5568
  "referencedDeclaration": 18721,
5569
- "src": "18176:16:47"
5569
+ "src": "18465:16:47"
5570
5570
  },
5571
5571
  "referencedDeclaration": 18721,
5572
- "src": "18176:16:47",
5572
+ "src": "18465:16:47",
5573
5573
  "typeDescriptions": {
5574
5574
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
5575
5575
  "typeString": "contract ISuperfluidToken"
@@ -5579,10 +5579,10 @@
5579
5579
  }
5580
5580
  ],
5581
5581
  "name": "Context",
5582
- "nameLocation": "17223:7:47",
5582
+ "nameLocation": "17512:7:47",
5583
5583
  "nodeType": "StructDefinition",
5584
5584
  "scope": 18324,
5585
- "src": "17216:1001:47",
5585
+ "src": "17505:1001:47",
5586
5586
  "visibility": "public"
5587
5587
  },
5588
5588
  {
@@ -5592,7 +5592,7 @@
5592
5592
  "kind": "function",
5593
5593
  "modifiers": [],
5594
5594
  "name": "callAgreementWithContext",
5595
- "nameLocation": "18232:24:47",
5595
+ "nameLocation": "18521:24:47",
5596
5596
  "nodeType": "FunctionDefinition",
5597
5597
  "parameters": {
5598
5598
  "id": 18267,
@@ -5603,10 +5603,10 @@
5603
5603
  "id": 18260,
5604
5604
  "mutability": "mutable",
5605
5605
  "name": "agreementClass",
5606
- "nameLocation": "18282:14:47",
5606
+ "nameLocation": "18571:14:47",
5607
5607
  "nodeType": "VariableDeclaration",
5608
5608
  "scope": 18273,
5609
- "src": "18266:30:47",
5609
+ "src": "18555:30:47",
5610
5610
  "stateVariable": false,
5611
5611
  "storageLocation": "default",
5612
5612
  "typeDescriptions": {
@@ -5621,10 +5621,10 @@
5621
5621
  "name": "ISuperAgreement",
5622
5622
  "nodeType": "IdentifierPath",
5623
5623
  "referencedDeclaration": 17271,
5624
- "src": "18266:15:47"
5624
+ "src": "18555:15:47"
5625
5625
  },
5626
5626
  "referencedDeclaration": 17271,
5627
- "src": "18266:15:47",
5627
+ "src": "18555:15:47",
5628
5628
  "typeDescriptions": {
5629
5629
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
5630
5630
  "typeString": "contract ISuperAgreement"
@@ -5637,10 +5637,10 @@
5637
5637
  "id": 18262,
5638
5638
  "mutability": "mutable",
5639
5639
  "name": "callData",
5640
- "nameLocation": "18321:8:47",
5640
+ "nameLocation": "18610:8:47",
5641
5641
  "nodeType": "VariableDeclaration",
5642
5642
  "scope": 18273,
5643
- "src": "18306:23:47",
5643
+ "src": "18595:23:47",
5644
5644
  "stateVariable": false,
5645
5645
  "storageLocation": "calldata",
5646
5646
  "typeDescriptions": {
@@ -5651,7 +5651,7 @@
5651
5651
  "id": 18261,
5652
5652
  "name": "bytes",
5653
5653
  "nodeType": "ElementaryTypeName",
5654
- "src": "18306:5:47",
5654
+ "src": "18595:5:47",
5655
5655
  "typeDescriptions": {
5656
5656
  "typeIdentifier": "t_bytes_storage_ptr",
5657
5657
  "typeString": "bytes"
@@ -5664,10 +5664,10 @@
5664
5664
  "id": 18264,
5665
5665
  "mutability": "mutable",
5666
5666
  "name": "userData",
5667
- "nameLocation": "18354:8:47",
5667
+ "nameLocation": "18643:8:47",
5668
5668
  "nodeType": "VariableDeclaration",
5669
5669
  "scope": 18273,
5670
- "src": "18339:23:47",
5670
+ "src": "18628:23:47",
5671
5671
  "stateVariable": false,
5672
5672
  "storageLocation": "calldata",
5673
5673
  "typeDescriptions": {
@@ -5678,7 +5678,7 @@
5678
5678
  "id": 18263,
5679
5679
  "name": "bytes",
5680
5680
  "nodeType": "ElementaryTypeName",
5681
- "src": "18339:5:47",
5681
+ "src": "18628:5:47",
5682
5682
  "typeDescriptions": {
5683
5683
  "typeIdentifier": "t_bytes_storage_ptr",
5684
5684
  "typeString": "bytes"
@@ -5691,10 +5691,10 @@
5691
5691
  "id": 18266,
5692
5692
  "mutability": "mutable",
5693
5693
  "name": "ctx",
5694
- "nameLocation": "18387:3:47",
5694
+ "nameLocation": "18676:3:47",
5695
5695
  "nodeType": "VariableDeclaration",
5696
5696
  "scope": 18273,
5697
- "src": "18372:18:47",
5697
+ "src": "18661:18:47",
5698
5698
  "stateVariable": false,
5699
5699
  "storageLocation": "calldata",
5700
5700
  "typeDescriptions": {
@@ -5705,7 +5705,7 @@
5705
5705
  "id": 18265,
5706
5706
  "name": "bytes",
5707
5707
  "nodeType": "ElementaryTypeName",
5708
- "src": "18372:5:47",
5708
+ "src": "18661:5:47",
5709
5709
  "typeDescriptions": {
5710
5710
  "typeIdentifier": "t_bytes_storage_ptr",
5711
5711
  "typeString": "bytes"
@@ -5714,7 +5714,7 @@
5714
5714
  "visibility": "internal"
5715
5715
  }
5716
5716
  ],
5717
- "src": "18256:140:47"
5717
+ "src": "18545:140:47"
5718
5718
  },
5719
5719
  "returnParameters": {
5720
5720
  "id": 18272,
@@ -5725,10 +5725,10 @@
5725
5725
  "id": 18269,
5726
5726
  "mutability": "mutable",
5727
5727
  "name": "newCtx",
5728
- "nameLocation": "18517:6:47",
5728
+ "nameLocation": "18806:6:47",
5729
5729
  "nodeType": "VariableDeclaration",
5730
5730
  "scope": 18273,
5731
- "src": "18504:19:47",
5731
+ "src": "18793:19:47",
5732
5732
  "stateVariable": false,
5733
5733
  "storageLocation": "memory",
5734
5734
  "typeDescriptions": {
@@ -5739,7 +5739,7 @@
5739
5739
  "id": 18268,
5740
5740
  "name": "bytes",
5741
5741
  "nodeType": "ElementaryTypeName",
5742
- "src": "18504:5:47",
5742
+ "src": "18793:5:47",
5743
5743
  "typeDescriptions": {
5744
5744
  "typeIdentifier": "t_bytes_storage_ptr",
5745
5745
  "typeString": "bytes"
@@ -5752,10 +5752,10 @@
5752
5752
  "id": 18271,
5753
5753
  "mutability": "mutable",
5754
5754
  "name": "returnedData",
5755
- "nameLocation": "18538:12:47",
5755
+ "nameLocation": "18827:12:47",
5756
5756
  "nodeType": "VariableDeclaration",
5757
5757
  "scope": 18273,
5758
- "src": "18525:25:47",
5758
+ "src": "18814:25:47",
5759
5759
  "stateVariable": false,
5760
5760
  "storageLocation": "memory",
5761
5761
  "typeDescriptions": {
@@ -5766,7 +5766,7 @@
5766
5766
  "id": 18270,
5767
5767
  "name": "bytes",
5768
5768
  "nodeType": "ElementaryTypeName",
5769
- "src": "18525:5:47",
5769
+ "src": "18814:5:47",
5770
5770
  "typeDescriptions": {
5771
5771
  "typeIdentifier": "t_bytes_storage_ptr",
5772
5772
  "typeString": "bytes"
@@ -5775,10 +5775,10 @@
5775
5775
  "visibility": "internal"
5776
5776
  }
5777
5777
  ],
5778
- "src": "18503:48:47"
5778
+ "src": "18792:48:47"
5779
5779
  },
5780
5780
  "scope": 18324,
5781
- "src": "18223:329:47",
5781
+ "src": "18512:329:47",
5782
5782
  "stateMutability": "nonpayable",
5783
5783
  "virtual": false,
5784
5784
  "visibility": "external"
@@ -5790,7 +5790,7 @@
5790
5790
  "kind": "function",
5791
5791
  "modifiers": [],
5792
5792
  "name": "callAppActionWithContext",
5793
- "nameLocation": "18567:24:47",
5793
+ "nameLocation": "18856:24:47",
5794
5794
  "nodeType": "FunctionDefinition",
5795
5795
  "parameters": {
5796
5796
  "id": 18281,
@@ -5801,10 +5801,10 @@
5801
5801
  "id": 18276,
5802
5802
  "mutability": "mutable",
5803
5803
  "name": "app",
5804
- "nameLocation": "18611:3:47",
5804
+ "nameLocation": "18900:3:47",
5805
5805
  "nodeType": "VariableDeclaration",
5806
5806
  "scope": 18285,
5807
- "src": "18601:13:47",
5807
+ "src": "18890:13:47",
5808
5808
  "stateVariable": false,
5809
5809
  "storageLocation": "default",
5810
5810
  "typeDescriptions": {
@@ -5819,10 +5819,10 @@
5819
5819
  "name": "ISuperApp",
5820
5820
  "nodeType": "IdentifierPath",
5821
5821
  "referencedDeclaration": 17385,
5822
- "src": "18601:9:47"
5822
+ "src": "18890:9:47"
5823
5823
  },
5824
5824
  "referencedDeclaration": 17385,
5825
- "src": "18601:9:47",
5825
+ "src": "18890:9:47",
5826
5826
  "typeDescriptions": {
5827
5827
  "typeIdentifier": "t_contract$_ISuperApp_$17385",
5828
5828
  "typeString": "contract ISuperApp"
@@ -5835,10 +5835,10 @@
5835
5835
  "id": 18278,
5836
5836
  "mutability": "mutable",
5837
5837
  "name": "callData",
5838
- "nameLocation": "18639:8:47",
5838
+ "nameLocation": "18928:8:47",
5839
5839
  "nodeType": "VariableDeclaration",
5840
5840
  "scope": 18285,
5841
- "src": "18624:23:47",
5841
+ "src": "18913:23:47",
5842
5842
  "stateVariable": false,
5843
5843
  "storageLocation": "calldata",
5844
5844
  "typeDescriptions": {
@@ -5849,7 +5849,7 @@
5849
5849
  "id": 18277,
5850
5850
  "name": "bytes",
5851
5851
  "nodeType": "ElementaryTypeName",
5852
- "src": "18624:5:47",
5852
+ "src": "18913:5:47",
5853
5853
  "typeDescriptions": {
5854
5854
  "typeIdentifier": "t_bytes_storage_ptr",
5855
5855
  "typeString": "bytes"
@@ -5862,10 +5862,10 @@
5862
5862
  "id": 18280,
5863
5863
  "mutability": "mutable",
5864
5864
  "name": "ctx",
5865
- "nameLocation": "18672:3:47",
5865
+ "nameLocation": "18961:3:47",
5866
5866
  "nodeType": "VariableDeclaration",
5867
5867
  "scope": 18285,
5868
- "src": "18657:18:47",
5868
+ "src": "18946:18:47",
5869
5869
  "stateVariable": false,
5870
5870
  "storageLocation": "calldata",
5871
5871
  "typeDescriptions": {
@@ -5876,7 +5876,7 @@
5876
5876
  "id": 18279,
5877
5877
  "name": "bytes",
5878
5878
  "nodeType": "ElementaryTypeName",
5879
- "src": "18657:5:47",
5879
+ "src": "18946:5:47",
5880
5880
  "typeDescriptions": {
5881
5881
  "typeIdentifier": "t_bytes_storage_ptr",
5882
5882
  "typeString": "bytes"
@@ -5885,7 +5885,7 @@
5885
5885
  "visibility": "internal"
5886
5886
  }
5887
5887
  ],
5888
- "src": "18591:90:47"
5888
+ "src": "18880:90:47"
5889
5889
  },
5890
5890
  "returnParameters": {
5891
5891
  "id": 18284,
@@ -5896,10 +5896,10 @@
5896
5896
  "id": 18283,
5897
5897
  "mutability": "mutable",
5898
5898
  "name": "newCtx",
5899
- "nameLocation": "18789:6:47",
5899
+ "nameLocation": "19078:6:47",
5900
5900
  "nodeType": "VariableDeclaration",
5901
5901
  "scope": 18285,
5902
- "src": "18776:19:47",
5902
+ "src": "19065:19:47",
5903
5903
  "stateVariable": false,
5904
5904
  "storageLocation": "memory",
5905
5905
  "typeDescriptions": {
@@ -5910,7 +5910,7 @@
5910
5910
  "id": 18282,
5911
5911
  "name": "bytes",
5912
5912
  "nodeType": "ElementaryTypeName",
5913
- "src": "18776:5:47",
5913
+ "src": "19065:5:47",
5914
5914
  "typeDescriptions": {
5915
5915
  "typeIdentifier": "t_bytes_storage_ptr",
5916
5916
  "typeString": "bytes"
@@ -5919,10 +5919,10 @@
5919
5919
  "visibility": "internal"
5920
5920
  }
5921
5921
  ],
5922
- "src": "18775:21:47"
5922
+ "src": "19064:21:47"
5923
5923
  },
5924
5924
  "scope": 18324,
5925
- "src": "18558:239:47",
5925
+ "src": "18847:239:47",
5926
5926
  "stateMutability": "nonpayable",
5927
5927
  "virtual": false,
5928
5928
  "visibility": "external"
@@ -5934,7 +5934,7 @@
5934
5934
  "kind": "function",
5935
5935
  "modifiers": [],
5936
5936
  "name": "decodeCtx",
5937
- "nameLocation": "18812:9:47",
5937
+ "nameLocation": "19101:9:47",
5938
5938
  "nodeType": "FunctionDefinition",
5939
5939
  "parameters": {
5940
5940
  "id": 18288,
@@ -5945,10 +5945,10 @@
5945
5945
  "id": 18287,
5946
5946
  "mutability": "mutable",
5947
5947
  "name": "ctx",
5948
- "nameLocation": "18837:3:47",
5948
+ "nameLocation": "19126:3:47",
5949
5949
  "nodeType": "VariableDeclaration",
5950
5950
  "scope": 18293,
5951
- "src": "18822:18:47",
5951
+ "src": "19111:18:47",
5952
5952
  "stateVariable": false,
5953
5953
  "storageLocation": "calldata",
5954
5954
  "typeDescriptions": {
@@ -5959,7 +5959,7 @@
5959
5959
  "id": 18286,
5960
5960
  "name": "bytes",
5961
5961
  "nodeType": "ElementaryTypeName",
5962
- "src": "18822:5:47",
5962
+ "src": "19111:5:47",
5963
5963
  "typeDescriptions": {
5964
5964
  "typeIdentifier": "t_bytes_storage_ptr",
5965
5965
  "typeString": "bytes"
@@ -5968,7 +5968,7 @@
5968
5968
  "visibility": "internal"
5969
5969
  }
5970
5970
  ],
5971
- "src": "18821:20:47"
5971
+ "src": "19110:20:47"
5972
5972
  },
5973
5973
  "returnParameters": {
5974
5974
  "id": 18292,
@@ -5979,10 +5979,10 @@
5979
5979
  "id": 18291,
5980
5980
  "mutability": "mutable",
5981
5981
  "name": "context",
5982
- "nameLocation": "18896:7:47",
5982
+ "nameLocation": "19185:7:47",
5983
5983
  "nodeType": "VariableDeclaration",
5984
5984
  "scope": 18293,
5985
- "src": "18881:22:47",
5985
+ "src": "19170:22:47",
5986
5986
  "stateVariable": false,
5987
5987
  "storageLocation": "memory",
5988
5988
  "typeDescriptions": {
@@ -5997,10 +5997,10 @@
5997
5997
  "name": "Context",
5998
5998
  "nodeType": "IdentifierPath",
5999
5999
  "referencedDeclaration": 18257,
6000
- "src": "18881:7:47"
6000
+ "src": "19170:7:47"
6001
6001
  },
6002
6002
  "referencedDeclaration": 18257,
6003
- "src": "18881:7:47",
6003
+ "src": "19170:7:47",
6004
6004
  "typeDescriptions": {
6005
6005
  "typeIdentifier": "t_struct$_Context_$18257_storage_ptr",
6006
6006
  "typeString": "struct ISuperfluid.Context"
@@ -6009,10 +6009,10 @@
6009
6009
  "visibility": "internal"
6010
6010
  }
6011
6011
  ],
6012
- "src": "18880:24:47"
6012
+ "src": "19169:24:47"
6013
6013
  },
6014
6014
  "scope": 18324,
6015
- "src": "18803:102:47",
6015
+ "src": "19092:102:47",
6016
6016
  "stateMutability": "pure",
6017
6017
  "virtual": false,
6018
6018
  "visibility": "external"
@@ -6024,7 +6024,7 @@
6024
6024
  "kind": "function",
6025
6025
  "modifiers": [],
6026
6026
  "name": "isCtxValid",
6027
- "nameLocation": "18920:10:47",
6027
+ "nameLocation": "19209:10:47",
6028
6028
  "nodeType": "FunctionDefinition",
6029
6029
  "parameters": {
6030
6030
  "id": 18296,
@@ -6035,10 +6035,10 @@
6035
6035
  "id": 18295,
6036
6036
  "mutability": "mutable",
6037
6037
  "name": "ctx",
6038
- "nameLocation": "18946:3:47",
6038
+ "nameLocation": "19235:3:47",
6039
6039
  "nodeType": "VariableDeclaration",
6040
6040
  "scope": 18300,
6041
- "src": "18931:18:47",
6041
+ "src": "19220:18:47",
6042
6042
  "stateVariable": false,
6043
6043
  "storageLocation": "calldata",
6044
6044
  "typeDescriptions": {
@@ -6049,7 +6049,7 @@
6049
6049
  "id": 18294,
6050
6050
  "name": "bytes",
6051
6051
  "nodeType": "ElementaryTypeName",
6052
- "src": "18931:5:47",
6052
+ "src": "19220:5:47",
6053
6053
  "typeDescriptions": {
6054
6054
  "typeIdentifier": "t_bytes_storage_ptr",
6055
6055
  "typeString": "bytes"
@@ -6058,7 +6058,7 @@
6058
6058
  "visibility": "internal"
6059
6059
  }
6060
6060
  ],
6061
- "src": "18930:20:47"
6061
+ "src": "19219:20:47"
6062
6062
  },
6063
6063
  "returnParameters": {
6064
6064
  "id": 18299,
@@ -6072,7 +6072,7 @@
6072
6072
  "nameLocation": "-1:-1:-1",
6073
6073
  "nodeType": "VariableDeclaration",
6074
6074
  "scope": 18300,
6075
- "src": "18974:4:47",
6075
+ "src": "19263:4:47",
6076
6076
  "stateVariable": false,
6077
6077
  "storageLocation": "default",
6078
6078
  "typeDescriptions": {
@@ -6083,7 +6083,7 @@
6083
6083
  "id": 18297,
6084
6084
  "name": "bool",
6085
6085
  "nodeType": "ElementaryTypeName",
6086
- "src": "18974:4:47",
6086
+ "src": "19263:4:47",
6087
6087
  "typeDescriptions": {
6088
6088
  "typeIdentifier": "t_bool",
6089
6089
  "typeString": "bool"
@@ -6092,10 +6092,10 @@
6092
6092
  "visibility": "internal"
6093
6093
  }
6094
6094
  ],
6095
- "src": "18973:6:47"
6095
+ "src": "19262:6:47"
6096
6096
  },
6097
6097
  "scope": 18324,
6098
- "src": "18911:69:47",
6098
+ "src": "19200:69:47",
6099
6099
  "stateMutability": "view",
6100
6100
  "virtual": false,
6101
6101
  "visibility": "external"
@@ -6109,10 +6109,10 @@
6109
6109
  "id": 18302,
6110
6110
  "mutability": "mutable",
6111
6111
  "name": "operationType",
6112
- "nameLocation": "19317:13:47",
6112
+ "nameLocation": "19606:13:47",
6113
6113
  "nodeType": "VariableDeclaration",
6114
6114
  "scope": 18307,
6115
- "src": "19310:20:47",
6115
+ "src": "19599:20:47",
6116
6116
  "stateVariable": false,
6117
6117
  "storageLocation": "default",
6118
6118
  "typeDescriptions": {
@@ -6123,7 +6123,7 @@
6123
6123
  "id": 18301,
6124
6124
  "name": "uint32",
6125
6125
  "nodeType": "ElementaryTypeName",
6126
- "src": "19310:6:47",
6126
+ "src": "19599:6:47",
6127
6127
  "typeDescriptions": {
6128
6128
  "typeIdentifier": "t_uint32",
6129
6129
  "typeString": "uint32"
@@ -6136,10 +6136,10 @@
6136
6136
  "id": 18304,
6137
6137
  "mutability": "mutable",
6138
6138
  "name": "target",
6139
- "nameLocation": "19376:6:47",
6139
+ "nameLocation": "19665:6:47",
6140
6140
  "nodeType": "VariableDeclaration",
6141
6141
  "scope": 18307,
6142
- "src": "19368:14:47",
6142
+ "src": "19657:14:47",
6143
6143
  "stateVariable": false,
6144
6144
  "storageLocation": "default",
6145
6145
  "typeDescriptions": {
@@ -6150,7 +6150,7 @@
6150
6150
  "id": 18303,
6151
6151
  "name": "address",
6152
6152
  "nodeType": "ElementaryTypeName",
6153
- "src": "19368:7:47",
6153
+ "src": "19657:7:47",
6154
6154
  "stateMutability": "nonpayable",
6155
6155
  "typeDescriptions": {
6156
6156
  "typeIdentifier": "t_address",
@@ -6164,10 +6164,10 @@
6164
6164
  "id": 18306,
6165
6165
  "mutability": "mutable",
6166
6166
  "name": "data",
6167
- "nameLocation": "19440:4:47",
6167
+ "nameLocation": "19729:4:47",
6168
6168
  "nodeType": "VariableDeclaration",
6169
6169
  "scope": 18307,
6170
- "src": "19434:10:47",
6170
+ "src": "19723:10:47",
6171
6171
  "stateVariable": false,
6172
6172
  "storageLocation": "default",
6173
6173
  "typeDescriptions": {
@@ -6178,7 +6178,7 @@
6178
6178
  "id": 18305,
6179
6179
  "name": "bytes",
6180
6180
  "nodeType": "ElementaryTypeName",
6181
- "src": "19434:5:47",
6181
+ "src": "19723:5:47",
6182
6182
  "typeDescriptions": {
6183
6183
  "typeIdentifier": "t_bytes_storage_ptr",
6184
6184
  "typeString": "bytes"
@@ -6188,17 +6188,17 @@
6188
6188
  }
6189
6189
  ],
6190
6190
  "name": "Operation",
6191
- "nameLocation": "19219:9:47",
6191
+ "nameLocation": "19508:9:47",
6192
6192
  "nodeType": "StructDefinition",
6193
6193
  "scope": 18324,
6194
- "src": "19212:239:47",
6194
+ "src": "19501:239:47",
6195
6195
  "visibility": "public"
6196
6196
  },
6197
6197
  {
6198
6198
  "documentation": {
6199
6199
  "id": 18308,
6200
6200
  "nodeType": "StructuredDocumentation",
6201
- "src": "19457:94:47",
6201
+ "src": "19746:94:47",
6202
6202
  "text": " @dev Batch call function\n @param operations Array of batch operations"
6203
6203
  },
6204
6204
  "functionSelector": "6ad3ca7d",
@@ -6207,7 +6207,7 @@
6207
6207
  "kind": "function",
6208
6208
  "modifiers": [],
6209
6209
  "name": "batchCall",
6210
- "nameLocation": "19565:9:47",
6210
+ "nameLocation": "19854:9:47",
6211
6211
  "nodeType": "FunctionDefinition",
6212
6212
  "parameters": {
6213
6213
  "id": 18313,
@@ -6218,10 +6218,10 @@
6218
6218
  "id": 18312,
6219
6219
  "mutability": "mutable",
6220
6220
  "name": "operations",
6221
- "nameLocation": "19594:10:47",
6221
+ "nameLocation": "19883:10:47",
6222
6222
  "nodeType": "VariableDeclaration",
6223
6223
  "scope": 18315,
6224
- "src": "19575:29:47",
6224
+ "src": "19864:29:47",
6225
6225
  "stateVariable": false,
6226
6226
  "storageLocation": "memory",
6227
6227
  "typeDescriptions": {
@@ -6237,10 +6237,10 @@
6237
6237
  "name": "Operation",
6238
6238
  "nodeType": "IdentifierPath",
6239
6239
  "referencedDeclaration": 18307,
6240
- "src": "19575:9:47"
6240
+ "src": "19864:9:47"
6241
6241
  },
6242
6242
  "referencedDeclaration": 18307,
6243
- "src": "19575:9:47",
6243
+ "src": "19864:9:47",
6244
6244
  "typeDescriptions": {
6245
6245
  "typeIdentifier": "t_struct$_Operation_$18307_storage_ptr",
6246
6246
  "typeString": "struct ISuperfluid.Operation"
@@ -6248,7 +6248,7 @@
6248
6248
  },
6249
6249
  "id": 18311,
6250
6250
  "nodeType": "ArrayTypeName",
6251
- "src": "19575:11:47",
6251
+ "src": "19864:11:47",
6252
6252
  "typeDescriptions": {
6253
6253
  "typeIdentifier": "t_array$_t_struct$_Operation_$18307_storage_$dyn_storage_ptr",
6254
6254
  "typeString": "struct ISuperfluid.Operation[]"
@@ -6257,16 +6257,16 @@
6257
6257
  "visibility": "internal"
6258
6258
  }
6259
6259
  ],
6260
- "src": "19574:31:47"
6260
+ "src": "19863:31:47"
6261
6261
  },
6262
6262
  "returnParameters": {
6263
6263
  "id": 18314,
6264
6264
  "nodeType": "ParameterList",
6265
6265
  "parameters": [],
6266
- "src": "19614:0:47"
6266
+ "src": "19903:0:47"
6267
6267
  },
6268
6268
  "scope": 18324,
6269
- "src": "19556:59:47",
6269
+ "src": "19845:59:47",
6270
6270
  "stateMutability": "nonpayable",
6271
6271
  "virtual": false,
6272
6272
  "visibility": "external"
@@ -6275,7 +6275,7 @@
6275
6275
  "documentation": {
6276
6276
  "id": 18316,
6277
6277
  "nodeType": "StructuredDocumentation",
6278
- "src": "19621:128:47",
6278
+ "src": "19910:128:47",
6279
6279
  "text": " @dev Batch call function for trusted forwarders (EIP-2771)\n @param operations Array of batch operations"
6280
6280
  },
6281
6281
  "functionSelector": "670e77e3",
@@ -6284,7 +6284,7 @@
6284
6284
  "kind": "function",
6285
6285
  "modifiers": [],
6286
6286
  "name": "forwardBatchCall",
6287
- "nameLocation": "19763:16:47",
6287
+ "nameLocation": "20052:16:47",
6288
6288
  "nodeType": "FunctionDefinition",
6289
6289
  "parameters": {
6290
6290
  "id": 18321,
@@ -6295,10 +6295,10 @@
6295
6295
  "id": 18320,
6296
6296
  "mutability": "mutable",
6297
6297
  "name": "operations",
6298
- "nameLocation": "19799:10:47",
6298
+ "nameLocation": "20088:10:47",
6299
6299
  "nodeType": "VariableDeclaration",
6300
6300
  "scope": 18323,
6301
- "src": "19780:29:47",
6301
+ "src": "20069:29:47",
6302
6302
  "stateVariable": false,
6303
6303
  "storageLocation": "memory",
6304
6304
  "typeDescriptions": {
@@ -6314,10 +6314,10 @@
6314
6314
  "name": "Operation",
6315
6315
  "nodeType": "IdentifierPath",
6316
6316
  "referencedDeclaration": 18307,
6317
- "src": "19780:9:47"
6317
+ "src": "20069:9:47"
6318
6318
  },
6319
6319
  "referencedDeclaration": 18307,
6320
- "src": "19780:9:47",
6320
+ "src": "20069:9:47",
6321
6321
  "typeDescriptions": {
6322
6322
  "typeIdentifier": "t_struct$_Operation_$18307_storage_ptr",
6323
6323
  "typeString": "struct ISuperfluid.Operation"
@@ -6325,7 +6325,7 @@
6325
6325
  },
6326
6326
  "id": 18319,
6327
6327
  "nodeType": "ArrayTypeName",
6328
- "src": "19780:11:47",
6328
+ "src": "20069:11:47",
6329
6329
  "typeDescriptions": {
6330
6330
  "typeIdentifier": "t_array$_t_struct$_Operation_$18307_storage_$dyn_storage_ptr",
6331
6331
  "typeString": "struct ISuperfluid.Operation[]"
@@ -6334,37 +6334,37 @@
6334
6334
  "visibility": "internal"
6335
6335
  }
6336
6336
  ],
6337
- "src": "19779:31:47"
6337
+ "src": "20068:31:47"
6338
6338
  },
6339
6339
  "returnParameters": {
6340
6340
  "id": 18322,
6341
6341
  "nodeType": "ParameterList",
6342
6342
  "parameters": [],
6343
- "src": "19819:0:47"
6343
+ "src": "20108:0:47"
6344
6344
  },
6345
6345
  "scope": 18324,
6346
- "src": "19754:66:47",
6346
+ "src": "20043:66:47",
6347
6347
  "stateMutability": "nonpayable",
6348
6348
  "virtual": false,
6349
6349
  "visibility": "external"
6350
6350
  }
6351
6351
  ],
6352
6352
  "scope": 18325,
6353
- "src": "1121:19806:47",
6353
+ "src": "1120:20096:47",
6354
6354
  "usedErrors": []
6355
6355
  }
6356
6356
  ],
6357
- "src": "35:20893:47"
6357
+ "src": "35:21182:47"
6358
6358
  },
6359
6359
  "compiler": {
6360
6360
  "name": "solc",
6361
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
6361
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
6362
6362
  },
6363
6363
  "networks": {},
6364
6364
  "schemaVersion": "3.4.7",
6365
- "updatedAt": "2022-06-03T09:45:13.996Z",
6365
+ "updatedAt": "2022-06-20T11:32:29.700Z",
6366
6366
  "devdoc": {
6367
- "author": "Superfluid NOTE: This is the central contract of the system where super agreement, super app and super token features are connected. The Superfluid host contract is also the entry point for the protocol users, where batch call and meta transaction are provided for UX improvements.",
6367
+ "author": "Superfluid",
6368
6368
  "events": {
6369
6369
  "AgreementClassRegistered(bytes32,address)": {
6370
6370
  "details": "agreementType is the keccak256 hash of: \"org.superfluid-finance.agreements.<AGREEMENT_NAME>.<VERSION>\"",
@@ -6428,13 +6428,14 @@
6428
6428
  }
6429
6429
  },
6430
6430
  "appCallbackPop(bytes,int256)": {
6431
+ "custom:security": " - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory. - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly.",
6431
6432
  "details": "(For agreements) Pop from the current app callback stack",
6432
6433
  "params": {
6433
6434
  "appAllowanceUsedDelta": "App allowance used by the app.",
6434
6435
  "ctx": "The ctx that was pushed before the callback stack."
6435
6436
  },
6436
6437
  "returns": {
6437
- "newCtx": "[SECURITY] NOTE: - Here we cannot do assertValidCtx(ctx), since we do not really save the stack in memory. - Hence there is still implicit trust that the agreement handles the callback push/pop pair correctly."
6438
+ "newCtx": " The current context of the transaction."
6438
6439
  }
6439
6440
  },
6440
6441
  "appCallbackPush(bytes,address,uint256,int256,address)": {
@@ -6446,7 +6447,7 @@
6446
6447
  "ctx": "The current ctx, it will be validated."
6447
6448
  },
6448
6449
  "returns": {
6449
- "newCtx": "newCtx"
6450
+ "newCtx": " The current context of the transaction."
6450
6451
  }
6451
6452
  },
6452
6453
  "batchCall((uint32,address,bytes)[])": {
@@ -6464,9 +6465,10 @@
6464
6465
  }
6465
6466
  },
6466
6467
  "callAppAction(address,bytes)": {
6468
+ "custom:note": "See \"Contextless Call Proxies\" above for more about contextual call data.",
6467
6469
  "details": "Main use case is calling app action in a batch call via the host",
6468
6470
  "params": {
6469
- "callData": "The contextual call data NOTE: See \"Contextless Call Proxies\" above for more about contextual call data."
6471
+ "callData": "The contextual call data"
6470
6472
  }
6471
6473
  },
6472
6474
  "callAppAfterCallback(address,bytes,bool,bytes)": {
@@ -6478,7 +6480,7 @@
6478
6480
  "isTermination": "Is it a termination callback?"
6479
6481
  },
6480
6482
  "returns": {
6481
- "newCtx": "newCtx"
6483
+ "newCtx": " The current context of the transaction."
6482
6484
  }
6483
6485
  },
6484
6486
  "callAppBeforeCallback(address,bytes,bool,bytes)": {
@@ -6501,7 +6503,7 @@
6501
6503
  "ctx": "The current ctx, it will be validated."
6502
6504
  },
6503
6505
  "returns": {
6504
- "newCtx": "newCtx"
6506
+ "newCtx": " The current context of the transaction."
6505
6507
  }
6506
6508
  },
6507
6509
  "forwardBatchCall((uint32,address,bytes)[])": {
@@ -6572,7 +6574,7 @@
6572
6574
  "reason": "Jail reason code."
6573
6575
  },
6574
6576
  "returns": {
6575
- "newCtx": "newCtx"
6577
+ "newCtx": " The current context of the transaction."
6576
6578
  }
6577
6579
  },
6578
6580
  "mapAgreementClasses(uint256)": {
@@ -6582,9 +6584,10 @@
6582
6584
  }
6583
6585
  },
6584
6586
  "registerAgreementClass(address)": {
6587
+ "custom:modifiers": " - onlyGovernance",
6585
6588
  "details": "Register a new agreement class to the system",
6586
6589
  "params": {
6587
- "agreementClassLogic": "Initial agreement class code Modifiers: - onlyGovernance"
6590
+ "agreementClassLogic": "Initial agreement class code"
6588
6591
  }
6589
6592
  },
6590
6593
  "registerApp(uint256)": {
@@ -6604,7 +6607,7 @@
6604
6607
  "details": "Message sender declares itself as a super app.",
6605
6608
  "params": {
6606
6609
  "configWord": "The super app manifest configuration, flags are defined in `SuperAppDefinitions`",
6607
- "registrationKey": "The registration key issued by the governance, needed to register on a mainnet. See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide On testnets or in dev environment, a placeholder (e.g. empty string) can be used."
6610
+ "registrationKey": "The registration key issued by the governance, needed to register on a mainnet."
6608
6611
  }
6609
6612
  },
6610
6613
  "removeFromAgreementClassesBitmap(uint256,bytes32)": {
@@ -6617,9 +6620,10 @@
6617
6620
  "details": "Replace the current governance with a new one"
6618
6621
  },
6619
6622
  "updateAgreementClass(address)": {
6623
+ "custom:modifiers": " - onlyGovernance",
6620
6624
  "details": "Update code of an agreement class",
6621
6625
  "params": {
6622
- "agreementClassLogic": "New code for the agreement class Modifiers: - onlyGovernance"
6626
+ "agreementClassLogic": "New code for the agreement class"
6623
6627
  }
6624
6628
  },
6625
6629
  "updateSuperTokenFactory(address)": {
@@ -6662,7 +6666,7 @@
6662
6666
  "notice": "On mainnet deployments, only factory contracts pre-authorized by governance can use this. See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide"
6663
6667
  },
6664
6668
  "registerAppWithKey(uint256,string)": {
6665
- "notice": "While the message sender must be the super app itself, the transaction sender (tx.origin) must be the deployer account the registration key was issued for."
6669
+ "notice": "See https://github.com/superfluid-finance/protocol-monorepo/wiki/Super-App-White-listing-Guide On testnets or in dev environment, a placeholder (e.g. empty string) can be used. While the message sender must be the super app itself, the transaction sender (tx.origin) must be the deployer account the registration key was issued for."
6666
6670
  },
6667
6671
  "removeFromAgreementClassesBitmap(uint256,bytes32)": {
6668
6672
  "notice": "Create a new bitmask by removing a agreement class from it"
@@ -6671,6 +6675,7 @@
6671
6675
  "notice": "Update the super token logic to the latest"
6672
6676
  }
6673
6677
  },
6678
+ "notice": "This is the central contract of the system where super agreement, super app and super token features are connected. The Superfluid host contract is also the entry point for the protocol users, where batch call and meta transaction are provided for UX improvements.",
6674
6679
  "version": 1
6675
6680
  }
6676
6681
  }