@superfluid-finance/ethereum-contracts 1.2.3-dev.c35a287.0 → 1.2.3-dev.cd892eb.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 (115) hide show
  1. package/build/contracts/AccessControl.json +1 -1
  2. package/build/contracts/AccessControlEnumerable.json +1 -1
  3. package/build/contracts/Address.json +1 -1
  4. package/build/contracts/AgreementBase.json +9 -9
  5. package/build/contracts/AgreementLibrary.json +4 -4
  6. package/build/contracts/BaseRelayRecipient.json +1 -1
  7. package/build/contracts/BatchLiquidator.json +165 -165
  8. package/build/contracts/BatchOperation.json +1 -1
  9. package/build/contracts/CFAv1Library.json +4 -4
  10. package/build/contracts/CallUtils.json +1 -1
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +4 -4
  12. package/build/contracts/ConstantFlowAgreementV1.json +5 -5
  13. package/build/contracts/Context.json +1 -1
  14. package/build/contracts/ContextDefinitions.json +1 -1
  15. package/build/contracts/Create2.json +1 -1
  16. package/build/contracts/CustomSuperTokenBase.json +2 -2
  17. package/build/contracts/ERC165.json +1 -1
  18. package/build/contracts/ERC1820Implementer.json +1 -1
  19. package/build/contracts/ERC1820RegistryCompiled.json +1 -1
  20. package/build/contracts/ERC20.json +1 -1
  21. package/build/contracts/ERC20Burnable.json +1 -1
  22. package/build/contracts/ERC20Pausable.json +1 -1
  23. package/build/contracts/ERC20PresetMinterPauser.json +1 -1
  24. package/build/contracts/ERC20WithTokenInfo.json +1 -1
  25. package/build/contracts/ERC777Helper.json +1 -1
  26. package/build/contracts/ERC777RecipientDrainingGas.json +4 -4
  27. package/build/contracts/ERC777RecipientReverting.json +4 -4
  28. package/build/contracts/EnumerableSet.json +1 -1
  29. package/build/contracts/ExclusiveInflowTestApp.json +4 -4
  30. package/build/contracts/FixedSizeData.json +1 -1
  31. package/build/contracts/FlowExchangeTestApp.json +4 -4
  32. package/build/contracts/FlowOperatorDefinitions.json +1 -1
  33. package/build/contracts/FullUpgradableSuperTokenProxy.json +4 -4
  34. package/build/contracts/IAccessControl.json +1 -1
  35. package/build/contracts/IAccessControlEnumerable.json +1 -1
  36. package/build/contracts/IConstantFlowAgreementV1.json +1 -1
  37. package/build/contracts/IDAv1Library.json +4 -4
  38. package/build/contracts/IERC165.json +1 -1
  39. package/build/contracts/IERC1820Implementer.json +1 -1
  40. package/build/contracts/IERC1820Registry.json +1 -1
  41. package/build/contracts/IERC20.json +1 -1
  42. package/build/contracts/IERC20Metadata.json +1 -1
  43. package/build/contracts/IERC777.json +1 -1
  44. package/build/contracts/IERC777Recipient.json +1 -1
  45. package/build/contracts/IERC777Sender.json +1 -1
  46. package/build/contracts/IInstantDistributionAgreementV1.json +1 -1
  47. package/build/contracts/IMaticBridgedNativeSuperToken.json +2 -2
  48. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +2 -2
  49. package/build/contracts/IMultiSigWallet.json +1 -1
  50. package/build/contracts/IPureSuperToken.json +2 -2
  51. package/build/contracts/IPureSuperTokenCustom.json +2 -2
  52. package/build/contracts/IRelayRecipient.json +1 -1
  53. package/build/contracts/IResolver.json +1 -1
  54. package/build/contracts/ISETH.json +2 -2
  55. package/build/contracts/ISETHCustom.json +2 -2
  56. package/build/contracts/ISuperAgreement.json +1 -1
  57. package/build/contracts/ISuperApp.json +2 -2
  58. package/build/contracts/ISuperToken.json +2 -2
  59. package/build/contracts/ISuperTokenFactory.json +2 -2
  60. package/build/contracts/ISuperfluid.json +425 -418
  61. package/build/contracts/ISuperfluidGovernance.json +2 -2
  62. package/build/contracts/ISuperfluidToken.json +1 -1
  63. package/build/contracts/ITOGAv1.json +1208 -1208
  64. package/build/contracts/ITOGAv2.json +1208 -1208
  65. package/build/contracts/Initializable.json +1 -1
  66. package/build/contracts/InstantDistributionAgreementV1.json +5 -5
  67. package/build/contracts/Int96SafeMath.json +1 -1
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +191 -191
  69. package/build/contracts/NonClosableOutflowTestApp.json +4 -4
  70. package/build/contracts/Ownable.json +1 -1
  71. package/build/contracts/Pausable.json +1 -1
  72. package/build/contracts/Proxy.json +1 -1
  73. package/build/contracts/PureSuperToken.json +88 -88
  74. package/build/contracts/Resolver.json +90 -90
  75. package/build/contracts/SETHProxy.json +196 -196
  76. package/build/contracts/SafeCast.json +1 -1
  77. package/build/contracts/SafeERC20.json +1 -1
  78. package/build/contracts/SafeMath.json +1 -1
  79. package/build/contracts/SelfDeletingFlowTestApp.json +4 -4
  80. package/build/contracts/SlotsBitmapLibrary.json +1 -1
  81. package/build/contracts/Strings.json +1 -1
  82. package/build/contracts/SuperAppBase.json +2 -2
  83. package/build/contracts/SuperAppDefinitions.json +1 -1
  84. package/build/contracts/SuperToken.json +46 -46
  85. package/build/contracts/SuperTokenFactory.json +35 -35
  86. package/build/contracts/SuperTokenFactoryBase.json +33 -33
  87. package/build/contracts/SuperTokenFactoryHelper.json +35 -35
  88. package/build/contracts/SuperUpgrader.json +422 -422
  89. package/build/contracts/Superfluid.json +5488 -5454
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +472 -472
  91. package/build/contracts/SuperfluidGovernanceBase.json +9 -9
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +1 -1
  93. package/build/contracts/SuperfluidGovernanceII.json +17 -17
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +17 -17
  95. package/build/contracts/SuperfluidLoader.json +144 -144
  96. package/build/contracts/SuperfluidToken.json +1217 -1217
  97. package/build/contracts/TOGA.json +1218 -1218
  98. package/build/contracts/TestGovernance.json +171 -171
  99. package/build/contracts/TestToken.json +94 -94
  100. package/build/contracts/TokenCustodian.json +214 -214
  101. package/build/contracts/TokenInfo.json +1 -1
  102. package/build/contracts/UInt128SafeMath.json +1 -1
  103. package/build/contracts/UUPSProxiable.json +132 -132
  104. package/build/contracts/UUPSProxy.json +81 -81
  105. package/build/contracts/UUPSUtils.json +37 -37
  106. package/build/contracts-sizes.txt +7 -7
  107. package/contracts/interfaces/superfluid/ISuperfluid.sol +14 -6
  108. package/contracts/superfluid/Superfluid.sol +12 -10
  109. package/package.json +2 -2
  110. package/scripts/{deploy-unlisted-native-super-token.js → deploy-unlisted-pure-super-token.js} +4 -4
  111. package/scripts/gov-transfer-framework-ownership.js +3 -3
  112. package/scripts/libs/getConfig.js +3 -3
  113. package/utils/README.md +19 -1
  114. package/utils/stream-closer.html +212 -0
  115. package/utils/supertoken-deployer.html +1 -1
@@ -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)\":{\"details\":\"Message sender declares it as a super app\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\"}},\"registerAppByFactory(address,uint256)\":{\"details\":\"Message sender declares app as a super app\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions` NOTE: only factory contracts authorized by governance can register super apps\"}},\"registerAppWithKey(uint256,string)\":{\"details\":\"Message sender declares it as a super app, using a registration key\",\"params\":{\"configWord\":\"The super app manifest configuration, flags are defined in `SuperAppDefinitions`\",\"registrationKey\":\"The registration key issued by the governance\"}},\"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\"},\"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\":\"0xc1007d1082050b532947d27973bf996da2b0df9bdf6ed4d4fcaaa3ff2354262c\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://2d22da1d2140b1ed3964ddc62d3a38e9a24a8814c18ffe496f0fbce5afef5ea0\",\"dweb:/ipfs/QmYxVnaU87HSaQktkqCZZBFj3MgphgFsZMrMLXLeZLzrvR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidGovernance.sol\":{\"keccak256\":\"0x2166f766b7f61f9bb1376b0948efa0d0c0046b93dc301e51ce495203b145189b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://929630e6a15f523b142b2897783b2f7a54532ac5ae578bd17a0b7f25a6ca2bd8\",\"dweb:/ipfs/QmTu9ffH9qbQncJGEc24bmnoCGjifQ7BG47AYR8AzMLfXR\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"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.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\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]},\"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.0;\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 declares it as a super app\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 it as a super app, using a registration key\n * @param configWord The super app manifest configuration, flags are defined in\n * `SuperAppDefinitions`\n * @param registrationKey The registration key issued by the governance\n */\n function registerAppWithKey(uint256 configWord, string calldata registrationKey) external;\n\n /**\n * @dev Message sender declares app as a super app\n * @param configWord The super app manifest configuration, flags are defined in\n * `SuperAppDefinitions`\n * NOTE: only factory contracts authorized by governance can register super apps\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 * 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",
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",
@@ -1070,7 +1070,7 @@
1070
1070
  "solidity",
1071
1071
  ">=",
1072
1072
  "0.8",
1073
- ".0"
1073
+ ".2"
1074
1074
  ],
1075
1075
  "nodeType": "PragmaDirective",
1076
1076
  "src": "35:25:47"
@@ -3002,8 +3002,8 @@
3002
3002
  "documentation": {
3003
3003
  "id": 18026,
3004
3004
  "nodeType": "StructuredDocumentation",
3005
- "src": "7180:178:47",
3006
- "text": " @dev Message sender declares it as a super app\n @param configWord The super app manifest configuration, flags are defined in\n `SuperAppDefinitions`"
3005
+ "src": "7180:383:47",
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",
3009
3009
  "id": 18031,
@@ -3011,7 +3011,7 @@
3011
3011
  "kind": "function",
3012
3012
  "modifiers": [],
3013
3013
  "name": "registerApp",
3014
- "nameLocation": "7372:11:47",
3014
+ "nameLocation": "7577:11:47",
3015
3015
  "nodeType": "FunctionDefinition",
3016
3016
  "parameters": {
3017
3017
  "id": 18029,
@@ -3022,10 +3022,10 @@
3022
3022
  "id": 18028,
3023
3023
  "mutability": "mutable",
3024
3024
  "name": "configWord",
3025
- "nameLocation": "7392:10:47",
3025
+ "nameLocation": "7597:10:47",
3026
3026
  "nodeType": "VariableDeclaration",
3027
3027
  "scope": 18031,
3028
- "src": "7384:18:47",
3028
+ "src": "7589:18:47",
3029
3029
  "stateVariable": false,
3030
3030
  "storageLocation": "default",
3031
3031
  "typeDescriptions": {
@@ -3036,7 +3036,7 @@
3036
3036
  "id": 18027,
3037
3037
  "name": "uint256",
3038
3038
  "nodeType": "ElementaryTypeName",
3039
- "src": "7384:7:47",
3039
+ "src": "7589: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": "7383:20:47"
3048
+ "src": "7588:20:47"
3049
3049
  },
3050
3050
  "returnParameters": {
3051
3051
  "id": 18030,
3052
3052
  "nodeType": "ParameterList",
3053
3053
  "parameters": [],
3054
- "src": "7412:0:47"
3054
+ "src": "7617:0:47"
3055
3055
  },
3056
3056
  "scope": 18319,
3057
- "src": "7363:50:47",
3057
+ "src": "7568:50:47",
3058
3058
  "stateMutability": "nonpayable",
3059
3059
  "virtual": false,
3060
3060
  "visibility": "external"
@@ -3064,13 +3064,13 @@
3064
3064
  "documentation": {
3065
3065
  "id": 18032,
3066
3066
  "nodeType": "StructuredDocumentation",
3067
- "src": "7418:84:47",
3067
+ "src": "7623: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": 18037,
3072
3072
  "name": "AppRegistered",
3073
- "nameLocation": "7513:13:47",
3073
+ "nameLocation": "7718:13:47",
3074
3074
  "nodeType": "EventDefinition",
3075
3075
  "parameters": {
3076
3076
  "id": 18036,
@@ -3082,10 +3082,10 @@
3082
3082
  "indexed": true,
3083
3083
  "mutability": "mutable",
3084
3084
  "name": "app",
3085
- "nameLocation": "7545:3:47",
3085
+ "nameLocation": "7750:3:47",
3086
3086
  "nodeType": "VariableDeclaration",
3087
3087
  "scope": 18037,
3088
- "src": "7527:21:47",
3088
+ "src": "7732: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": 17380,
3103
- "src": "7527:9:47"
3103
+ "src": "7732:9:47"
3104
3104
  },
3105
3105
  "referencedDeclaration": 17380,
3106
- "src": "7527:9:47",
3106
+ "src": "7732:9:47",
3107
3107
  "typeDescriptions": {
3108
3108
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3109
3109
  "typeString": "contract ISuperApp"
@@ -3112,16 +3112,16 @@
3112
3112
  "visibility": "internal"
3113
3113
  }
3114
3114
  ],
3115
- "src": "7526:23:47"
3115
+ "src": "7731:23:47"
3116
3116
  },
3117
- "src": "7507:43:47"
3117
+ "src": "7712:43:47"
3118
3118
  },
3119
3119
  {
3120
3120
  "documentation": {
3121
3121
  "id": 18038,
3122
3122
  "nodeType": "StructuredDocumentation",
3123
- "src": "7556:280:47",
3124
- "text": " @dev Message sender declares it as a super app, using a registration key\n @param configWord The super app manifest configuration, flags are defined in\n `SuperAppDefinitions`\n @param registrationKey The registration key issued by the governance"
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."
3125
3125
  },
3126
3126
  "functionSelector": "bd1c448b",
3127
3127
  "id": 18045,
@@ -3129,7 +3129,7 @@
3129
3129
  "kind": "function",
3130
3130
  "modifiers": [],
3131
3131
  "name": "registerAppWithKey",
3132
- "nameLocation": "7850:18:47",
3132
+ "nameLocation": "8444:18:47",
3133
3133
  "nodeType": "FunctionDefinition",
3134
3134
  "parameters": {
3135
3135
  "id": 18043,
@@ -3140,10 +3140,10 @@
3140
3140
  "id": 18040,
3141
3141
  "mutability": "mutable",
3142
3142
  "name": "configWord",
3143
- "nameLocation": "7877:10:47",
3143
+ "nameLocation": "8471:10:47",
3144
3144
  "nodeType": "VariableDeclaration",
3145
3145
  "scope": 18045,
3146
- "src": "7869:18:47",
3146
+ "src": "8463:18:47",
3147
3147
  "stateVariable": false,
3148
3148
  "storageLocation": "default",
3149
3149
  "typeDescriptions": {
@@ -3154,7 +3154,7 @@
3154
3154
  "id": 18039,
3155
3155
  "name": "uint256",
3156
3156
  "nodeType": "ElementaryTypeName",
3157
- "src": "7869:7:47",
3157
+ "src": "8463:7:47",
3158
3158
  "typeDescriptions": {
3159
3159
  "typeIdentifier": "t_uint256",
3160
3160
  "typeString": "uint256"
@@ -3167,10 +3167,10 @@
3167
3167
  "id": 18042,
3168
3168
  "mutability": "mutable",
3169
3169
  "name": "registrationKey",
3170
- "nameLocation": "7905:15:47",
3170
+ "nameLocation": "8499:15:47",
3171
3171
  "nodeType": "VariableDeclaration",
3172
3172
  "scope": 18045,
3173
- "src": "7889:31:47",
3173
+ "src": "8483:31:47",
3174
3174
  "stateVariable": false,
3175
3175
  "storageLocation": "calldata",
3176
3176
  "typeDescriptions": {
@@ -3181,7 +3181,7 @@
3181
3181
  "id": 18041,
3182
3182
  "name": "string",
3183
3183
  "nodeType": "ElementaryTypeName",
3184
- "src": "7889:6:47",
3184
+ "src": "8483:6:47",
3185
3185
  "typeDescriptions": {
3186
3186
  "typeIdentifier": "t_string_storage_ptr",
3187
3187
  "typeString": "string"
@@ -3190,16 +3190,16 @@
3190
3190
  "visibility": "internal"
3191
3191
  }
3192
3192
  ],
3193
- "src": "7868:53:47"
3193
+ "src": "8462:53:47"
3194
3194
  },
3195
3195
  "returnParameters": {
3196
3196
  "id": 18044,
3197
3197
  "nodeType": "ParameterList",
3198
3198
  "parameters": [],
3199
- "src": "7930:0:47"
3199
+ "src": "8524:0:47"
3200
3200
  },
3201
3201
  "scope": 18319,
3202
- "src": "7841:90:47",
3202
+ "src": "8435:90:47",
3203
3203
  "stateMutability": "nonpayable",
3204
3204
  "virtual": false,
3205
3205
  "visibility": "external"
@@ -3208,8 +3208,8 @@
3208
3208
  "documentation": {
3209
3209
  "id": 18046,
3210
3210
  "nodeType": "StructuredDocumentation",
3211
- "src": "7937:264:47",
3212
- "text": " @dev Message sender declares app as a super app\n @param configWord The super app manifest configuration, flags are defined in\n `SuperAppDefinitions`\n NOTE: only factory contracts authorized by governance can register super apps"
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"
3213
3213
  },
3214
3214
  "functionSelector": "f3733052",
3215
3215
  "id": 18054,
@@ -3217,7 +3217,7 @@
3217
3217
  "kind": "function",
3218
3218
  "modifiers": [],
3219
3219
  "name": "registerAppByFactory",
3220
- "nameLocation": "8215:20:47",
3220
+ "nameLocation": "8952:20:47",
3221
3221
  "nodeType": "FunctionDefinition",
3222
3222
  "parameters": {
3223
3223
  "id": 18052,
@@ -3228,10 +3228,10 @@
3228
3228
  "id": 18049,
3229
3229
  "mutability": "mutable",
3230
3230
  "name": "app",
3231
- "nameLocation": "8246:3:47",
3231
+ "nameLocation": "8983:3:47",
3232
3232
  "nodeType": "VariableDeclaration",
3233
3233
  "scope": 18054,
3234
- "src": "8236:13:47",
3234
+ "src": "8973: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": 17380,
3249
- "src": "8236:9:47"
3249
+ "src": "8973:9:47"
3250
3250
  },
3251
3251
  "referencedDeclaration": 17380,
3252
- "src": "8236:9:47",
3252
+ "src": "8973:9:47",
3253
3253
  "typeDescriptions": {
3254
3254
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3255
3255
  "typeString": "contract ISuperApp"
@@ -3262,10 +3262,10 @@
3262
3262
  "id": 18051,
3263
3263
  "mutability": "mutable",
3264
3264
  "name": "configWord",
3265
- "nameLocation": "8259:10:47",
3265
+ "nameLocation": "8996:10:47",
3266
3266
  "nodeType": "VariableDeclaration",
3267
3267
  "scope": 18054,
3268
- "src": "8251:18:47",
3268
+ "src": "8988:18:47",
3269
3269
  "stateVariable": false,
3270
3270
  "storageLocation": "default",
3271
3271
  "typeDescriptions": {
@@ -3276,7 +3276,7 @@
3276
3276
  "id": 18050,
3277
3277
  "name": "uint256",
3278
3278
  "nodeType": "ElementaryTypeName",
3279
- "src": "8251:7:47",
3279
+ "src": "8988: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": "8235:35:47"
3288
+ "src": "8972:35:47"
3289
3289
  },
3290
3290
  "returnParameters": {
3291
3291
  "id": 18053,
3292
3292
  "nodeType": "ParameterList",
3293
3293
  "parameters": [],
3294
- "src": "8279:0:47"
3294
+ "src": "9016:0:47"
3295
3295
  },
3296
3296
  "scope": 18319,
3297
- "src": "8206:74:47",
3297
+ "src": "8943:74:47",
3298
3298
  "stateMutability": "nonpayable",
3299
3299
  "virtual": false,
3300
3300
  "visibility": "external"
@@ -3303,7 +3303,7 @@
3303
3303
  "documentation": {
3304
3304
  "id": 18055,
3305
3305
  "nodeType": "StructuredDocumentation",
3306
- "src": "8286:90:47",
3306
+ "src": "9023: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": "8390:5:47",
3315
+ "nameLocation": "9127:5:47",
3316
3316
  "nodeType": "FunctionDefinition",
3317
3317
  "parameters": {
3318
3318
  "id": 18059,
@@ -3323,10 +3323,10 @@
3323
3323
  "id": 18058,
3324
3324
  "mutability": "mutable",
3325
3325
  "name": "app",
3326
- "nameLocation": "8406:3:47",
3326
+ "nameLocation": "9143:3:47",
3327
3327
  "nodeType": "VariableDeclaration",
3328
3328
  "scope": 18063,
3329
- "src": "8396:13:47",
3329
+ "src": "9133: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": 17380,
3344
- "src": "8396:9:47"
3344
+ "src": "9133:9:47"
3345
3345
  },
3346
3346
  "referencedDeclaration": 17380,
3347
- "src": "8396:9:47",
3347
+ "src": "9133:9:47",
3348
3348
  "typeDescriptions": {
3349
3349
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3350
3350
  "typeString": "contract ISuperApp"
@@ -3353,7 +3353,7 @@
3353
3353
  "visibility": "internal"
3354
3354
  }
3355
3355
  ],
3356
- "src": "8395:15:47"
3356
+ "src": "9132:15:47"
3357
3357
  },
3358
3358
  "returnParameters": {
3359
3359
  "id": 18062,
@@ -3367,7 +3367,7 @@
3367
3367
  "nameLocation": "-1:-1:-1",
3368
3368
  "nodeType": "VariableDeclaration",
3369
3369
  "scope": 18063,
3370
- "src": "8433:4:47",
3370
+ "src": "9170:4:47",
3371
3371
  "stateVariable": false,
3372
3372
  "storageLocation": "default",
3373
3373
  "typeDescriptions": {
@@ -3378,7 +3378,7 @@
3378
3378
  "id": 18060,
3379
3379
  "name": "bool",
3380
3380
  "nodeType": "ElementaryTypeName",
3381
- "src": "8433:4:47",
3381
+ "src": "9170: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": "8432:6:47"
3390
+ "src": "9169:6:47"
3391
3391
  },
3392
3392
  "scope": 18319,
3393
- "src": "8381:58:47",
3393
+ "src": "9118:58:47",
3394
3394
  "stateMutability": "view",
3395
3395
  "virtual": false,
3396
3396
  "visibility": "external"
@@ -3399,7 +3399,7 @@
3399
3399
  "documentation": {
3400
3400
  "id": 18064,
3401
3401
  "nodeType": "StructuredDocumentation",
3402
- "src": "8445:75:47",
3402
+ "src": "9182: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": "8534:11:47",
3411
+ "nameLocation": "9271:11:47",
3412
3412
  "nodeType": "FunctionDefinition",
3413
3413
  "parameters": {
3414
3414
  "id": 18068,
@@ -3419,10 +3419,10 @@
3419
3419
  "id": 18067,
3420
3420
  "mutability": "mutable",
3421
3421
  "name": "app",
3422
- "nameLocation": "8556:3:47",
3422
+ "nameLocation": "9293:3:47",
3423
3423
  "nodeType": "VariableDeclaration",
3424
3424
  "scope": 18072,
3425
- "src": "8546:13:47",
3425
+ "src": "9283: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": 17380,
3440
- "src": "8546:9:47"
3440
+ "src": "9283:9:47"
3441
3441
  },
3442
3442
  "referencedDeclaration": 17380,
3443
- "src": "8546:9:47",
3443
+ "src": "9283:9:47",
3444
3444
  "typeDescriptions": {
3445
3445
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3446
3446
  "typeString": "contract ISuperApp"
@@ -3449,7 +3449,7 @@
3449
3449
  "visibility": "internal"
3450
3450
  }
3451
3451
  ],
3452
- "src": "8545:15:47"
3452
+ "src": "9282:15:47"
3453
3453
  },
3454
3454
  "returnParameters": {
3455
3455
  "id": 18071,
@@ -3460,10 +3460,10 @@
3460
3460
  "id": 18070,
3461
3461
  "mutability": "mutable",
3462
3462
  "name": "appLevel",
3463
- "nameLocation": "8589:8:47",
3463
+ "nameLocation": "9326:8:47",
3464
3464
  "nodeType": "VariableDeclaration",
3465
3465
  "scope": 18072,
3466
- "src": "8583:14:47",
3466
+ "src": "9320:14:47",
3467
3467
  "stateVariable": false,
3468
3468
  "storageLocation": "default",
3469
3469
  "typeDescriptions": {
@@ -3474,7 +3474,7 @@
3474
3474
  "id": 18069,
3475
3475
  "name": "uint8",
3476
3476
  "nodeType": "ElementaryTypeName",
3477
- "src": "8583:5:47",
3477
+ "src": "9320: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": "8582:16:47"
3486
+ "src": "9319:16:47"
3487
3487
  },
3488
3488
  "scope": 18319,
3489
- "src": "8525:74:47",
3489
+ "src": "9262:74:47",
3490
3490
  "stateMutability": "view",
3491
3491
  "virtual": false,
3492
3492
  "visibility": "external"
@@ -3495,7 +3495,7 @@
3495
3495
  "documentation": {
3496
3496
  "id": 18073,
3497
3497
  "nodeType": "StructuredDocumentation",
3498
- "src": "8605:93:47",
3498
+ "src": "9342: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": "8712:14:47",
3507
+ "nameLocation": "9449:14:47",
3508
3508
  "nodeType": "FunctionDefinition",
3509
3509
  "parameters": {
3510
3510
  "id": 18077,
@@ -3515,10 +3515,10 @@
3515
3515
  "id": 18076,
3516
3516
  "mutability": "mutable",
3517
3517
  "name": "app",
3518
- "nameLocation": "8746:3:47",
3518
+ "nameLocation": "9483:3:47",
3519
3519
  "nodeType": "VariableDeclaration",
3520
3520
  "scope": 18085,
3521
- "src": "8736:13:47",
3521
+ "src": "9473: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": 17380,
3536
- "src": "8736:9:47"
3536
+ "src": "9473:9:47"
3537
3537
  },
3538
3538
  "referencedDeclaration": 17380,
3539
- "src": "8736:9:47",
3539
+ "src": "9473:9:47",
3540
3540
  "typeDescriptions": {
3541
3541
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3542
3542
  "typeString": "contract ISuperApp"
@@ -3545,7 +3545,7 @@
3545
3545
  "visibility": "internal"
3546
3546
  }
3547
3547
  ],
3548
- "src": "8726:29:47"
3548
+ "src": "9463:29:47"
3549
3549
  },
3550
3550
  "returnParameters": {
3551
3551
  "id": 18084,
@@ -3556,10 +3556,10 @@
3556
3556
  "id": 18079,
3557
3557
  "mutability": "mutable",
3558
3558
  "name": "isSuperApp",
3559
- "nameLocation": "8813:10:47",
3559
+ "nameLocation": "9550:10:47",
3560
3560
  "nodeType": "VariableDeclaration",
3561
3561
  "scope": 18085,
3562
- "src": "8808:15:47",
3562
+ "src": "9545:15:47",
3563
3563
  "stateVariable": false,
3564
3564
  "storageLocation": "default",
3565
3565
  "typeDescriptions": {
@@ -3570,7 +3570,7 @@
3570
3570
  "id": 18078,
3571
3571
  "name": "bool",
3572
3572
  "nodeType": "ElementaryTypeName",
3573
- "src": "8808:4:47",
3573
+ "src": "9545:4:47",
3574
3574
  "typeDescriptions": {
3575
3575
  "typeIdentifier": "t_bool",
3576
3576
  "typeString": "bool"
@@ -3583,10 +3583,10 @@
3583
3583
  "id": 18081,
3584
3584
  "mutability": "mutable",
3585
3585
  "name": "isJailed",
3586
- "nameLocation": "8842:8:47",
3586
+ "nameLocation": "9579:8:47",
3587
3587
  "nodeType": "VariableDeclaration",
3588
3588
  "scope": 18085,
3589
- "src": "8837:13:47",
3589
+ "src": "9574:13:47",
3590
3590
  "stateVariable": false,
3591
3591
  "storageLocation": "default",
3592
3592
  "typeDescriptions": {
@@ -3597,7 +3597,7 @@
3597
3597
  "id": 18080,
3598
3598
  "name": "bool",
3599
3599
  "nodeType": "ElementaryTypeName",
3600
- "src": "8837:4:47",
3600
+ "src": "9574:4:47",
3601
3601
  "typeDescriptions": {
3602
3602
  "typeIdentifier": "t_bool",
3603
3603
  "typeString": "bool"
@@ -3610,10 +3610,10 @@
3610
3610
  "id": 18083,
3611
3611
  "mutability": "mutable",
3612
3612
  "name": "noopMask",
3613
- "nameLocation": "8872:8:47",
3613
+ "nameLocation": "9609:8:47",
3614
3614
  "nodeType": "VariableDeclaration",
3615
3615
  "scope": 18085,
3616
- "src": "8864:16:47",
3616
+ "src": "9601:16:47",
3617
3617
  "stateVariable": false,
3618
3618
  "storageLocation": "default",
3619
3619
  "typeDescriptions": {
@@ -3624,7 +3624,7 @@
3624
3624
  "id": 18082,
3625
3625
  "name": "uint256",
3626
3626
  "nodeType": "ElementaryTypeName",
3627
- "src": "8864:7:47",
3627
+ "src": "9601: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": "8794:96:47"
3636
+ "src": "9531:96:47"
3637
3637
  },
3638
3638
  "scope": 18319,
3639
- "src": "8703:188:47",
3639
+ "src": "9440:188:47",
3640
3640
  "stateMutability": "view",
3641
3641
  "virtual": false,
3642
3642
  "visibility": "external"
@@ -3645,7 +3645,7 @@
3645
3645
  "documentation": {
3646
3646
  "id": 18086,
3647
3647
  "nodeType": "StructuredDocumentation",
3648
- "src": "8897:92:47",
3648
+ "src": "9634: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": "9003:11:47",
3657
+ "nameLocation": "9740:11:47",
3658
3658
  "nodeType": "FunctionDefinition",
3659
3659
  "parameters": {
3660
3660
  "id": 18090,
@@ -3665,10 +3665,10 @@
3665
3665
  "id": 18089,
3666
3666
  "mutability": "mutable",
3667
3667
  "name": "app",
3668
- "nameLocation": "9025:3:47",
3668
+ "nameLocation": "9762:3:47",
3669
3669
  "nodeType": "VariableDeclaration",
3670
3670
  "scope": 18094,
3671
- "src": "9015:13:47",
3671
+ "src": "9752: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": 17380,
3686
- "src": "9015:9:47"
3686
+ "src": "9752:9:47"
3687
3687
  },
3688
3688
  "referencedDeclaration": 17380,
3689
- "src": "9015:9:47",
3689
+ "src": "9752:9:47",
3690
3690
  "typeDescriptions": {
3691
3691
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3692
3692
  "typeString": "contract ISuperApp"
@@ -3695,7 +3695,7 @@
3695
3695
  "visibility": "internal"
3696
3696
  }
3697
3697
  ],
3698
- "src": "9014:15:47"
3698
+ "src": "9751:15:47"
3699
3699
  },
3700
3700
  "returnParameters": {
3701
3701
  "id": 18093,
@@ -3706,10 +3706,10 @@
3706
3706
  "id": 18092,
3707
3707
  "mutability": "mutable",
3708
3708
  "name": "isJail",
3709
- "nameLocation": "9058:6:47",
3709
+ "nameLocation": "9795:6:47",
3710
3710
  "nodeType": "VariableDeclaration",
3711
3711
  "scope": 18094,
3712
- "src": "9053:11:47",
3712
+ "src": "9790:11:47",
3713
3713
  "stateVariable": false,
3714
3714
  "storageLocation": "default",
3715
3715
  "typeDescriptions": {
@@ -3720,7 +3720,7 @@
3720
3720
  "id": 18091,
3721
3721
  "name": "bool",
3722
3722
  "nodeType": "ElementaryTypeName",
3723
- "src": "9053:4:47",
3723
+ "src": "9790: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": "9052:13:47"
3732
+ "src": "9789:13:47"
3733
3733
  },
3734
3734
  "scope": 18319,
3735
- "src": "8994:72:47",
3735
+ "src": "9731:72:47",
3736
3736
  "stateMutability": "view",
3737
3737
  "virtual": false,
3738
3738
  "visibility": "external"
@@ -3741,7 +3741,7 @@
3741
3741
  "documentation": {
3742
3742
  "id": 18095,
3743
3743
  "nodeType": "StructuredDocumentation",
3744
- "src": "9072:153:47",
3744
+ "src": "9809: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": "9239:17:47",
3753
+ "nameLocation": "9976:17:47",
3754
3754
  "nodeType": "FunctionDefinition",
3755
3755
  "parameters": {
3756
3756
  "id": 18099,
@@ -3761,10 +3761,10 @@
3761
3761
  "id": 18098,
3762
3762
  "mutability": "mutable",
3763
3763
  "name": "targetApp",
3764
- "nameLocation": "9267:9:47",
3764
+ "nameLocation": "10004:9:47",
3765
3765
  "nodeType": "VariableDeclaration",
3766
3766
  "scope": 18101,
3767
- "src": "9257:19:47",
3767
+ "src": "9994: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": 17380,
3782
- "src": "9257:9:47"
3782
+ "src": "9994:9:47"
3783
3783
  },
3784
3784
  "referencedDeclaration": 17380,
3785
- "src": "9257:9:47",
3785
+ "src": "9994:9:47",
3786
3786
  "typeDescriptions": {
3787
3787
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3788
3788
  "typeString": "contract ISuperApp"
@@ -3791,16 +3791,16 @@
3791
3791
  "visibility": "internal"
3792
3792
  }
3793
3793
  ],
3794
- "src": "9256:21:47"
3794
+ "src": "9993:21:47"
3795
3795
  },
3796
3796
  "returnParameters": {
3797
3797
  "id": 18100,
3798
3798
  "nodeType": "ParameterList",
3799
3799
  "parameters": [],
3800
- "src": "9286:0:47"
3800
+ "src": "10023:0:47"
3801
3801
  },
3802
3802
  "scope": 18319,
3803
- "src": "9230:57:47",
3803
+ "src": "9967:57:47",
3804
3804
  "stateMutability": "nonpayable",
3805
3805
  "virtual": false,
3806
3806
  "visibility": "external"
@@ -3809,7 +3809,7 @@
3809
3809
  "documentation": {
3810
3810
  "id": 18102,
3811
3811
  "nodeType": "StructuredDocumentation",
3812
- "src": "9293:184:47",
3812
+ "src": "10030: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": "9491:21:47",
3821
+ "nameLocation": "10228:21:47",
3822
3822
  "nodeType": "FunctionDefinition",
3823
3823
  "parameters": {
3824
3824
  "id": 18109,
@@ -3829,10 +3829,10 @@
3829
3829
  "id": 18105,
3830
3830
  "mutability": "mutable",
3831
3831
  "name": "app",
3832
- "nameLocation": "9532:3:47",
3832
+ "nameLocation": "10269:3:47",
3833
3833
  "nodeType": "VariableDeclaration",
3834
3834
  "scope": 18113,
3835
- "src": "9522:13:47",
3835
+ "src": "10259: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": 17380,
3850
- "src": "9522:9:47"
3850
+ "src": "10259:9:47"
3851
3851
  },
3852
3852
  "referencedDeclaration": 17380,
3853
- "src": "9522:9:47",
3853
+ "src": "10259:9:47",
3854
3854
  "typeDescriptions": {
3855
3855
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3856
3856
  "typeString": "contract ISuperApp"
@@ -3863,10 +3863,10 @@
3863
3863
  "id": 18108,
3864
3864
  "mutability": "mutable",
3865
3865
  "name": "targetApp",
3866
- "nameLocation": "9555:9:47",
3866
+ "nameLocation": "10292:9:47",
3867
3867
  "nodeType": "VariableDeclaration",
3868
3868
  "scope": 18113,
3869
- "src": "9545:19:47",
3869
+ "src": "10282: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": 17380,
3884
- "src": "9545:9:47"
3884
+ "src": "10282:9:47"
3885
3885
  },
3886
3886
  "referencedDeclaration": 17380,
3887
- "src": "9545:9:47",
3887
+ "src": "10282:9:47",
3888
3888
  "typeDescriptions": {
3889
3889
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3890
3890
  "typeString": "contract ISuperApp"
@@ -3893,7 +3893,7 @@
3893
3893
  "visibility": "internal"
3894
3894
  }
3895
3895
  ],
3896
- "src": "9512:58:47"
3896
+ "src": "10249:58:47"
3897
3897
  },
3898
3898
  "returnParameters": {
3899
3899
  "id": 18112,
@@ -3904,10 +3904,10 @@
3904
3904
  "id": 18111,
3905
3905
  "mutability": "mutable",
3906
3906
  "name": "isAppAllowed",
3907
- "nameLocation": "9615:12:47",
3907
+ "nameLocation": "10352:12:47",
3908
3908
  "nodeType": "VariableDeclaration",
3909
3909
  "scope": 18113,
3910
- "src": "9610:17:47",
3910
+ "src": "10347:17:47",
3911
3911
  "stateVariable": false,
3912
3912
  "storageLocation": "default",
3913
3913
  "typeDescriptions": {
@@ -3918,7 +3918,7 @@
3918
3918
  "id": 18110,
3919
3919
  "name": "bool",
3920
3920
  "nodeType": "ElementaryTypeName",
3921
- "src": "9610:4:47",
3921
+ "src": "10347: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": "9609:19:47"
3930
+ "src": "10346:19:47"
3931
3931
  },
3932
3932
  "scope": 18319,
3933
- "src": "9482:147:47",
3933
+ "src": "10219:147:47",
3934
3934
  "stateMutability": "view",
3935
3935
  "virtual": false,
3936
3936
  "visibility": "external"
@@ -3939,7 +3939,7 @@
3939
3939
  "documentation": {
3940
3940
  "id": 18114,
3941
3941
  "nodeType": "StructuredDocumentation",
3942
- "src": "10024:393:47",
3942
+ "src": "10761: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": "10431:21:47",
3951
+ "nameLocation": "11168:21:47",
3952
3952
  "nodeType": "FunctionDefinition",
3953
3953
  "parameters": {
3954
3954
  "id": 18124,
@@ -3959,10 +3959,10 @@
3959
3959
  "id": 18117,
3960
3960
  "mutability": "mutable",
3961
3961
  "name": "app",
3962
- "nameLocation": "10472:3:47",
3962
+ "nameLocation": "11209:3:47",
3963
3963
  "nodeType": "VariableDeclaration",
3964
3964
  "scope": 18128,
3965
- "src": "10462:13:47",
3965
+ "src": "11199: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": 17380,
3980
- "src": "10462:9:47"
3980
+ "src": "11199:9:47"
3981
3981
  },
3982
3982
  "referencedDeclaration": 17380,
3983
- "src": "10462:9:47",
3983
+ "src": "11199:9:47",
3984
3984
  "typeDescriptions": {
3985
3985
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
3986
3986
  "typeString": "contract ISuperApp"
@@ -3993,10 +3993,10 @@
3993
3993
  "id": 18119,
3994
3994
  "mutability": "mutable",
3995
3995
  "name": "callData",
3996
- "nameLocation": "10500:8:47",
3996
+ "nameLocation": "11237:8:47",
3997
3997
  "nodeType": "VariableDeclaration",
3998
3998
  "scope": 18128,
3999
- "src": "10485:23:47",
3999
+ "src": "11222:23:47",
4000
4000
  "stateVariable": false,
4001
4001
  "storageLocation": "calldata",
4002
4002
  "typeDescriptions": {
@@ -4007,7 +4007,7 @@
4007
4007
  "id": 18118,
4008
4008
  "name": "bytes",
4009
4009
  "nodeType": "ElementaryTypeName",
4010
- "src": "10485:5:47",
4010
+ "src": "11222:5:47",
4011
4011
  "typeDescriptions": {
4012
4012
  "typeIdentifier": "t_bytes_storage_ptr",
4013
4013
  "typeString": "bytes"
@@ -4020,10 +4020,10 @@
4020
4020
  "id": 18121,
4021
4021
  "mutability": "mutable",
4022
4022
  "name": "isTermination",
4023
- "nameLocation": "10523:13:47",
4023
+ "nameLocation": "11260:13:47",
4024
4024
  "nodeType": "VariableDeclaration",
4025
4025
  "scope": 18128,
4026
- "src": "10518:18:47",
4026
+ "src": "11255:18:47",
4027
4027
  "stateVariable": false,
4028
4028
  "storageLocation": "default",
4029
4029
  "typeDescriptions": {
@@ -4034,7 +4034,7 @@
4034
4034
  "id": 18120,
4035
4035
  "name": "bool",
4036
4036
  "nodeType": "ElementaryTypeName",
4037
- "src": "10518:4:47",
4037
+ "src": "11255:4:47",
4038
4038
  "typeDescriptions": {
4039
4039
  "typeIdentifier": "t_bool",
4040
4040
  "typeString": "bool"
@@ -4047,10 +4047,10 @@
4047
4047
  "id": 18123,
4048
4048
  "mutability": "mutable",
4049
4049
  "name": "ctx",
4050
- "nameLocation": "10561:3:47",
4050
+ "nameLocation": "11298:3:47",
4051
4051
  "nodeType": "VariableDeclaration",
4052
4052
  "scope": 18128,
4053
- "src": "10546:18:47",
4053
+ "src": "11283:18:47",
4054
4054
  "stateVariable": false,
4055
4055
  "storageLocation": "calldata",
4056
4056
  "typeDescriptions": {
@@ -4061,7 +4061,7 @@
4061
4061
  "id": 18122,
4062
4062
  "name": "bytes",
4063
4063
  "nodeType": "ElementaryTypeName",
4064
- "src": "10546:5:47",
4064
+ "src": "11283: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": "10452:118:47"
4073
+ "src": "11189:118:47"
4074
4074
  },
4075
4075
  "returnParameters": {
4076
4076
  "id": 18127,
@@ -4081,10 +4081,10 @@
4081
4081
  "id": 18126,
4082
4082
  "mutability": "mutable",
4083
4083
  "name": "cbdata",
4084
- "nameLocation": "10673:6:47",
4084
+ "nameLocation": "11410:6:47",
4085
4085
  "nodeType": "VariableDeclaration",
4086
4086
  "scope": 18128,
4087
- "src": "10660:19:47",
4087
+ "src": "11397:19:47",
4088
4088
  "stateVariable": false,
4089
4089
  "storageLocation": "memory",
4090
4090
  "typeDescriptions": {
@@ -4095,7 +4095,7 @@
4095
4095
  "id": 18125,
4096
4096
  "name": "bytes",
4097
4097
  "nodeType": "ElementaryTypeName",
4098
- "src": "10660:5:47",
4098
+ "src": "11397: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": "10659:21:47"
4107
+ "src": "11396:21:47"
4108
4108
  },
4109
4109
  "scope": 18319,
4110
- "src": "10422:259:47",
4110
+ "src": "11159:259:47",
4111
4111
  "stateMutability": "nonpayable",
4112
4112
  "virtual": false,
4113
4113
  "visibility": "external"
@@ -4116,7 +4116,7 @@
4116
4116
  "documentation": {
4117
4117
  "id": 18129,
4118
4118
  "nodeType": "StructuredDocumentation",
4119
- "src": "10687:342:47",
4119
+ "src": "11424:342:47",
4120
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"
4121
4121
  },
4122
4122
  "functionSelector": "1e6d0a84",
@@ -4125,7 +4125,7 @@
4125
4125
  "kind": "function",
4126
4126
  "modifiers": [],
4127
4127
  "name": "callAppAfterCallback",
4128
- "nameLocation": "11043:20:47",
4128
+ "nameLocation": "11780:20:47",
4129
4129
  "nodeType": "FunctionDefinition",
4130
4130
  "parameters": {
4131
4131
  "id": 18139,
@@ -4136,10 +4136,10 @@
4136
4136
  "id": 18132,
4137
4137
  "mutability": "mutable",
4138
4138
  "name": "app",
4139
- "nameLocation": "11083:3:47",
4139
+ "nameLocation": "11820:3:47",
4140
4140
  "nodeType": "VariableDeclaration",
4141
4141
  "scope": 18143,
4142
- "src": "11073:13:47",
4142
+ "src": "11810: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": 17380,
4157
- "src": "11073:9:47"
4157
+ "src": "11810:9:47"
4158
4158
  },
4159
4159
  "referencedDeclaration": 17380,
4160
- "src": "11073:9:47",
4160
+ "src": "11810:9:47",
4161
4161
  "typeDescriptions": {
4162
4162
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
4163
4163
  "typeString": "contract ISuperApp"
@@ -4170,10 +4170,10 @@
4170
4170
  "id": 18134,
4171
4171
  "mutability": "mutable",
4172
4172
  "name": "callData",
4173
- "nameLocation": "11111:8:47",
4173
+ "nameLocation": "11848:8:47",
4174
4174
  "nodeType": "VariableDeclaration",
4175
4175
  "scope": 18143,
4176
- "src": "11096:23:47",
4176
+ "src": "11833:23:47",
4177
4177
  "stateVariable": false,
4178
4178
  "storageLocation": "calldata",
4179
4179
  "typeDescriptions": {
@@ -4184,7 +4184,7 @@
4184
4184
  "id": 18133,
4185
4185
  "name": "bytes",
4186
4186
  "nodeType": "ElementaryTypeName",
4187
- "src": "11096:5:47",
4187
+ "src": "11833:5:47",
4188
4188
  "typeDescriptions": {
4189
4189
  "typeIdentifier": "t_bytes_storage_ptr",
4190
4190
  "typeString": "bytes"
@@ -4197,10 +4197,10 @@
4197
4197
  "id": 18136,
4198
4198
  "mutability": "mutable",
4199
4199
  "name": "isTermination",
4200
- "nameLocation": "11134:13:47",
4200
+ "nameLocation": "11871:13:47",
4201
4201
  "nodeType": "VariableDeclaration",
4202
4202
  "scope": 18143,
4203
- "src": "11129:18:47",
4203
+ "src": "11866:18:47",
4204
4204
  "stateVariable": false,
4205
4205
  "storageLocation": "default",
4206
4206
  "typeDescriptions": {
@@ -4211,7 +4211,7 @@
4211
4211
  "id": 18135,
4212
4212
  "name": "bool",
4213
4213
  "nodeType": "ElementaryTypeName",
4214
- "src": "11129:4:47",
4214
+ "src": "11866:4:47",
4215
4215
  "typeDescriptions": {
4216
4216
  "typeIdentifier": "t_bool",
4217
4217
  "typeString": "bool"
@@ -4224,10 +4224,10 @@
4224
4224
  "id": 18138,
4225
4225
  "mutability": "mutable",
4226
4226
  "name": "ctx",
4227
- "nameLocation": "11172:3:47",
4227
+ "nameLocation": "11909:3:47",
4228
4228
  "nodeType": "VariableDeclaration",
4229
4229
  "scope": 18143,
4230
- "src": "11157:18:47",
4230
+ "src": "11894:18:47",
4231
4231
  "stateVariable": false,
4232
4232
  "storageLocation": "calldata",
4233
4233
  "typeDescriptions": {
@@ -4238,7 +4238,7 @@
4238
4238
  "id": 18137,
4239
4239
  "name": "bytes",
4240
4240
  "nodeType": "ElementaryTypeName",
4241
- "src": "11157:5:47",
4241
+ "src": "11894: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": "11063:118:47"
4250
+ "src": "11800:118:47"
4251
4251
  },
4252
4252
  "returnParameters": {
4253
4253
  "id": 18142,
@@ -4258,10 +4258,10 @@
4258
4258
  "id": 18141,
4259
4259
  "mutability": "mutable",
4260
4260
  "name": "newCtx",
4261
- "nameLocation": "11284:6:47",
4261
+ "nameLocation": "12021:6:47",
4262
4262
  "nodeType": "VariableDeclaration",
4263
4263
  "scope": 18143,
4264
- "src": "11271:19:47",
4264
+ "src": "12008:19:47",
4265
4265
  "stateVariable": false,
4266
4266
  "storageLocation": "memory",
4267
4267
  "typeDescriptions": {
@@ -4272,7 +4272,7 @@
4272
4272
  "id": 18140,
4273
4273
  "name": "bytes",
4274
4274
  "nodeType": "ElementaryTypeName",
4275
- "src": "11271:5:47",
4275
+ "src": "12008: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": "11270:21:47"
4284
+ "src": "12007:21:47"
4285
4285
  },
4286
4286
  "scope": 18319,
4287
- "src": "11034:258:47",
4287
+ "src": "11771:258:47",
4288
4288
  "stateMutability": "nonpayable",
4289
4289
  "virtual": false,
4290
4290
  "visibility": "external"
@@ -4293,7 +4293,7 @@
4293
4293
  "documentation": {
4294
4294
  "id": 18144,
4295
4295
  "nodeType": "StructuredDocumentation",
4296
- "src": "11298:357:47",
4296
+ "src": "12035:357:47",
4297
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"
4298
4298
  },
4299
4299
  "functionSelector": "768fabb0",
@@ -4302,7 +4302,7 @@
4302
4302
  "kind": "function",
4303
4303
  "modifiers": [],
4304
4304
  "name": "appCallbackPush",
4305
- "nameLocation": "11669:15:47",
4305
+ "nameLocation": "12406:15:47",
4306
4306
  "nodeType": "FunctionDefinition",
4307
4307
  "parameters": {
4308
4308
  "id": 18157,
@@ -4313,10 +4313,10 @@
4313
4313
  "id": 18146,
4314
4314
  "mutability": "mutable",
4315
4315
  "name": "ctx",
4316
- "nameLocation": "11709:3:47",
4316
+ "nameLocation": "12446:3:47",
4317
4317
  "nodeType": "VariableDeclaration",
4318
4318
  "scope": 18161,
4319
- "src": "11694:18:47",
4319
+ "src": "12431:18:47",
4320
4320
  "stateVariable": false,
4321
4321
  "storageLocation": "calldata",
4322
4322
  "typeDescriptions": {
@@ -4327,7 +4327,7 @@
4327
4327
  "id": 18145,
4328
4328
  "name": "bytes",
4329
4329
  "nodeType": "ElementaryTypeName",
4330
- "src": "11694:5:47",
4330
+ "src": "12431:5:47",
4331
4331
  "typeDescriptions": {
4332
4332
  "typeIdentifier": "t_bytes_storage_ptr",
4333
4333
  "typeString": "bytes"
@@ -4340,10 +4340,10 @@
4340
4340
  "id": 18149,
4341
4341
  "mutability": "mutable",
4342
4342
  "name": "app",
4343
- "nameLocation": "11732:3:47",
4343
+ "nameLocation": "12469:3:47",
4344
4344
  "nodeType": "VariableDeclaration",
4345
4345
  "scope": 18161,
4346
- "src": "11722:13:47",
4346
+ "src": "12459: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": 17380,
4361
- "src": "11722:9:47"
4361
+ "src": "12459:9:47"
4362
4362
  },
4363
4363
  "referencedDeclaration": 17380,
4364
- "src": "11722:9:47",
4364
+ "src": "12459:9:47",
4365
4365
  "typeDescriptions": {
4366
4366
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
4367
4367
  "typeString": "contract ISuperApp"
@@ -4374,10 +4374,10 @@
4374
4374
  "id": 18151,
4375
4375
  "mutability": "mutable",
4376
4376
  "name": "appAllowanceGranted",
4377
- "nameLocation": "11753:19:47",
4377
+ "nameLocation": "12490:19:47",
4378
4378
  "nodeType": "VariableDeclaration",
4379
4379
  "scope": 18161,
4380
- "src": "11745:27:47",
4380
+ "src": "12482:27:47",
4381
4381
  "stateVariable": false,
4382
4382
  "storageLocation": "default",
4383
4383
  "typeDescriptions": {
@@ -4388,7 +4388,7 @@
4388
4388
  "id": 18150,
4389
4389
  "name": "uint256",
4390
4390
  "nodeType": "ElementaryTypeName",
4391
- "src": "11745:7:47",
4391
+ "src": "12482:7:47",
4392
4392
  "typeDescriptions": {
4393
4393
  "typeIdentifier": "t_uint256",
4394
4394
  "typeString": "uint256"
@@ -4401,10 +4401,10 @@
4401
4401
  "id": 18153,
4402
4402
  "mutability": "mutable",
4403
4403
  "name": "appAllowanceUsed",
4404
- "nameLocation": "11789:16:47",
4404
+ "nameLocation": "12526:16:47",
4405
4405
  "nodeType": "VariableDeclaration",
4406
4406
  "scope": 18161,
4407
- "src": "11782:23:47",
4407
+ "src": "12519:23:47",
4408
4408
  "stateVariable": false,
4409
4409
  "storageLocation": "default",
4410
4410
  "typeDescriptions": {
@@ -4415,7 +4415,7 @@
4415
4415
  "id": 18152,
4416
4416
  "name": "int256",
4417
4417
  "nodeType": "ElementaryTypeName",
4418
- "src": "11782:6:47",
4418
+ "src": "12519:6:47",
4419
4419
  "typeDescriptions": {
4420
4420
  "typeIdentifier": "t_int256",
4421
4421
  "typeString": "int256"
@@ -4428,10 +4428,10 @@
4428
4428
  "id": 18156,
4429
4429
  "mutability": "mutable",
4430
4430
  "name": "appAllowanceToken",
4431
- "nameLocation": "11832:17:47",
4431
+ "nameLocation": "12569:17:47",
4432
4432
  "nodeType": "VariableDeclaration",
4433
4433
  "scope": 18161,
4434
- "src": "11815:34:47",
4434
+ "src": "12552: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": 18716,
4449
- "src": "11815:16:47"
4449
+ "src": "12552:16:47"
4450
4450
  },
4451
4451
  "referencedDeclaration": 18716,
4452
- "src": "11815:16:47",
4452
+ "src": "12552:16:47",
4453
4453
  "typeDescriptions": {
4454
4454
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18716",
4455
4455
  "typeString": "contract ISuperfluidToken"
@@ -4458,7 +4458,7 @@
4458
4458
  "visibility": "internal"
4459
4459
  }
4460
4460
  ],
4461
- "src": "11684:171:47"
4461
+ "src": "12421:171:47"
4462
4462
  },
4463
4463
  "returnParameters": {
4464
4464
  "id": 18160,
@@ -4469,10 +4469,10 @@
4469
4469
  "id": 18159,
4470
4470
  "mutability": "mutable",
4471
4471
  "name": "newCtx",
4472
- "nameLocation": "11959:6:47",
4472
+ "nameLocation": "12696:6:47",
4473
4473
  "nodeType": "VariableDeclaration",
4474
4474
  "scope": 18161,
4475
- "src": "11946:19:47",
4475
+ "src": "12683:19:47",
4476
4476
  "stateVariable": false,
4477
4477
  "storageLocation": "memory",
4478
4478
  "typeDescriptions": {
@@ -4483,7 +4483,7 @@
4483
4483
  "id": 18158,
4484
4484
  "name": "bytes",
4485
4485
  "nodeType": "ElementaryTypeName",
4486
- "src": "11946:5:47",
4486
+ "src": "12683: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": "11945:21:47"
4495
+ "src": "12682:21:47"
4496
4496
  },
4497
4497
  "scope": 18319,
4498
- "src": "11660:307:47",
4498
+ "src": "12397:307:47",
4499
4499
  "stateMutability": "nonpayable",
4500
4500
  "virtual": false,
4501
4501
  "visibility": "external"
@@ -4504,7 +4504,7 @@
4504
4504
  "documentation": {
4505
4505
  "id": 18162,
4506
4506
  "nodeType": "StructuredDocumentation",
4507
- "src": "11973:500:47",
4507
+ "src": "12710:500:47",
4508
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."
4509
4509
  },
4510
4510
  "functionSelector": "989b0c3e",
@@ -4513,7 +4513,7 @@
4513
4513
  "kind": "function",
4514
4514
  "modifiers": [],
4515
4515
  "name": "appCallbackPop",
4516
- "nameLocation": "12487:14:47",
4516
+ "nameLocation": "13224:14:47",
4517
4517
  "nodeType": "FunctionDefinition",
4518
4518
  "parameters": {
4519
4519
  "id": 18167,
@@ -4524,10 +4524,10 @@
4524
4524
  "id": 18164,
4525
4525
  "mutability": "mutable",
4526
4526
  "name": "ctx",
4527
- "nameLocation": "12526:3:47",
4527
+ "nameLocation": "13263:3:47",
4528
4528
  "nodeType": "VariableDeclaration",
4529
4529
  "scope": 18171,
4530
- "src": "12511:18:47",
4530
+ "src": "13248:18:47",
4531
4531
  "stateVariable": false,
4532
4532
  "storageLocation": "calldata",
4533
4533
  "typeDescriptions": {
@@ -4538,7 +4538,7 @@
4538
4538
  "id": 18163,
4539
4539
  "name": "bytes",
4540
4540
  "nodeType": "ElementaryTypeName",
4541
- "src": "12511:5:47",
4541
+ "src": "13248:5:47",
4542
4542
  "typeDescriptions": {
4543
4543
  "typeIdentifier": "t_bytes_storage_ptr",
4544
4544
  "typeString": "bytes"
@@ -4551,10 +4551,10 @@
4551
4551
  "id": 18166,
4552
4552
  "mutability": "mutable",
4553
4553
  "name": "appAllowanceUsedDelta",
4554
- "nameLocation": "12546:21:47",
4554
+ "nameLocation": "13283:21:47",
4555
4555
  "nodeType": "VariableDeclaration",
4556
4556
  "scope": 18171,
4557
- "src": "12539:28:47",
4557
+ "src": "13276:28:47",
4558
4558
  "stateVariable": false,
4559
4559
  "storageLocation": "default",
4560
4560
  "typeDescriptions": {
@@ -4565,7 +4565,7 @@
4565
4565
  "id": 18165,
4566
4566
  "name": "int256",
4567
4567
  "nodeType": "ElementaryTypeName",
4568
- "src": "12539:6:47",
4568
+ "src": "13276: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": "12501:72:47"
4577
+ "src": "13238:72:47"
4578
4578
  },
4579
4579
  "returnParameters": {
4580
4580
  "id": 18170,
@@ -4585,10 +4585,10 @@
4585
4585
  "id": 18169,
4586
4586
  "mutability": "mutable",
4587
4587
  "name": "newCtx",
4588
- "nameLocation": "12646:6:47",
4588
+ "nameLocation": "13383:6:47",
4589
4589
  "nodeType": "VariableDeclaration",
4590
4590
  "scope": 18171,
4591
- "src": "12633:19:47",
4591
+ "src": "13370:19:47",
4592
4592
  "stateVariable": false,
4593
4593
  "storageLocation": "memory",
4594
4594
  "typeDescriptions": {
@@ -4599,7 +4599,7 @@
4599
4599
  "id": 18168,
4600
4600
  "name": "bytes",
4601
4601
  "nodeType": "ElementaryTypeName",
4602
- "src": "12633:5:47",
4602
+ "src": "13370: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": "12632:21:47"
4611
+ "src": "13369:21:47"
4612
4612
  },
4613
4613
  "scope": 18319,
4614
- "src": "12478:176:47",
4614
+ "src": "13215:176:47",
4615
4615
  "stateMutability": "nonpayable",
4616
4616
  "virtual": false,
4617
4617
  "visibility": "external"
@@ -4620,7 +4620,7 @@
4620
4620
  "documentation": {
4621
4621
  "id": 18172,
4622
4622
  "nodeType": "StructuredDocumentation",
4623
- "src": "12660:312:47",
4623
+ "src": "13397:312:47",
4624
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"
4625
4625
  },
4626
4626
  "functionSelector": "0792f20a",
@@ -4629,7 +4629,7 @@
4629
4629
  "kind": "function",
4630
4630
  "modifiers": [],
4631
4631
  "name": "ctxUseAllowance",
4632
- "nameLocation": "12986:15:47",
4632
+ "nameLocation": "13723:15:47",
4633
4633
  "nodeType": "FunctionDefinition",
4634
4634
  "parameters": {
4635
4635
  "id": 18179,
@@ -4640,10 +4640,10 @@
4640
4640
  "id": 18174,
4641
4641
  "mutability": "mutable",
4642
4642
  "name": "ctx",
4643
- "nameLocation": "13026:3:47",
4643
+ "nameLocation": "13763:3:47",
4644
4644
  "nodeType": "VariableDeclaration",
4645
4645
  "scope": 18183,
4646
- "src": "13011:18:47",
4646
+ "src": "13748:18:47",
4647
4647
  "stateVariable": false,
4648
4648
  "storageLocation": "calldata",
4649
4649
  "typeDescriptions": {
@@ -4654,7 +4654,7 @@
4654
4654
  "id": 18173,
4655
4655
  "name": "bytes",
4656
4656
  "nodeType": "ElementaryTypeName",
4657
- "src": "13011:5:47",
4657
+ "src": "13748:5:47",
4658
4658
  "typeDescriptions": {
4659
4659
  "typeIdentifier": "t_bytes_storage_ptr",
4660
4660
  "typeString": "bytes"
@@ -4667,10 +4667,10 @@
4667
4667
  "id": 18176,
4668
4668
  "mutability": "mutable",
4669
4669
  "name": "appAllowanceWantedMore",
4670
- "nameLocation": "13047:22:47",
4670
+ "nameLocation": "13784:22:47",
4671
4671
  "nodeType": "VariableDeclaration",
4672
4672
  "scope": 18183,
4673
- "src": "13039:30:47",
4673
+ "src": "13776:30:47",
4674
4674
  "stateVariable": false,
4675
4675
  "storageLocation": "default",
4676
4676
  "typeDescriptions": {
@@ -4681,7 +4681,7 @@
4681
4681
  "id": 18175,
4682
4682
  "name": "uint256",
4683
4683
  "nodeType": "ElementaryTypeName",
4684
- "src": "13039:7:47",
4684
+ "src": "13776:7:47",
4685
4685
  "typeDescriptions": {
4686
4686
  "typeIdentifier": "t_uint256",
4687
4687
  "typeString": "uint256"
@@ -4694,10 +4694,10 @@
4694
4694
  "id": 18178,
4695
4695
  "mutability": "mutable",
4696
4696
  "name": "appAllowanceUsedDelta",
4697
- "nameLocation": "13086:21:47",
4697
+ "nameLocation": "13823:21:47",
4698
4698
  "nodeType": "VariableDeclaration",
4699
4699
  "scope": 18183,
4700
- "src": "13079:28:47",
4700
+ "src": "13816:28:47",
4701
4701
  "stateVariable": false,
4702
4702
  "storageLocation": "default",
4703
4703
  "typeDescriptions": {
@@ -4708,7 +4708,7 @@
4708
4708
  "id": 18177,
4709
4709
  "name": "int256",
4710
4710
  "nodeType": "ElementaryTypeName",
4711
- "src": "13079:6:47",
4711
+ "src": "13816: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": "13001:112:47"
4720
+ "src": "13738:112:47"
4721
4721
  },
4722
4722
  "returnParameters": {
4723
4723
  "id": 18182,
@@ -4728,10 +4728,10 @@
4728
4728
  "id": 18181,
4729
4729
  "mutability": "mutable",
4730
4730
  "name": "newCtx",
4731
- "nameLocation": "13217:6:47",
4731
+ "nameLocation": "13954:6:47",
4732
4732
  "nodeType": "VariableDeclaration",
4733
4733
  "scope": 18183,
4734
- "src": "13204:19:47",
4734
+ "src": "13941:19:47",
4735
4735
  "stateVariable": false,
4736
4736
  "storageLocation": "memory",
4737
4737
  "typeDescriptions": {
@@ -4742,7 +4742,7 @@
4742
4742
  "id": 18180,
4743
4743
  "name": "bytes",
4744
4744
  "nodeType": "ElementaryTypeName",
4745
- "src": "13204:5:47",
4745
+ "src": "13941: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": "13203:21:47"
4754
+ "src": "13940:21:47"
4755
4755
  },
4756
4756
  "scope": 18319,
4757
- "src": "12977:248:47",
4757
+ "src": "13714:248:47",
4758
4758
  "stateMutability": "nonpayable",
4759
4759
  "virtual": false,
4760
4760
  "visibility": "external"
@@ -4763,7 +4763,7 @@
4763
4763
  "documentation": {
4764
4764
  "id": 18184,
4765
4765
  "nodeType": "StructuredDocumentation",
4766
- "src": "13231:187:47",
4766
+ "src": "13968:187:47",
4767
4767
  "text": " @dev (For agreements) Jail the app.\n @param app The super app.\n @param reason Jail reason code.\n @return newCtx"
4768
4768
  },
4769
4769
  "functionSelector": "b724211e",
@@ -4772,7 +4772,7 @@
4772
4772
  "kind": "function",
4773
4773
  "modifiers": [],
4774
4774
  "name": "jailApp",
4775
- "nameLocation": "13432:7:47",
4775
+ "nameLocation": "14169:7:47",
4776
4776
  "nodeType": "FunctionDefinition",
4777
4777
  "parameters": {
4778
4778
  "id": 18192,
@@ -4783,10 +4783,10 @@
4783
4783
  "id": 18186,
4784
4784
  "mutability": "mutable",
4785
4785
  "name": "ctx",
4786
- "nameLocation": "13464:3:47",
4786
+ "nameLocation": "14201:3:47",
4787
4787
  "nodeType": "VariableDeclaration",
4788
4788
  "scope": 18196,
4789
- "src": "13449:18:47",
4789
+ "src": "14186:18:47",
4790
4790
  "stateVariable": false,
4791
4791
  "storageLocation": "calldata",
4792
4792
  "typeDescriptions": {
@@ -4797,7 +4797,7 @@
4797
4797
  "id": 18185,
4798
4798
  "name": "bytes",
4799
4799
  "nodeType": "ElementaryTypeName",
4800
- "src": "13449:5:47",
4800
+ "src": "14186:5:47",
4801
4801
  "typeDescriptions": {
4802
4802
  "typeIdentifier": "t_bytes_storage_ptr",
4803
4803
  "typeString": "bytes"
@@ -4810,10 +4810,10 @@
4810
4810
  "id": 18189,
4811
4811
  "mutability": "mutable",
4812
4812
  "name": "app",
4813
- "nameLocation": "13487:3:47",
4813
+ "nameLocation": "14224:3:47",
4814
4814
  "nodeType": "VariableDeclaration",
4815
4815
  "scope": 18196,
4816
- "src": "13477:13:47",
4816
+ "src": "14214: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": 17380,
4831
- "src": "13477:9:47"
4831
+ "src": "14214:9:47"
4832
4832
  },
4833
4833
  "referencedDeclaration": 17380,
4834
- "src": "13477:9:47",
4834
+ "src": "14214:9:47",
4835
4835
  "typeDescriptions": {
4836
4836
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
4837
4837
  "typeString": "contract ISuperApp"
@@ -4844,10 +4844,10 @@
4844
4844
  "id": 18191,
4845
4845
  "mutability": "mutable",
4846
4846
  "name": "reason",
4847
- "nameLocation": "13508:6:47",
4847
+ "nameLocation": "14245:6:47",
4848
4848
  "nodeType": "VariableDeclaration",
4849
4849
  "scope": 18196,
4850
- "src": "13500:14:47",
4850
+ "src": "14237:14:47",
4851
4851
  "stateVariable": false,
4852
4852
  "storageLocation": "default",
4853
4853
  "typeDescriptions": {
@@ -4858,7 +4858,7 @@
4858
4858
  "id": 18190,
4859
4859
  "name": "uint256",
4860
4860
  "nodeType": "ElementaryTypeName",
4861
- "src": "13500:7:47",
4861
+ "src": "14237: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": "13439:81:47"
4870
+ "src": "14176:81:47"
4871
4871
  },
4872
4872
  "returnParameters": {
4873
4873
  "id": 18195,
@@ -4878,10 +4878,10 @@
4878
4878
  "id": 18194,
4879
4879
  "mutability": "mutable",
4880
4880
  "name": "newCtx",
4881
- "nameLocation": "13624:6:47",
4881
+ "nameLocation": "14361:6:47",
4882
4882
  "nodeType": "VariableDeclaration",
4883
4883
  "scope": 18196,
4884
- "src": "13611:19:47",
4884
+ "src": "14348:19:47",
4885
4885
  "stateVariable": false,
4886
4886
  "storageLocation": "memory",
4887
4887
  "typeDescriptions": {
@@ -4892,7 +4892,7 @@
4892
4892
  "id": 18193,
4893
4893
  "name": "bytes",
4894
4894
  "nodeType": "ElementaryTypeName",
4895
- "src": "13611:5:47",
4895
+ "src": "14348: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": "13610:21:47"
4904
+ "src": "14347:21:47"
4905
4905
  },
4906
4906
  "scope": 18319,
4907
- "src": "13423:209:47",
4907
+ "src": "14160:209:47",
4908
4908
  "stateMutability": "nonpayable",
4909
4909
  "virtual": false,
4910
4910
  "visibility": "external"
@@ -4914,13 +4914,13 @@
4914
4914
  "documentation": {
4915
4915
  "id": 18197,
4916
4916
  "nodeType": "StructuredDocumentation",
4917
- "src": "13638:172:47",
4917
+ "src": "14375: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": 18204,
4922
4922
  "name": "Jail",
4923
- "nameLocation": "13821:4:47",
4923
+ "nameLocation": "14558:4:47",
4924
4924
  "nodeType": "EventDefinition",
4925
4925
  "parameters": {
4926
4926
  "id": 18203,
@@ -4932,10 +4932,10 @@
4932
4932
  "indexed": true,
4933
4933
  "mutability": "mutable",
4934
4934
  "name": "app",
4935
- "nameLocation": "13844:3:47",
4935
+ "nameLocation": "14581:3:47",
4936
4936
  "nodeType": "VariableDeclaration",
4937
4937
  "scope": 18204,
4938
- "src": "13826:21:47",
4938
+ "src": "14563: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": 17380,
4953
- "src": "13826:9:47"
4953
+ "src": "14563:9:47"
4954
4954
  },
4955
4955
  "referencedDeclaration": 17380,
4956
- "src": "13826:9:47",
4956
+ "src": "14563:9:47",
4957
4957
  "typeDescriptions": {
4958
4958
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
4959
4959
  "typeString": "contract ISuperApp"
@@ -4967,10 +4967,10 @@
4967
4967
  "indexed": false,
4968
4968
  "mutability": "mutable",
4969
4969
  "name": "reason",
4970
- "nameLocation": "13857:6:47",
4970
+ "nameLocation": "14594:6:47",
4971
4971
  "nodeType": "VariableDeclaration",
4972
4972
  "scope": 18204,
4973
- "src": "13849:14:47",
4973
+ "src": "14586:14:47",
4974
4974
  "stateVariable": false,
4975
4975
  "storageLocation": "default",
4976
4976
  "typeDescriptions": {
@@ -4981,7 +4981,7 @@
4981
4981
  "id": 18201,
4982
4982
  "name": "uint256",
4983
4983
  "nodeType": "ElementaryTypeName",
4984
- "src": "13849:7:47",
4984
+ "src": "14586: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": "13825:39:47"
4993
+ "src": "14562:39:47"
4994
4994
  },
4995
- "src": "13815:50:47"
4995
+ "src": "14552:50:47"
4996
4996
  },
4997
4997
  {
4998
4998
  "documentation": {
4999
4999
  "id": 18205,
5000
5000
  "nodeType": "StructuredDocumentation",
5001
- "src": "14426:265:47",
5001
+ "src": "15163: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": "14706:13:47",
5010
+ "nameLocation": "15443:13:47",
5011
5011
  "nodeType": "FunctionDefinition",
5012
5012
  "parameters": {
5013
5013
  "id": 18213,
@@ -5018,10 +5018,10 @@
5018
5018
  "id": 18208,
5019
5019
  "mutability": "mutable",
5020
5020
  "name": "agreementClass",
5021
- "nameLocation": "14746:14:47",
5021
+ "nameLocation": "15483:14:47",
5022
5022
  "nodeType": "VariableDeclaration",
5023
5023
  "scope": 18217,
5024
- "src": "14730:30:47",
5024
+ "src": "15467: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": 17266,
5039
- "src": "14730:15:47"
5039
+ "src": "15467:15:47"
5040
5040
  },
5041
5041
  "referencedDeclaration": 17266,
5042
- "src": "14730:15:47",
5042
+ "src": "15467:15:47",
5043
5043
  "typeDescriptions": {
5044
5044
  "typeIdentifier": "t_contract$_ISuperAgreement_$17266",
5045
5045
  "typeString": "contract ISuperAgreement"
@@ -5052,10 +5052,10 @@
5052
5052
  "id": 18210,
5053
5053
  "mutability": "mutable",
5054
5054
  "name": "callData",
5055
- "nameLocation": "14786:8:47",
5055
+ "nameLocation": "15523:8:47",
5056
5056
  "nodeType": "VariableDeclaration",
5057
5057
  "scope": 18217,
5058
- "src": "14771:23:47",
5058
+ "src": "15508:23:47",
5059
5059
  "stateVariable": false,
5060
5060
  "storageLocation": "calldata",
5061
5061
  "typeDescriptions": {
@@ -5066,7 +5066,7 @@
5066
5066
  "id": 18209,
5067
5067
  "name": "bytes",
5068
5068
  "nodeType": "ElementaryTypeName",
5069
- "src": "14771:5:47",
5069
+ "src": "15508:5:47",
5070
5070
  "typeDescriptions": {
5071
5071
  "typeIdentifier": "t_bytes_storage_ptr",
5072
5072
  "typeString": "bytes"
@@ -5079,10 +5079,10 @@
5079
5079
  "id": 18212,
5080
5080
  "mutability": "mutable",
5081
5081
  "name": "userData",
5082
- "nameLocation": "14820:8:47",
5082
+ "nameLocation": "15557:8:47",
5083
5083
  "nodeType": "VariableDeclaration",
5084
5084
  "scope": 18217,
5085
- "src": "14805:23:47",
5085
+ "src": "15542:23:47",
5086
5086
  "stateVariable": false,
5087
5087
  "storageLocation": "calldata",
5088
5088
  "typeDescriptions": {
@@ -5093,7 +5093,7 @@
5093
5093
  "id": 18211,
5094
5094
  "name": "bytes",
5095
5095
  "nodeType": "ElementaryTypeName",
5096
- "src": "14805:5:47",
5096
+ "src": "15542: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": "14719:116:47"
5105
+ "src": "15456:116:47"
5106
5106
  },
5107
5107
  "returnParameters": {
5108
5108
  "id": 18216,
@@ -5113,10 +5113,10 @@
5113
5113
  "id": 18215,
5114
5114
  "mutability": "mutable",
5115
5115
  "name": "returnedData",
5116
- "nameLocation": "14939:12:47",
5116
+ "nameLocation": "15676:12:47",
5117
5117
  "nodeType": "VariableDeclaration",
5118
5118
  "scope": 18217,
5119
- "src": "14926:25:47",
5119
+ "src": "15663:25:47",
5120
5120
  "stateVariable": false,
5121
5121
  "storageLocation": "memory",
5122
5122
  "typeDescriptions": {
@@ -5127,7 +5127,7 @@
5127
5127
  "id": 18214,
5128
5128
  "name": "bytes",
5129
5129
  "nodeType": "ElementaryTypeName",
5130
- "src": "14926:5:47",
5130
+ "src": "15663: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": "14925:27:47"
5139
+ "src": "15662:27:47"
5140
5140
  },
5141
5141
  "scope": 18319,
5142
- "src": "14697:256:47",
5142
+ "src": "15434:256:47",
5143
5143
  "stateMutability": "nonpayable",
5144
5144
  "virtual": false,
5145
5145
  "visibility": "external"
@@ -5148,7 +5148,7 @@
5148
5148
  "documentation": {
5149
5149
  "id": 18218,
5150
5150
  "nodeType": "StructuredDocumentation",
5151
- "src": "14959:261:47",
5151
+ "src": "15696:261:47",
5152
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."
5153
5153
  },
5154
5154
  "functionSelector": "1e855cf3",
@@ -5157,7 +5157,7 @@
5157
5157
  "kind": "function",
5158
5158
  "modifiers": [],
5159
5159
  "name": "callAppAction",
5160
- "nameLocation": "15234:13:47",
5160
+ "nameLocation": "15971:13:47",
5161
5161
  "nodeType": "FunctionDefinition",
5162
5162
  "parameters": {
5163
5163
  "id": 18224,
@@ -5168,10 +5168,10 @@
5168
5168
  "id": 18221,
5169
5169
  "mutability": "mutable",
5170
5170
  "name": "app",
5171
- "nameLocation": "15267:3:47",
5171
+ "nameLocation": "16004:3:47",
5172
5172
  "nodeType": "VariableDeclaration",
5173
5173
  "scope": 18228,
5174
- "src": "15257:13:47",
5174
+ "src": "15994: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": 17380,
5189
- "src": "15257:9:47"
5189
+ "src": "15994:9:47"
5190
5190
  },
5191
5191
  "referencedDeclaration": 17380,
5192
- "src": "15257:9:47",
5192
+ "src": "15994:9:47",
5193
5193
  "typeDescriptions": {
5194
5194
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
5195
5195
  "typeString": "contract ISuperApp"
@@ -5202,10 +5202,10 @@
5202
5202
  "id": 18223,
5203
5203
  "mutability": "mutable",
5204
5204
  "name": "callData",
5205
- "nameLocation": "15295:8:47",
5205
+ "nameLocation": "16032:8:47",
5206
5206
  "nodeType": "VariableDeclaration",
5207
5207
  "scope": 18228,
5208
- "src": "15280:23:47",
5208
+ "src": "16017:23:47",
5209
5209
  "stateVariable": false,
5210
5210
  "storageLocation": "calldata",
5211
5211
  "typeDescriptions": {
@@ -5216,7 +5216,7 @@
5216
5216
  "id": 18222,
5217
5217
  "name": "bytes",
5218
5218
  "nodeType": "ElementaryTypeName",
5219
- "src": "15280:5:47",
5219
+ "src": "16017: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": "15247:62:47"
5228
+ "src": "15984:62:47"
5229
5229
  },
5230
5230
  "returnParameters": {
5231
5231
  "id": 18227,
@@ -5236,10 +5236,10 @@
5236
5236
  "id": 18226,
5237
5237
  "mutability": "mutable",
5238
5238
  "name": "returnedData",
5239
- "nameLocation": "15439:12:47",
5239
+ "nameLocation": "16176:12:47",
5240
5240
  "nodeType": "VariableDeclaration",
5241
5241
  "scope": 18228,
5242
- "src": "15426:25:47",
5242
+ "src": "16163:25:47",
5243
5243
  "stateVariable": false,
5244
5244
  "storageLocation": "memory",
5245
5245
  "typeDescriptions": {
@@ -5250,7 +5250,7 @@
5250
5250
  "id": 18225,
5251
5251
  "name": "bytes",
5252
5252
  "nodeType": "ElementaryTypeName",
5253
- "src": "15426:5:47",
5253
+ "src": "16163: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": "15425:27:47"
5262
+ "src": "16162:27:47"
5263
5263
  },
5264
5264
  "scope": 18319,
5265
- "src": "15225:228:47",
5265
+ "src": "15962:228:47",
5266
5266
  "stateMutability": "nonpayable",
5267
5267
  "virtual": false,
5268
5268
  "visibility": "external"
@@ -5276,10 +5276,10 @@
5276
5276
  "id": 18230,
5277
5277
  "mutability": "mutable",
5278
5278
  "name": "appLevel",
5279
- "nameLocation": "16582:8:47",
5279
+ "nameLocation": "17319:8:47",
5280
5280
  "nodeType": "VariableDeclaration",
5281
5281
  "scope": 18252,
5282
- "src": "16576:14:47",
5282
+ "src": "17313:14:47",
5283
5283
  "stateVariable": false,
5284
5284
  "storageLocation": "default",
5285
5285
  "typeDescriptions": {
@@ -5290,7 +5290,7 @@
5290
5290
  "id": 18229,
5291
5291
  "name": "uint8",
5292
5292
  "nodeType": "ElementaryTypeName",
5293
- "src": "16576:5:47",
5293
+ "src": "17313:5:47",
5294
5294
  "typeDescriptions": {
5295
5295
  "typeIdentifier": "t_uint8",
5296
5296
  "typeString": "uint8"
@@ -5303,10 +5303,10 @@
5303
5303
  "id": 18232,
5304
5304
  "mutability": "mutable",
5305
5305
  "name": "callType",
5306
- "nameLocation": "16630:8:47",
5306
+ "nameLocation": "17367:8:47",
5307
5307
  "nodeType": "VariableDeclaration",
5308
5308
  "scope": 18252,
5309
- "src": "16624:14:47",
5309
+ "src": "17361:14:47",
5310
5310
  "stateVariable": false,
5311
5311
  "storageLocation": "default",
5312
5312
  "typeDescriptions": {
@@ -5317,7 +5317,7 @@
5317
5317
  "id": 18231,
5318
5318
  "name": "uint8",
5319
5319
  "nodeType": "ElementaryTypeName",
5320
- "src": "16624:5:47",
5320
+ "src": "17361:5:47",
5321
5321
  "typeDescriptions": {
5322
5322
  "typeIdentifier": "t_uint8",
5323
5323
  "typeString": "uint8"
@@ -5330,10 +5330,10 @@
5330
5330
  "id": 18234,
5331
5331
  "mutability": "mutable",
5332
5332
  "name": "timestamp",
5333
- "nameLocation": "16688:9:47",
5333
+ "nameLocation": "17425:9:47",
5334
5334
  "nodeType": "VariableDeclaration",
5335
5335
  "scope": 18252,
5336
- "src": "16680:17:47",
5336
+ "src": "17417:17:47",
5337
5337
  "stateVariable": false,
5338
5338
  "storageLocation": "default",
5339
5339
  "typeDescriptions": {
@@ -5344,7 +5344,7 @@
5344
5344
  "id": 18233,
5345
5345
  "name": "uint256",
5346
5346
  "nodeType": "ElementaryTypeName",
5347
- "src": "16680:7:47",
5347
+ "src": "17417:7:47",
5348
5348
  "typeDescriptions": {
5349
5349
  "typeIdentifier": "t_uint256",
5350
5350
  "typeString": "uint256"
@@ -5357,10 +5357,10 @@
5357
5357
  "id": 18236,
5358
5358
  "mutability": "mutable",
5359
5359
  "name": "msgSender",
5360
- "nameLocation": "16767:9:47",
5360
+ "nameLocation": "17504:9:47",
5361
5361
  "nodeType": "VariableDeclaration",
5362
5362
  "scope": 18252,
5363
- "src": "16759:17:47",
5363
+ "src": "17496:17:47",
5364
5364
  "stateVariable": false,
5365
5365
  "storageLocation": "default",
5366
5366
  "typeDescriptions": {
@@ -5371,7 +5371,7 @@
5371
5371
  "id": 18235,
5372
5372
  "name": "address",
5373
5373
  "nodeType": "ElementaryTypeName",
5374
- "src": "16759:7:47",
5374
+ "src": "17496:7:47",
5375
5375
  "stateMutability": "nonpayable",
5376
5376
  "typeDescriptions": {
5377
5377
  "typeIdentifier": "t_address",
@@ -5385,10 +5385,10 @@
5385
5385
  "id": 18238,
5386
5386
  "mutability": "mutable",
5387
5387
  "name": "agreementSelector",
5388
- "nameLocation": "16932:17:47",
5388
+ "nameLocation": "17669:17:47",
5389
5389
  "nodeType": "VariableDeclaration",
5390
5390
  "scope": 18252,
5391
- "src": "16925:24:47",
5391
+ "src": "17662:24:47",
5392
5392
  "stateVariable": false,
5393
5393
  "storageLocation": "default",
5394
5394
  "typeDescriptions": {
@@ -5399,7 +5399,7 @@
5399
5399
  "id": 18237,
5400
5400
  "name": "bytes4",
5401
5401
  "nodeType": "ElementaryTypeName",
5402
- "src": "16925:6:47",
5402
+ "src": "17662:6:47",
5403
5403
  "typeDescriptions": {
5404
5404
  "typeIdentifier": "t_bytes4",
5405
5405
  "typeString": "bytes4"
@@ -5412,10 +5412,10 @@
5412
5412
  "id": 18240,
5413
5413
  "mutability": "mutable",
5414
5414
  "name": "userData",
5415
- "nameLocation": "17013:8:47",
5415
+ "nameLocation": "17750:8:47",
5416
5416
  "nodeType": "VariableDeclaration",
5417
5417
  "scope": 18252,
5418
- "src": "17007:14:47",
5418
+ "src": "17744:14:47",
5419
5419
  "stateVariable": false,
5420
5420
  "storageLocation": "default",
5421
5421
  "typeDescriptions": {
@@ -5426,7 +5426,7 @@
5426
5426
  "id": 18239,
5427
5427
  "name": "bytes",
5428
5428
  "nodeType": "ElementaryTypeName",
5429
- "src": "17007:5:47",
5429
+ "src": "17744:5:47",
5430
5430
  "typeDescriptions": {
5431
5431
  "typeIdentifier": "t_bytes_storage_ptr",
5432
5432
  "typeString": "bytes"
@@ -5439,10 +5439,10 @@
5439
5439
  "id": 18242,
5440
5440
  "mutability": "mutable",
5441
5441
  "name": "appAllowanceGranted",
5442
- "nameLocation": "17118:19:47",
5442
+ "nameLocation": "17855:19:47",
5443
5443
  "nodeType": "VariableDeclaration",
5444
5444
  "scope": 18252,
5445
- "src": "17110:27:47",
5445
+ "src": "17847:27:47",
5446
5446
  "stateVariable": false,
5447
5447
  "storageLocation": "default",
5448
5448
  "typeDescriptions": {
@@ -5453,7 +5453,7 @@
5453
5453
  "id": 18241,
5454
5454
  "name": "uint256",
5455
5455
  "nodeType": "ElementaryTypeName",
5456
- "src": "17110:7:47",
5456
+ "src": "17847:7:47",
5457
5457
  "typeDescriptions": {
5458
5458
  "typeIdentifier": "t_uint256",
5459
5459
  "typeString": "uint256"
@@ -5466,10 +5466,10 @@
5466
5466
  "id": 18244,
5467
5467
  "mutability": "mutable",
5468
5468
  "name": "appAllowanceWanted",
5469
- "nameLocation": "17207:18:47",
5469
+ "nameLocation": "17944:18:47",
5470
5470
  "nodeType": "VariableDeclaration",
5471
5471
  "scope": 18252,
5472
- "src": "17199:26:47",
5472
+ "src": "17936:26:47",
5473
5473
  "stateVariable": false,
5474
5474
  "storageLocation": "default",
5475
5475
  "typeDescriptions": {
@@ -5480,7 +5480,7 @@
5480
5480
  "id": 18243,
5481
5481
  "name": "uint256",
5482
5482
  "nodeType": "ElementaryTypeName",
5483
- "src": "17199:7:47",
5483
+ "src": "17936:7:47",
5484
5484
  "typeDescriptions": {
5485
5485
  "typeIdentifier": "t_uint256",
5486
5486
  "typeString": "uint256"
@@ -5493,10 +5493,10 @@
5493
5493
  "id": 18246,
5494
5494
  "mutability": "mutable",
5495
5495
  "name": "appAllowanceUsed",
5496
- "nameLocation": "17322:16:47",
5496
+ "nameLocation": "18059:16:47",
5497
5497
  "nodeType": "VariableDeclaration",
5498
5498
  "scope": 18252,
5499
- "src": "17315:23:47",
5499
+ "src": "18052:23:47",
5500
5500
  "stateVariable": false,
5501
5501
  "storageLocation": "default",
5502
5502
  "typeDescriptions": {
@@ -5507,7 +5507,7 @@
5507
5507
  "id": 18245,
5508
5508
  "name": "int256",
5509
5509
  "nodeType": "ElementaryTypeName",
5510
- "src": "17315:6:47",
5510
+ "src": "18052:6:47",
5511
5511
  "typeDescriptions": {
5512
5512
  "typeIdentifier": "t_int256",
5513
5513
  "typeString": "int256"
@@ -5520,10 +5520,10 @@
5520
5520
  "id": 18248,
5521
5521
  "mutability": "mutable",
5522
5522
  "name": "appAddress",
5523
- "nameLocation": "17379:10:47",
5523
+ "nameLocation": "18116:10:47",
5524
5524
  "nodeType": "VariableDeclaration",
5525
5525
  "scope": 18252,
5526
- "src": "17371:18:47",
5526
+ "src": "18108:18:47",
5527
5527
  "stateVariable": false,
5528
5528
  "storageLocation": "default",
5529
5529
  "typeDescriptions": {
@@ -5534,7 +5534,7 @@
5534
5534
  "id": 18247,
5535
5535
  "name": "address",
5536
5536
  "nodeType": "ElementaryTypeName",
5537
- "src": "17371:7:47",
5537
+ "src": "18108:7:47",
5538
5538
  "stateMutability": "nonpayable",
5539
5539
  "typeDescriptions": {
5540
5540
  "typeIdentifier": "t_address",
@@ -5548,10 +5548,10 @@
5548
5548
  "id": 18251,
5549
5549
  "mutability": "mutable",
5550
5550
  "name": "appAllowanceToken",
5551
- "nameLocation": "17456:17:47",
5551
+ "nameLocation": "18193:17:47",
5552
5552
  "nodeType": "VariableDeclaration",
5553
5553
  "scope": 18252,
5554
- "src": "17439:34:47",
5554
+ "src": "18176: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": 18716,
5569
- "src": "17439:16:47"
5569
+ "src": "18176:16:47"
5570
5570
  },
5571
5571
  "referencedDeclaration": 18716,
5572
- "src": "17439:16:47",
5572
+ "src": "18176:16:47",
5573
5573
  "typeDescriptions": {
5574
5574
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18716",
5575
5575
  "typeString": "contract ISuperfluidToken"
@@ -5579,10 +5579,10 @@
5579
5579
  }
5580
5580
  ],
5581
5581
  "name": "Context",
5582
- "nameLocation": "16486:7:47",
5582
+ "nameLocation": "17223:7:47",
5583
5583
  "nodeType": "StructDefinition",
5584
5584
  "scope": 18319,
5585
- "src": "16479:1001:47",
5585
+ "src": "17216: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": "17495:24:47",
5595
+ "nameLocation": "18232:24:47",
5596
5596
  "nodeType": "FunctionDefinition",
5597
5597
  "parameters": {
5598
5598
  "id": 18262,
@@ -5603,10 +5603,10 @@
5603
5603
  "id": 18255,
5604
5604
  "mutability": "mutable",
5605
5605
  "name": "agreementClass",
5606
- "nameLocation": "17545:14:47",
5606
+ "nameLocation": "18282:14:47",
5607
5607
  "nodeType": "VariableDeclaration",
5608
5608
  "scope": 18268,
5609
- "src": "17529:30:47",
5609
+ "src": "18266: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": 17266,
5624
- "src": "17529:15:47"
5624
+ "src": "18266:15:47"
5625
5625
  },
5626
5626
  "referencedDeclaration": 17266,
5627
- "src": "17529:15:47",
5627
+ "src": "18266:15:47",
5628
5628
  "typeDescriptions": {
5629
5629
  "typeIdentifier": "t_contract$_ISuperAgreement_$17266",
5630
5630
  "typeString": "contract ISuperAgreement"
@@ -5637,10 +5637,10 @@
5637
5637
  "id": 18257,
5638
5638
  "mutability": "mutable",
5639
5639
  "name": "callData",
5640
- "nameLocation": "17584:8:47",
5640
+ "nameLocation": "18321:8:47",
5641
5641
  "nodeType": "VariableDeclaration",
5642
5642
  "scope": 18268,
5643
- "src": "17569:23:47",
5643
+ "src": "18306:23:47",
5644
5644
  "stateVariable": false,
5645
5645
  "storageLocation": "calldata",
5646
5646
  "typeDescriptions": {
@@ -5651,7 +5651,7 @@
5651
5651
  "id": 18256,
5652
5652
  "name": "bytes",
5653
5653
  "nodeType": "ElementaryTypeName",
5654
- "src": "17569:5:47",
5654
+ "src": "18306:5:47",
5655
5655
  "typeDescriptions": {
5656
5656
  "typeIdentifier": "t_bytes_storage_ptr",
5657
5657
  "typeString": "bytes"
@@ -5664,10 +5664,10 @@
5664
5664
  "id": 18259,
5665
5665
  "mutability": "mutable",
5666
5666
  "name": "userData",
5667
- "nameLocation": "17617:8:47",
5667
+ "nameLocation": "18354:8:47",
5668
5668
  "nodeType": "VariableDeclaration",
5669
5669
  "scope": 18268,
5670
- "src": "17602:23:47",
5670
+ "src": "18339:23:47",
5671
5671
  "stateVariable": false,
5672
5672
  "storageLocation": "calldata",
5673
5673
  "typeDescriptions": {
@@ -5678,7 +5678,7 @@
5678
5678
  "id": 18258,
5679
5679
  "name": "bytes",
5680
5680
  "nodeType": "ElementaryTypeName",
5681
- "src": "17602:5:47",
5681
+ "src": "18339:5:47",
5682
5682
  "typeDescriptions": {
5683
5683
  "typeIdentifier": "t_bytes_storage_ptr",
5684
5684
  "typeString": "bytes"
@@ -5691,10 +5691,10 @@
5691
5691
  "id": 18261,
5692
5692
  "mutability": "mutable",
5693
5693
  "name": "ctx",
5694
- "nameLocation": "17650:3:47",
5694
+ "nameLocation": "18387:3:47",
5695
5695
  "nodeType": "VariableDeclaration",
5696
5696
  "scope": 18268,
5697
- "src": "17635:18:47",
5697
+ "src": "18372:18:47",
5698
5698
  "stateVariable": false,
5699
5699
  "storageLocation": "calldata",
5700
5700
  "typeDescriptions": {
@@ -5705,7 +5705,7 @@
5705
5705
  "id": 18260,
5706
5706
  "name": "bytes",
5707
5707
  "nodeType": "ElementaryTypeName",
5708
- "src": "17635:5:47",
5708
+ "src": "18372: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": "17519:140:47"
5717
+ "src": "18256:140:47"
5718
5718
  },
5719
5719
  "returnParameters": {
5720
5720
  "id": 18267,
@@ -5725,10 +5725,10 @@
5725
5725
  "id": 18264,
5726
5726
  "mutability": "mutable",
5727
5727
  "name": "newCtx",
5728
- "nameLocation": "17780:6:47",
5728
+ "nameLocation": "18517:6:47",
5729
5729
  "nodeType": "VariableDeclaration",
5730
5730
  "scope": 18268,
5731
- "src": "17767:19:47",
5731
+ "src": "18504:19:47",
5732
5732
  "stateVariable": false,
5733
5733
  "storageLocation": "memory",
5734
5734
  "typeDescriptions": {
@@ -5739,7 +5739,7 @@
5739
5739
  "id": 18263,
5740
5740
  "name": "bytes",
5741
5741
  "nodeType": "ElementaryTypeName",
5742
- "src": "17767:5:47",
5742
+ "src": "18504:5:47",
5743
5743
  "typeDescriptions": {
5744
5744
  "typeIdentifier": "t_bytes_storage_ptr",
5745
5745
  "typeString": "bytes"
@@ -5752,10 +5752,10 @@
5752
5752
  "id": 18266,
5753
5753
  "mutability": "mutable",
5754
5754
  "name": "returnedData",
5755
- "nameLocation": "17801:12:47",
5755
+ "nameLocation": "18538:12:47",
5756
5756
  "nodeType": "VariableDeclaration",
5757
5757
  "scope": 18268,
5758
- "src": "17788:25:47",
5758
+ "src": "18525:25:47",
5759
5759
  "stateVariable": false,
5760
5760
  "storageLocation": "memory",
5761
5761
  "typeDescriptions": {
@@ -5766,7 +5766,7 @@
5766
5766
  "id": 18265,
5767
5767
  "name": "bytes",
5768
5768
  "nodeType": "ElementaryTypeName",
5769
- "src": "17788:5:47",
5769
+ "src": "18525: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": "17766:48:47"
5778
+ "src": "18503:48:47"
5779
5779
  },
5780
5780
  "scope": 18319,
5781
- "src": "17486:329:47",
5781
+ "src": "18223: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": "17830:24:47",
5793
+ "nameLocation": "18567:24:47",
5794
5794
  "nodeType": "FunctionDefinition",
5795
5795
  "parameters": {
5796
5796
  "id": 18276,
@@ -5801,10 +5801,10 @@
5801
5801
  "id": 18271,
5802
5802
  "mutability": "mutable",
5803
5803
  "name": "app",
5804
- "nameLocation": "17874:3:47",
5804
+ "nameLocation": "18611:3:47",
5805
5805
  "nodeType": "VariableDeclaration",
5806
5806
  "scope": 18280,
5807
- "src": "17864:13:47",
5807
+ "src": "18601: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": 17380,
5822
- "src": "17864:9:47"
5822
+ "src": "18601:9:47"
5823
5823
  },
5824
5824
  "referencedDeclaration": 17380,
5825
- "src": "17864:9:47",
5825
+ "src": "18601:9:47",
5826
5826
  "typeDescriptions": {
5827
5827
  "typeIdentifier": "t_contract$_ISuperApp_$17380",
5828
5828
  "typeString": "contract ISuperApp"
@@ -5835,10 +5835,10 @@
5835
5835
  "id": 18273,
5836
5836
  "mutability": "mutable",
5837
5837
  "name": "callData",
5838
- "nameLocation": "17902:8:47",
5838
+ "nameLocation": "18639:8:47",
5839
5839
  "nodeType": "VariableDeclaration",
5840
5840
  "scope": 18280,
5841
- "src": "17887:23:47",
5841
+ "src": "18624:23:47",
5842
5842
  "stateVariable": false,
5843
5843
  "storageLocation": "calldata",
5844
5844
  "typeDescriptions": {
@@ -5849,7 +5849,7 @@
5849
5849
  "id": 18272,
5850
5850
  "name": "bytes",
5851
5851
  "nodeType": "ElementaryTypeName",
5852
- "src": "17887:5:47",
5852
+ "src": "18624:5:47",
5853
5853
  "typeDescriptions": {
5854
5854
  "typeIdentifier": "t_bytes_storage_ptr",
5855
5855
  "typeString": "bytes"
@@ -5862,10 +5862,10 @@
5862
5862
  "id": 18275,
5863
5863
  "mutability": "mutable",
5864
5864
  "name": "ctx",
5865
- "nameLocation": "17935:3:47",
5865
+ "nameLocation": "18672:3:47",
5866
5866
  "nodeType": "VariableDeclaration",
5867
5867
  "scope": 18280,
5868
- "src": "17920:18:47",
5868
+ "src": "18657:18:47",
5869
5869
  "stateVariable": false,
5870
5870
  "storageLocation": "calldata",
5871
5871
  "typeDescriptions": {
@@ -5876,7 +5876,7 @@
5876
5876
  "id": 18274,
5877
5877
  "name": "bytes",
5878
5878
  "nodeType": "ElementaryTypeName",
5879
- "src": "17920:5:47",
5879
+ "src": "18657: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": "17854:90:47"
5888
+ "src": "18591:90:47"
5889
5889
  },
5890
5890
  "returnParameters": {
5891
5891
  "id": 18279,
@@ -5896,10 +5896,10 @@
5896
5896
  "id": 18278,
5897
5897
  "mutability": "mutable",
5898
5898
  "name": "newCtx",
5899
- "nameLocation": "18052:6:47",
5899
+ "nameLocation": "18789:6:47",
5900
5900
  "nodeType": "VariableDeclaration",
5901
5901
  "scope": 18280,
5902
- "src": "18039:19:47",
5902
+ "src": "18776:19:47",
5903
5903
  "stateVariable": false,
5904
5904
  "storageLocation": "memory",
5905
5905
  "typeDescriptions": {
@@ -5910,7 +5910,7 @@
5910
5910
  "id": 18277,
5911
5911
  "name": "bytes",
5912
5912
  "nodeType": "ElementaryTypeName",
5913
- "src": "18039:5:47",
5913
+ "src": "18776: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": "18038:21:47"
5922
+ "src": "18775:21:47"
5923
5923
  },
5924
5924
  "scope": 18319,
5925
- "src": "17821:239:47",
5925
+ "src": "18558: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": "18075:9:47",
5937
+ "nameLocation": "18812:9:47",
5938
5938
  "nodeType": "FunctionDefinition",
5939
5939
  "parameters": {
5940
5940
  "id": 18283,
@@ -5945,10 +5945,10 @@
5945
5945
  "id": 18282,
5946
5946
  "mutability": "mutable",
5947
5947
  "name": "ctx",
5948
- "nameLocation": "18100:3:47",
5948
+ "nameLocation": "18837:3:47",
5949
5949
  "nodeType": "VariableDeclaration",
5950
5950
  "scope": 18288,
5951
- "src": "18085:18:47",
5951
+ "src": "18822:18:47",
5952
5952
  "stateVariable": false,
5953
5953
  "storageLocation": "calldata",
5954
5954
  "typeDescriptions": {
@@ -5959,7 +5959,7 @@
5959
5959
  "id": 18281,
5960
5960
  "name": "bytes",
5961
5961
  "nodeType": "ElementaryTypeName",
5962
- "src": "18085:5:47",
5962
+ "src": "18822: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": "18084:20:47"
5971
+ "src": "18821:20:47"
5972
5972
  },
5973
5973
  "returnParameters": {
5974
5974
  "id": 18287,
@@ -5979,10 +5979,10 @@
5979
5979
  "id": 18286,
5980
5980
  "mutability": "mutable",
5981
5981
  "name": "context",
5982
- "nameLocation": "18159:7:47",
5982
+ "nameLocation": "18896:7:47",
5983
5983
  "nodeType": "VariableDeclaration",
5984
5984
  "scope": 18288,
5985
- "src": "18144:22:47",
5985
+ "src": "18881: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": 18252,
6000
- "src": "18144:7:47"
6000
+ "src": "18881:7:47"
6001
6001
  },
6002
6002
  "referencedDeclaration": 18252,
6003
- "src": "18144:7:47",
6003
+ "src": "18881:7:47",
6004
6004
  "typeDescriptions": {
6005
6005
  "typeIdentifier": "t_struct$_Context_$18252_storage_ptr",
6006
6006
  "typeString": "struct ISuperfluid.Context"
@@ -6009,10 +6009,10 @@
6009
6009
  "visibility": "internal"
6010
6010
  }
6011
6011
  ],
6012
- "src": "18143:24:47"
6012
+ "src": "18880:24:47"
6013
6013
  },
6014
6014
  "scope": 18319,
6015
- "src": "18066:102:47",
6015
+ "src": "18803: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": "18183:10:47",
6027
+ "nameLocation": "18920:10:47",
6028
6028
  "nodeType": "FunctionDefinition",
6029
6029
  "parameters": {
6030
6030
  "id": 18291,
@@ -6035,10 +6035,10 @@
6035
6035
  "id": 18290,
6036
6036
  "mutability": "mutable",
6037
6037
  "name": "ctx",
6038
- "nameLocation": "18209:3:47",
6038
+ "nameLocation": "18946:3:47",
6039
6039
  "nodeType": "VariableDeclaration",
6040
6040
  "scope": 18295,
6041
- "src": "18194:18:47",
6041
+ "src": "18931:18:47",
6042
6042
  "stateVariable": false,
6043
6043
  "storageLocation": "calldata",
6044
6044
  "typeDescriptions": {
@@ -6049,7 +6049,7 @@
6049
6049
  "id": 18289,
6050
6050
  "name": "bytes",
6051
6051
  "nodeType": "ElementaryTypeName",
6052
- "src": "18194:5:47",
6052
+ "src": "18931: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": "18193:20:47"
6061
+ "src": "18930:20:47"
6062
6062
  },
6063
6063
  "returnParameters": {
6064
6064
  "id": 18294,
@@ -6072,7 +6072,7 @@
6072
6072
  "nameLocation": "-1:-1:-1",
6073
6073
  "nodeType": "VariableDeclaration",
6074
6074
  "scope": 18295,
6075
- "src": "18237:4:47",
6075
+ "src": "18974:4:47",
6076
6076
  "stateVariable": false,
6077
6077
  "storageLocation": "default",
6078
6078
  "typeDescriptions": {
@@ -6083,7 +6083,7 @@
6083
6083
  "id": 18292,
6084
6084
  "name": "bool",
6085
6085
  "nodeType": "ElementaryTypeName",
6086
- "src": "18237:4:47",
6086
+ "src": "18974: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": "18236:6:47"
6095
+ "src": "18973:6:47"
6096
6096
  },
6097
6097
  "scope": 18319,
6098
- "src": "18174:69:47",
6098
+ "src": "18911:69:47",
6099
6099
  "stateMutability": "view",
6100
6100
  "virtual": false,
6101
6101
  "visibility": "external"
@@ -6109,10 +6109,10 @@
6109
6109
  "id": 18297,
6110
6110
  "mutability": "mutable",
6111
6111
  "name": "operationType",
6112
- "nameLocation": "18580:13:47",
6112
+ "nameLocation": "19317:13:47",
6113
6113
  "nodeType": "VariableDeclaration",
6114
6114
  "scope": 18302,
6115
- "src": "18573:20:47",
6115
+ "src": "19310:20:47",
6116
6116
  "stateVariable": false,
6117
6117
  "storageLocation": "default",
6118
6118
  "typeDescriptions": {
@@ -6123,7 +6123,7 @@
6123
6123
  "id": 18296,
6124
6124
  "name": "uint32",
6125
6125
  "nodeType": "ElementaryTypeName",
6126
- "src": "18573:6:47",
6126
+ "src": "19310:6:47",
6127
6127
  "typeDescriptions": {
6128
6128
  "typeIdentifier": "t_uint32",
6129
6129
  "typeString": "uint32"
@@ -6136,10 +6136,10 @@
6136
6136
  "id": 18299,
6137
6137
  "mutability": "mutable",
6138
6138
  "name": "target",
6139
- "nameLocation": "18639:6:47",
6139
+ "nameLocation": "19376:6:47",
6140
6140
  "nodeType": "VariableDeclaration",
6141
6141
  "scope": 18302,
6142
- "src": "18631:14:47",
6142
+ "src": "19368:14:47",
6143
6143
  "stateVariable": false,
6144
6144
  "storageLocation": "default",
6145
6145
  "typeDescriptions": {
@@ -6150,7 +6150,7 @@
6150
6150
  "id": 18298,
6151
6151
  "name": "address",
6152
6152
  "nodeType": "ElementaryTypeName",
6153
- "src": "18631:7:47",
6153
+ "src": "19368:7:47",
6154
6154
  "stateMutability": "nonpayable",
6155
6155
  "typeDescriptions": {
6156
6156
  "typeIdentifier": "t_address",
@@ -6164,10 +6164,10 @@
6164
6164
  "id": 18301,
6165
6165
  "mutability": "mutable",
6166
6166
  "name": "data",
6167
- "nameLocation": "18703:4:47",
6167
+ "nameLocation": "19440:4:47",
6168
6168
  "nodeType": "VariableDeclaration",
6169
6169
  "scope": 18302,
6170
- "src": "18697:10:47",
6170
+ "src": "19434:10:47",
6171
6171
  "stateVariable": false,
6172
6172
  "storageLocation": "default",
6173
6173
  "typeDescriptions": {
@@ -6178,7 +6178,7 @@
6178
6178
  "id": 18300,
6179
6179
  "name": "bytes",
6180
6180
  "nodeType": "ElementaryTypeName",
6181
- "src": "18697:5:47",
6181
+ "src": "19434: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": "18482:9:47",
6191
+ "nameLocation": "19219:9:47",
6192
6192
  "nodeType": "StructDefinition",
6193
6193
  "scope": 18319,
6194
- "src": "18475:239:47",
6194
+ "src": "19212:239:47",
6195
6195
  "visibility": "public"
6196
6196
  },
6197
6197
  {
6198
6198
  "documentation": {
6199
6199
  "id": 18303,
6200
6200
  "nodeType": "StructuredDocumentation",
6201
- "src": "18720:94:47",
6201
+ "src": "19457: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": "18828:9:47",
6210
+ "nameLocation": "19565:9:47",
6211
6211
  "nodeType": "FunctionDefinition",
6212
6212
  "parameters": {
6213
6213
  "id": 18308,
@@ -6218,10 +6218,10 @@
6218
6218
  "id": 18307,
6219
6219
  "mutability": "mutable",
6220
6220
  "name": "operations",
6221
- "nameLocation": "18857:10:47",
6221
+ "nameLocation": "19594:10:47",
6222
6222
  "nodeType": "VariableDeclaration",
6223
6223
  "scope": 18310,
6224
- "src": "18838:29:47",
6224
+ "src": "19575: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": 18302,
6240
- "src": "18838:9:47"
6240
+ "src": "19575:9:47"
6241
6241
  },
6242
6242
  "referencedDeclaration": 18302,
6243
- "src": "18838:9:47",
6243
+ "src": "19575:9:47",
6244
6244
  "typeDescriptions": {
6245
6245
  "typeIdentifier": "t_struct$_Operation_$18302_storage_ptr",
6246
6246
  "typeString": "struct ISuperfluid.Operation"
@@ -6248,7 +6248,7 @@
6248
6248
  },
6249
6249
  "id": 18306,
6250
6250
  "nodeType": "ArrayTypeName",
6251
- "src": "18838:11:47",
6251
+ "src": "19575:11:47",
6252
6252
  "typeDescriptions": {
6253
6253
  "typeIdentifier": "t_array$_t_struct$_Operation_$18302_storage_$dyn_storage_ptr",
6254
6254
  "typeString": "struct ISuperfluid.Operation[]"
@@ -6257,16 +6257,16 @@
6257
6257
  "visibility": "internal"
6258
6258
  }
6259
6259
  ],
6260
- "src": "18837:31:47"
6260
+ "src": "19574:31:47"
6261
6261
  },
6262
6262
  "returnParameters": {
6263
6263
  "id": 18309,
6264
6264
  "nodeType": "ParameterList",
6265
6265
  "parameters": [],
6266
- "src": "18877:0:47"
6266
+ "src": "19614:0:47"
6267
6267
  },
6268
6268
  "scope": 18319,
6269
- "src": "18819:59:47",
6269
+ "src": "19556:59:47",
6270
6270
  "stateMutability": "nonpayable",
6271
6271
  "virtual": false,
6272
6272
  "visibility": "external"
@@ -6275,7 +6275,7 @@
6275
6275
  "documentation": {
6276
6276
  "id": 18311,
6277
6277
  "nodeType": "StructuredDocumentation",
6278
- "src": "18884:128:47",
6278
+ "src": "19621: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": "19026:16:47",
6287
+ "nameLocation": "19763:16:47",
6288
6288
  "nodeType": "FunctionDefinition",
6289
6289
  "parameters": {
6290
6290
  "id": 18316,
@@ -6295,10 +6295,10 @@
6295
6295
  "id": 18315,
6296
6296
  "mutability": "mutable",
6297
6297
  "name": "operations",
6298
- "nameLocation": "19062:10:47",
6298
+ "nameLocation": "19799:10:47",
6299
6299
  "nodeType": "VariableDeclaration",
6300
6300
  "scope": 18318,
6301
- "src": "19043:29:47",
6301
+ "src": "19780: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": 18302,
6317
- "src": "19043:9:47"
6317
+ "src": "19780:9:47"
6318
6318
  },
6319
6319
  "referencedDeclaration": 18302,
6320
- "src": "19043:9:47",
6320
+ "src": "19780:9:47",
6321
6321
  "typeDescriptions": {
6322
6322
  "typeIdentifier": "t_struct$_Operation_$18302_storage_ptr",
6323
6323
  "typeString": "struct ISuperfluid.Operation"
@@ -6325,7 +6325,7 @@
6325
6325
  },
6326
6326
  "id": 18314,
6327
6327
  "nodeType": "ArrayTypeName",
6328
- "src": "19043:11:47",
6328
+ "src": "19780:11:47",
6329
6329
  "typeDescriptions": {
6330
6330
  "typeIdentifier": "t_array$_t_struct$_Operation_$18302_storage_$dyn_storage_ptr",
6331
6331
  "typeString": "struct ISuperfluid.Operation[]"
@@ -6334,27 +6334,27 @@
6334
6334
  "visibility": "internal"
6335
6335
  }
6336
6336
  ],
6337
- "src": "19042:31:47"
6337
+ "src": "19779:31:47"
6338
6338
  },
6339
6339
  "returnParameters": {
6340
6340
  "id": 18317,
6341
6341
  "nodeType": "ParameterList",
6342
6342
  "parameters": [],
6343
- "src": "19082:0:47"
6343
+ "src": "19819:0:47"
6344
6344
  },
6345
6345
  "scope": 18319,
6346
- "src": "19017:66:47",
6346
+ "src": "19754:66:47",
6347
6347
  "stateMutability": "nonpayable",
6348
6348
  "virtual": false,
6349
6349
  "visibility": "external"
6350
6350
  }
6351
6351
  ],
6352
6352
  "scope": 18320,
6353
- "src": "1121:19069:47",
6353
+ "src": "1121:19806:47",
6354
6354
  "usedErrors": []
6355
6355
  }
6356
6356
  ],
6357
- "src": "35:20156:47"
6357
+ "src": "35:20893:47"
6358
6358
  },
6359
6359
  "compiler": {
6360
6360
  "name": "solc",
@@ -6362,7 +6362,7 @@
6362
6362
  },
6363
6363
  "networks": {},
6364
6364
  "schemaVersion": "3.4.7",
6365
- "updatedAt": "2022-05-16T08:18:24.802Z",
6365
+ "updatedAt": "2022-05-19T14:37:34.023Z",
6366
6366
  "devdoc": {
6367
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.",
6368
6368
  "events": {
@@ -6588,22 +6588,23 @@
6588
6588
  }
6589
6589
  },
6590
6590
  "registerApp(uint256)": {
6591
- "details": "Message sender declares it as a super app",
6591
+ "custom:deprecated": "you should use `registerAppWithKey` or `registerAppByFactory` instead, because app registration is currently governance permissioned on mainnets.",
6592
+ "details": "Message sender (must be a contract) declares itself as a super app.",
6592
6593
  "params": {
6593
6594
  "configWord": "The super app manifest configuration, flags are defined in `SuperAppDefinitions`"
6594
6595
  }
6595
6596
  },
6596
6597
  "registerAppByFactory(address,uint256)": {
6597
- "details": "Message sender declares app as a super app",
6598
+ "details": "Message sender (must be a contract) declares app as a super app",
6598
6599
  "params": {
6599
- "configWord": "The super app manifest configuration, flags are defined in `SuperAppDefinitions` NOTE: only factory contracts authorized by governance can register super apps"
6600
+ "configWord": "The super app manifest configuration, flags are defined in `SuperAppDefinitions`"
6600
6601
  }
6601
6602
  },
6602
6603
  "registerAppWithKey(uint256,string)": {
6603
- "details": "Message sender declares it as a super app, using a registration key",
6604
+ "details": "Message sender declares itself as a super app.",
6604
6605
  "params": {
6605
6606
  "configWord": "The super app manifest configuration, flags are defined in `SuperAppDefinitions`",
6606
- "registrationKey": "The registration key issued by the governance"
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."
6607
6608
  }
6608
6609
  },
6609
6610
  "removeFromAgreementClassesBitmap(uint256,bytes32)": {
@@ -6657,6 +6658,12 @@
6657
6658
  "isAgreementTypeListed(bytes32)": {
6658
6659
  "notice": "Check if the agreement type is whitelisted"
6659
6660
  },
6661
+ "registerAppByFactory(address,uint256)": {
6662
+ "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
+ },
6664
+ "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."
6666
+ },
6660
6667
  "removeFromAgreementClassesBitmap(uint256,bytes32)": {
6661
6668
  "notice": "Create a new bitmask by removing a agreement class from it"
6662
6669
  },