@superfluid-finance/ethereum-contracts 1.2.3-dev.f94fdbb.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/build/contracts/AccessControl.json +3 -3
  2. package/build/contracts/AccessControlEnumerable.json +3 -3
  3. package/build/contracts/Address.json +5 -5
  4. package/build/contracts/AgreementBase.json +13 -13
  5. package/build/contracts/AgreementLibrary.json +7 -7
  6. package/build/contracts/BaseRelayRecipient.json +5 -5
  7. package/build/contracts/BatchLiquidator.json +179 -179
  8. package/build/contracts/BatchOperation.json +5 -5
  9. package/build/contracts/CFAv1Library.json +5 -5
  10. package/build/contracts/CallUtils.json +7 -7
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +2107 -1917
  12. package/build/contracts/ConstantFlowAgreementV1.json +8 -8
  13. package/build/contracts/Context.json +3 -3
  14. package/build/contracts/ContextDefinitions.json +5 -5
  15. package/build/contracts/Create2.json +5 -5
  16. package/build/contracts/CustomSuperTokenBase.json +3 -3
  17. package/build/contracts/ERC165.json +3 -3
  18. package/build/contracts/ERC1820Implementer.json +5 -5
  19. package/build/contracts/ERC1820RegistryCompiled.json +7 -7
  20. package/build/contracts/ERC20.json +5 -5
  21. package/build/contracts/ERC20Burnable.json +3 -3
  22. package/build/contracts/ERC20Pausable.json +3 -3
  23. package/build/contracts/ERC20PresetMinterPauser.json +5 -5
  24. package/build/contracts/ERC20WithTokenInfo.json +3 -3
  25. package/build/contracts/ERC777Helper.json +7 -7
  26. package/build/contracts/ERC777RecipientDrainingGas.json +839 -839
  27. package/build/contracts/ERC777RecipientReverting.json +839 -839
  28. package/build/contracts/EnumerableSet.json +5 -5
  29. package/build/contracts/EventsEmitter.json +47 -47
  30. package/build/contracts/ExclusiveInflowTestApp.json +2107 -1917
  31. package/build/contracts/FixedSizeData.json +213 -213
  32. package/build/contracts/FlowExchangeTestApp.json +2107 -1917
  33. package/build/contracts/FlowOperatorDefinitions.json +5 -5
  34. package/build/contracts/FullUpgradableSuperTokenProxy.json +226 -312
  35. package/build/contracts/IAccessControl.json +3 -3
  36. package/build/contracts/IAccessControlEnumerable.json +3 -3
  37. package/build/contracts/IConstantFlowAgreementV1.json +451 -444
  38. package/build/contracts/IDAv1Library.json +5 -5
  39. package/build/contracts/IERC165.json +3 -3
  40. package/build/contracts/IERC1820Implementer.json +3 -3
  41. package/build/contracts/IERC1820Registry.json +3 -3
  42. package/build/contracts/IERC20.json +3 -3
  43. package/build/contracts/IERC20Metadata.json +3 -3
  44. package/build/contracts/IERC777.json +3 -3
  45. package/build/contracts/IERC777Recipient.json +3 -3
  46. package/build/contracts/IERC777Sender.json +3 -3
  47. package/build/contracts/IInstantDistributionAgreementV1.json +570 -559
  48. package/build/contracts/IMaticBridgedNativeSuperToken.json +71 -32
  49. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +3 -3
  50. package/build/contracts/IMultiSigWallet.json +3 -3
  51. package/build/contracts/IPureSuperToken.json +71 -32
  52. package/build/contracts/IPureSuperTokenCustom.json +3 -3
  53. package/build/contracts/IRelayRecipient.json +3 -3
  54. package/build/contracts/IResolver.json +3 -3
  55. package/build/contracts/ISETH.json +71 -32
  56. package/build/contracts/ISETHCustom.json +3 -3
  57. package/build/contracts/ISuperAgreement.json +3 -3
  58. package/build/contracts/ISuperApp.json +179 -173
  59. package/build/contracts/ISuperToken.json +522 -483
  60. package/build/contracts/ISuperTokenFactory.json +3 -3
  61. package/build/contracts/ISuperfluid.json +633 -628
  62. package/build/contracts/ISuperfluidGovernance.json +134 -133
  63. package/build/contracts/ISuperfluidToken.json +403 -394
  64. package/build/contracts/ITOGAv1.json +1211 -1211
  65. package/build/contracts/ITOGAv2.json +1211 -1211
  66. package/build/contracts/Initializable.json +3 -3
  67. package/build/contracts/InstantDistributionAgreementV1.json +10 -10
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +194 -194
  69. package/build/contracts/NonClosableOutflowTestApp.json +2107 -1917
  70. package/build/contracts/Ownable.json +3 -3
  71. package/build/contracts/Pausable.json +3 -3
  72. package/build/contracts/Proxy.json +3 -3
  73. package/build/contracts/PureSuperToken.json +91 -91
  74. package/build/contracts/Resolver.json +96 -96
  75. package/build/contracts/SETHProxy.json +199 -199
  76. package/build/contracts/SafeCast.json +5 -5
  77. package/build/contracts/SafeERC20.json +5 -5
  78. package/build/contracts/SafeMath.json +5 -5
  79. package/build/contracts/SelfDeletingFlowTestApp.json +2107 -1917
  80. package/build/contracts/SlotsBitmapLibrary.json +7 -7
  81. package/build/contracts/Strings.json +5 -5
  82. package/build/contracts/SuperAppBase.json +3 -3
  83. package/build/contracts/SuperAppDefinitions.json +5 -5
  84. package/build/contracts/SuperToken.json +2262 -2262
  85. package/build/contracts/SuperTokenFactory.json +582 -582
  86. package/build/contracts/SuperTokenFactoryBase.json +576 -576
  87. package/build/contracts/SuperTokenFactoryHelper.json +578 -578
  88. package/build/contracts/SuperUpgrader.json +687 -687
  89. package/build/contracts/Superfluid.json +6648 -6678
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +526 -526
  91. package/build/contracts/SuperfluidGovernanceBase.json +13 -13
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +5 -5
  93. package/build/contracts/SuperfluidGovernanceII.json +21 -21
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +20 -20
  95. package/build/contracts/SuperfluidLoader.json +147 -147
  96. package/build/contracts/SuperfluidToken.json +1269 -1269
  97. package/build/contracts/TOGA.json +1221 -1221
  98. package/build/contracts/TestGovernance.json +315 -315
  99. package/build/contracts/TestToken.json +475 -561
  100. package/build/contracts/TokenCustodian.json +220 -220
  101. package/build/contracts/TokenInfo.json +3 -3
  102. package/build/contracts/UUPSProxiable.json +136 -136
  103. package/build/contracts/UUPSProxy.json +87 -87
  104. package/build/contracts/UUPSUtils.json +43 -43
  105. package/build/contracts-sizes.txt +6 -6
  106. package/contracts/agreements/AgreementBase.sol +1 -1
  107. package/contracts/agreements/AgreementLibrary.sol +1 -1
  108. package/contracts/agreements/ConstantFlowAgreementV1.sol +1 -1
  109. package/contracts/agreements/InstantDistributionAgreementV1.sol +1 -1
  110. package/contracts/gov/SuperfluidGovernanceBase.sol +1 -1
  111. package/contracts/gov/SuperfluidGovernanceII.sol +1 -1
  112. package/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol +7 -10
  113. package/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol +11 -18
  114. package/contracts/interfaces/superfluid/ISuperApp.sol +7 -9
  115. package/contracts/interfaces/superfluid/ISuperToken.sol +36 -44
  116. package/contracts/interfaces/superfluid/ISuperfluid.sol +17 -21
  117. package/contracts/interfaces/superfluid/ISuperfluidGovernance.sol +1 -1
  118. package/contracts/interfaces/superfluid/ISuperfluidToken.sol +13 -14
  119. package/contracts/libs/BaseRelayRecipient.sol +1 -1
  120. package/contracts/libs/CallUtils.sol +1 -1
  121. package/contracts/libs/ERC1820RegistryCompiled.sol +1 -1
  122. package/contracts/libs/ERC777Helper.sol +1 -1
  123. package/contracts/libs/EventsEmitter.sol +2 -2
  124. package/contracts/libs/FixedSizeData.sol +2 -2
  125. package/contracts/libs/SlotsBitmapLibrary.sol +1 -1
  126. package/contracts/mocks/AgreementMock.sol +1 -1
  127. package/contracts/mocks/CFAAppMocks.sol +6 -6
  128. package/contracts/mocks/CFALibraryMock.sol +2 -2
  129. package/contracts/mocks/CallUtilsMock.sol +1 -1
  130. package/contracts/mocks/CallUtilsTester.sol +1 -1
  131. package/contracts/mocks/CustomSuperTokenMock.sol +1 -1
  132. package/contracts/mocks/ERC777SenderRecipientMock.sol +1 -1
  133. package/contracts/mocks/FakeSuperfluidMock.sol +1 -1
  134. package/contracts/mocks/ForwarderMock.sol +1 -1
  135. package/contracts/mocks/IDASuperAppTester.sol +2 -2
  136. package/contracts/mocks/IDAv1LibraryMock.sol +3 -3
  137. package/contracts/mocks/MockSmartWallet.sol +1 -1
  138. package/contracts/mocks/MultiFlowTesterApp.sol +2 -2
  139. package/contracts/mocks/SuperAppMocks.sol +15 -12
  140. package/contracts/mocks/SuperTokenFactoryMock.sol +1 -1
  141. package/contracts/mocks/SuperTokenMock.sol +1 -1
  142. package/contracts/mocks/SuperfluidDestructorMock.sol +1 -1
  143. package/contracts/mocks/SuperfluidGovernanceIIMock.sol +1 -1
  144. package/contracts/mocks/SuperfluidMock.sol +2 -2
  145. package/contracts/mocks/UUPSProxiableMock.sol +1 -1
  146. package/contracts/superfluid/FullUpgradableSuperTokenProxy.sol +2 -2
  147. package/contracts/superfluid/SuperToken.sol +1 -1
  148. package/contracts/superfluid/SuperTokenFactory.sol +1 -1
  149. package/contracts/superfluid/Superfluid.sol +4 -4
  150. package/contracts/superfluid/SuperfluidToken.sol +1 -1
  151. package/contracts/tokens/MaticBridgedNativeSuperToken.sol +1 -1
  152. package/contracts/tokens/PureSuperToken.sol +1 -1
  153. package/contracts/tokens/SETH.sol +1 -1
  154. package/contracts/upgradability/UUPSProxiable.sol +1 -1
  155. package/contracts/upgradability/UUPSProxy.sol +1 -1
  156. package/contracts/upgradability/UUPSUtils.sol +1 -1
  157. package/contracts/utils/BatchLiquidator.sol +1 -1
  158. package/contracts/utils/Resolver.sol +1 -1
  159. package/contracts/utils/SuperUpgrader.sol +6 -6
  160. package/contracts/utils/SuperfluidLoader.sol +1 -1
  161. package/contracts/utils/TOGA.sol +1 -1
  162. package/contracts/utils/TestGovernance.sol +2 -2
  163. package/contracts/utils/TestToken.sol +2 -2
  164. package/contracts/utils/TokenCustodian.sol +1 -1
  165. package/package.json +5 -3
  166. package/scripts/deploy-framework.js +5 -5
  167. package/scripts/deploy-super-token.js +13 -4
  168. package/scripts/gov-create-new-app-registration-key.js +2 -1
  169. package/scripts/gov-create-new-factory-registration.js +1 -1
  170. package/scripts/libs/getConfig.js +21 -3
  171. package/scripts/resolver-list-super-token.js +1 -0
@@ -790,7 +790,7 @@
790
790
  "type": "function"
791
791
  }
792
792
  ],
793
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"}],\"name\":\"FlowOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"totalSenderFlowRate\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"totalReceiverFlowRate\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"FlowUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"}],\"name\":\"FlowUpdatedExtension\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"agreementType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"authorizeFlowOperatorWithFullControl\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"createFlow\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"createFlowByOperator\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"deleteFlow\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"deleteFlowByOperator\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAccountFlowInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"}],\"name\":\"getDepositRequiredForFlowRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"getFlow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"agreementId\",\"type\":\"bytes32\"}],\"name\":\"getFlowByID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"}],\"name\":\"getFlowOperatorData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"flowOperatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"flowOperatorId\",\"type\":\"bytes32\"}],\"name\":\"getFlowOperatorDataByID\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"}],\"name\":\"getMaximumFlowRateFromDeposit\",\"outputs\":[{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNetFlow\",\"outputs\":[{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"isPatricianPeriod\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPatricianPeriodNow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isCurrentlyPatricianPeriod\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"realtimeBalanceOf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"dynamicBalance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"revokeFlowOperatorWithFullControl\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateFlow\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateFlowByOperator\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateFlowOperatorPermissions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"events\":{\"FlowOperatorUpdated(address,address,address,uint8,int96)\":{\"details\":\"Flow operator updated event\",\"params\":{\"flowOperator\":\"Flow operator address\",\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"Octo bitmask representation of permissions\",\"sender\":\"Flow sender address\",\"token\":\"Super token address\"}},\"FlowUpdated(address,address,address,int96,int256,int256,bytes)\":{\"details\":\"Flow updated event\",\"params\":{\"flowRate\":\"Flow rate in amount per second for this flow\",\"receiver\":\"Flow recipient address\",\"sender\":\"Flow sender address\",\"token\":\"Super token address\",\"totalReceiverFlowRate\":\"Total flow rate in amount per second for the receiver\",\"totalSenderFlowRate\":\"Total flow rate in amount per second for the sender\",\"userData\":\"The user provided data\"}},\"FlowUpdatedExtension(address,uint256)\":{\"details\":\"Flow updated extension event\",\"params\":{\"deposit\":\"The deposit amount for the stream\",\"flowOperator\":\"Flow operator address - the Context.msgSender\"}}},\"kind\":\"dev\",\"methods\":{\"agreementType()\":{\"details\":\"ISuperAgreement.agreementType implementation\"},\"authorizeFlowOperatorWithFullControl(address,address,bytes)\":{\"details\":\"msgSender from `ctx` grants `flowOperator` all permissions with flowRateAllowance as type(int96).max\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowOperator\":\"The permission grantee address\",\"token\":\"Super token address\"}},\"createFlow(address,address,int96,bytes)\":{\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - AgreementCreated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver) NOTE: - A deposit is taken as safety margin for the solvency agents - A extra gas fee may be taken to pay for solvency agent liquidations\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"token\":\"Super token address\"}},\"createFlowByOperator(address,address,address,int96,bytes)\":{\"details\":\"A flow created by an approved flow operator (see above for details on callbacks)\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"sender\":\"Flow sender address (has granted permissions)\",\"token\":\"Super token address\"}},\"deleteFlow(address,address,address,bytes)\":{\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"receiver\":\"Flow receiver address # App callbacks - AgreementTerminated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver) NOTE: - Both flow sender and receiver may delete the flow - If Sender account is insolvent or in critical state, a solvency agent may also terminate the agreement - Gas fee may be returned to the sender\",\"token\":\"Super token address\"}},\"deleteFlowByOperator(address,address,address,bytes)\":{\"details\":\"A flow deleted by an approved flow operator (see above for details on callbacks)\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"receiver\":\"Flow receiver address\",\"token\":\"Super token address\"}},\"getAccountFlowInfo(address,address)\":{\"details\":\"Get the aggregated flow info of the account\",\"params\":{\"account\":\"Account for the query\",\"token\":\"Super token address\"},\"returns\":{\"deposit\":\"The sum of all deposits for account's flows\",\"flowRate\":\"The net flow rate of token for account\",\"owedDeposit\":\"The sum of all owed deposits for account's flows\",\"timestamp\":\"Timestamp of when a flow was last updated for account\"}},\"getDepositRequiredForFlowRate(address,int96)\":{\"details\":\"Calculates the deposit based on the liquidationPeriod and flowRate\",\"params\":{\"flowRate\":\"Flow rate to be tested\"},\"returns\":{\"deposit\":\"The deposit amount based on flowRate and liquidationPeriod NOTE: - if calculated deposit (flowRate * liquidationPeriod) is less than the minimum deposit, we use the minimum deposit otherwise we use the calculated deposit\"}},\"getFlow(address,address,address)\":{\"details\":\"Get the flow data between `sender` and `receiver` of `token`\",\"params\":{\"receiver\":\"Flow sender\",\"sender\":\"Flow receiver\",\"token\":\"Super token address\"},\"returns\":{\"deposit\":\"The amount of deposit the flow\",\"flowRate\":\"The flow rate\",\"owedDeposit\":\"The amount of owed deposit of the flow\",\"timestamp\":\"Timestamp of when the flow is updated\"}},\"getFlowByID(address,bytes32)\":{\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"agreementId\":\"The agreement ID\",\"token\":\"Super token address\"},\"returns\":{\"deposit\":\"The deposit amount of the flow\",\"flowRate\":\"The flow rate\",\"owedDeposit\":\"The owed deposit amount of the flow\",\"timestamp\":\"Timestamp of when the flow is updated\"}},\"getFlowOperatorData(address,address,address)\":{\"params\":{\"flowOperator\":\"The permission grantee address\",\"sender\":\"The permission granter address\",\"token\":\"Super token address\"},\"returns\":{\"flowOperatorId\":\"The keccak256 hash of encoded string \\\"flowOperator\\\", sender and flowOperator\",\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"A bitmask representation of the granted permissions\"}},\"getFlowOperatorDataByID(address,bytes32)\":{\"params\":{\"flowOperatorId\":\"The keccak256 hash of encoded string \\\"flowOperator\\\", sender and flowOperator\",\"token\":\"Super token address\"},\"returns\":{\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"A bitmask representation of the granted permissions\"}},\"getMaximumFlowRateFromDeposit(address,uint256)\":{\"details\":\"The deposit is clipped and rounded down\",\"params\":{\"deposit\":\"Deposit amount used for creating the flow\"},\"returns\":{\"flowRate\":\"The maximum flow rate\"}},\"getNetFlow(address,address)\":{\"details\":\"Get the net flow rate of the account\",\"params\":{\"account\":\"Account for the query\",\"token\":\"Super token address\"},\"returns\":{\"flowRate\":\"Net flow rate\"}},\"isPatricianPeriod(address,address,uint256)\":{\"details\":\"Returns whether it is the patrician period based on timestamp\",\"params\":{\"account\":\"The account we are interested in\",\"timestamp\":\"The timestamp we are interested in observing the result of isPatricianPeriod\"},\"returns\":{\"_0\":\"bool Whether it is currently the patrician period dictated by governance\"}},\"isPatricianPeriodNow(address,address)\":{\"details\":\"Returns whether it is the patrician period based on host.getNow()\",\"params\":{\"account\":\"The account we are interested in\"},\"returns\":{\"isCurrentlyPatricianPeriod\":\"Whether it is currently the patrician period dictated by governance\",\"timestamp\":\"The value of host.getNow()\"}},\"realtimeBalanceOf(address,address,uint256)\":{\"details\":\"Calculate the real-time balance for the account of this agreement class\",\"params\":{\"account\":\"Account the state belongs to\",\"time\":\"Time used for the calculation\"},\"returns\":{\"deposit\":\"Account deposit amount of this agreement\",\"dynamicBalance\":\"Dynamic balance portion of real-time balance of this agreement\",\"owedDeposit\":\"Account owed deposit amount of this agreement\"}},\"revokeFlowOperatorWithFullControl(address,address,bytes)\":{\"details\":\"`permissions` and `flowRateAllowance` will both be set to 0\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowOperator\":\"The permission grantee address\",\"token\":\"Super token address\"}},\"updateFlow(address,address,int96,bytes)\":{\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - AgreementUpdated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver) NOTE: - Only the flow sender may update the flow rate - Even if the flow rate is zero, the flow is not deleted from the system - Deposit amount will be adjusted accordingly - No new gas fee is charged\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"token\":\"Super token address\"}},\"updateFlowByOperator(address,address,address,int96,bytes)\":{\"details\":\"A flow updated by an approved flow operator (see above for details on callbacks)\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"sender\":\"Flow sender address (has granted permissions)\",\"token\":\"Super token address\"}},\"updateFlowOperatorPermissions(address,address,uint8,int96,bytes)\":{\"details\":\"msgSender from `ctx` updates permissions for the `flowOperator` with `flowRateAllowance`\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowOperator\":\"The permission grantee address\",\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"A bitmask representation of the granted permissions\",\"token\":\"Super token address\"}}},\"title\":\"Constant Flow Agreement interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createFlow(address,address,int96,bytes)\":{\"notice\":\"Create a flow betwen ctx.msgSender and receiver\"},\"createFlowByOperator(address,address,address,int96,bytes)\":{\"notice\":\"Create a flow between sender and receiver\"},\"deleteFlow(address,address,address,bytes)\":{\"notice\":\"Delete the flow between sender and receiver\"},\"deleteFlowByOperator(address,address,address,bytes)\":{\"notice\":\"Delete the flow between sender and receiver\"},\"getDepositRequiredForFlowRate(address,int96)\":{\"notice\":\"Get the deposit required for creating the flow\"},\"getFlowByID(address,bytes32)\":{\"notice\":\"Get flow data using agreementId\"},\"getFlowOperatorData(address,address,address)\":{\"notice\":\"Get the permissions of a flow operator between `sender` and `flowOperator` for `token`\"},\"getFlowOperatorDataByID(address,bytes32)\":{\"notice\":\"Get flow operator using flowOperatorId\"},\"getMaximumFlowRateFromDeposit(address,uint256)\":{\"notice\":\"Get the maximum flow rate allowed with the deposit\"},\"revokeFlowOperatorWithFullControl(address,address,bytes)\":{\"notice\":\"msgSender from `ctx` revokes `flowOperator` create/update/delete permissions\"},\"updateFlow(address,address,int96,bytes)\":{\"notice\":\"Update the flow rate between ctx.msgSender and receiver\"},\"updateFlowByOperator(address,address,address,int96,bytes)\":{\"notice\":\"Update a flow between sender and receiver\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol\":\"IConstantFlowAgreementV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol\":{\"keccak256\":\"0xb96bb6cb0fe88ddf5b890b6826f7f7585cf6e94223c76d8e2fb269779afe4445\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://b864597ae952222f0f43c66943492966013021c4171d5ef4f7357c047dfd737c\",\"dweb:/ipfs/Qmcr7xicfmPDD343B34ETP3XrdU9Vi1z3zxJSgqLipfQmY\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x518b869178aafffde40c654a1e24b3b1a2b5e42e5e8f17562556f404db8b9434\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://458ce84666b418fa3a7569c0e109db4d920fb6d1cb67ebc4c497c9c71107d93b\",\"dweb:/ipfs/QmV9nqhRF7MDGkV6UW3WWcqeXov2vmqHuRcvbqaaV8yP6u\"]}},\"version\":1}",
793
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"}],\"name\":\"FlowOperatorUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"totalSenderFlowRate\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"totalReceiverFlowRate\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"FlowUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"}],\"name\":\"FlowUpdatedExtension\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"agreementType\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"authorizeFlowOperatorWithFullControl\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"createFlow\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"createFlowByOperator\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"deleteFlow\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"deleteFlowByOperator\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAccountFlowInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"}],\"name\":\"getDepositRequiredForFlowRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"getFlow\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"agreementId\",\"type\":\"bytes32\"}],\"name\":\"getFlowByID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"}],\"name\":\"getFlowOperatorData\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"flowOperatorId\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"flowOperatorId\",\"type\":\"bytes32\"}],\"name\":\"getFlowOperatorDataByID\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"}],\"name\":\"getMaximumFlowRateFromDeposit\",\"outputs\":[{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getNetFlow\",\"outputs\":[{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"isPatricianPeriod\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPatricianPeriodNow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isCurrentlyPatricianPeriod\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"realtimeBalanceOf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"dynamicBalance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"revokeFlowOperatorWithFullControl\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateFlow\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"int96\",\"name\":\"flowRate\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateFlowByOperator\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"flowOperator\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"permissions\",\"type\":\"uint8\"},{\"internalType\":\"int96\",\"name\":\"flowRateAllowance\",\"type\":\"int96\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateFlowOperatorPermissions\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"events\":{\"FlowOperatorUpdated(address,address,address,uint8,int96)\":{\"details\":\"Flow operator updated event\",\"params\":{\"flowOperator\":\"Flow operator address\",\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"Octo bitmask representation of permissions\",\"sender\":\"Flow sender address\",\"token\":\"Super token address\"}},\"FlowUpdated(address,address,address,int96,int256,int256,bytes)\":{\"details\":\"Flow updated event\",\"params\":{\"flowRate\":\"Flow rate in amount per second for this flow\",\"receiver\":\"Flow recipient address\",\"sender\":\"Flow sender address\",\"token\":\"Super token address\",\"totalReceiverFlowRate\":\"Total flow rate in amount per second for the receiver\",\"totalSenderFlowRate\":\"Total flow rate in amount per second for the sender\",\"userData\":\"The user provided data\"}},\"FlowUpdatedExtension(address,uint256)\":{\"details\":\"Flow updated extension event\",\"params\":{\"deposit\":\"The deposit amount for the stream\",\"flowOperator\":\"Flow operator address - the Context.msgSender\"}}},\"kind\":\"dev\",\"methods\":{\"agreementType()\":{\"details\":\"ISuperAgreement.agreementType implementation\"},\"authorizeFlowOperatorWithFullControl(address,address,bytes)\":{\"details\":\"msgSender from `ctx` grants `flowOperator` all permissions with flowRateAllowance as type(int96).max\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowOperator\":\"The permission grantee address\",\"token\":\"Super token address\"}},\"createFlow(address,address,int96,bytes)\":{\"custom:callbacks\":\" - AgreementCreated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver)\",\"custom:note\":\" - A deposit is taken as safety margin for the solvency agents - A extra gas fee may be taken to pay for solvency agent liquidations\",\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"token\":\"Super token address\"}},\"createFlowByOperator(address,address,address,int96,bytes)\":{\"details\":\"A flow created by an approved flow operator (see above for details on callbacks)\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"sender\":\"Flow sender address (has granted permissions)\",\"token\":\"Super token address\"}},\"deleteFlow(address,address,address,bytes)\":{\"custom:callbacks\":\" - AgreementTerminated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver)\",\"custom:note\":\" - Both flow sender and receiver may delete the flow - If Sender account is insolvent or in critical state, a solvency agent may also terminate the agreement - Gas fee may be returned to the sender\",\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"receiver\":\"Flow receiver address\",\"token\":\"Super token address\"}},\"deleteFlowByOperator(address,address,address,bytes)\":{\"details\":\"A flow deleted by an approved flow operator (see above for details on callbacks)\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"receiver\":\"Flow receiver address\",\"token\":\"Super token address\"}},\"getAccountFlowInfo(address,address)\":{\"details\":\"Get the aggregated flow info of the account\",\"params\":{\"account\":\"Account for the query\",\"token\":\"Super token address\"},\"returns\":{\"deposit\":\"The sum of all deposits for account's flows\",\"flowRate\":\"The net flow rate of token for account\",\"owedDeposit\":\"The sum of all owed deposits for account's flows\",\"timestamp\":\"Timestamp of when a flow was last updated for account\"}},\"getDepositRequiredForFlowRate(address,int96)\":{\"custom:note\":\" - if calculated deposit (flowRate * liquidationPeriod) is less than the minimum deposit, we use the minimum deposit otherwise we use the calculated deposit\",\"details\":\"Calculates the deposit based on the liquidationPeriod and flowRate\",\"params\":{\"flowRate\":\"Flow rate to be tested\"},\"returns\":{\"deposit\":\"The deposit amount based on flowRate and liquidationPeriod\"}},\"getFlow(address,address,address)\":{\"details\":\"Get the flow data between `sender` and `receiver` of `token`\",\"params\":{\"receiver\":\"Flow sender\",\"sender\":\"Flow receiver\",\"token\":\"Super token address\"},\"returns\":{\"deposit\":\"The amount of deposit the flow\",\"flowRate\":\"The flow rate\",\"owedDeposit\":\"The amount of owed deposit of the flow\",\"timestamp\":\"Timestamp of when the flow is updated\"}},\"getFlowByID(address,bytes32)\":{\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"agreementId\":\"The agreement ID\",\"token\":\"Super token address\"},\"returns\":{\"deposit\":\"The deposit amount of the flow\",\"flowRate\":\"The flow rate\",\"owedDeposit\":\"The owed deposit amount of the flow\",\"timestamp\":\"Timestamp of when the flow is updated\"}},\"getFlowOperatorData(address,address,address)\":{\"params\":{\"flowOperator\":\"The permission grantee address\",\"sender\":\"The permission granter address\",\"token\":\"Super token address\"},\"returns\":{\"flowOperatorId\":\"The keccak256 hash of encoded string \\\"flowOperator\\\", sender and flowOperator\",\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"A bitmask representation of the granted permissions\"}},\"getFlowOperatorDataByID(address,bytes32)\":{\"params\":{\"flowOperatorId\":\"The keccak256 hash of encoded string \\\"flowOperator\\\", sender and flowOperator\",\"token\":\"Super token address\"},\"returns\":{\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"A bitmask representation of the granted permissions\"}},\"getMaximumFlowRateFromDeposit(address,uint256)\":{\"details\":\"The deposit is clipped and rounded down\",\"params\":{\"deposit\":\"Deposit amount used for creating the flow\"},\"returns\":{\"flowRate\":\"The maximum flow rate\"}},\"getNetFlow(address,address)\":{\"details\":\"Get the net flow rate of the account\",\"params\":{\"account\":\"Account for the query\",\"token\":\"Super token address\"},\"returns\":{\"flowRate\":\"Net flow rate\"}},\"isPatricianPeriod(address,address,uint256)\":{\"details\":\"Returns whether it is the patrician period based on timestamp\",\"params\":{\"account\":\"The account we are interested in\",\"timestamp\":\"The timestamp we are interested in observing the result of isPatricianPeriod\"},\"returns\":{\"_0\":\"bool Whether it is currently the patrician period dictated by governance\"}},\"isPatricianPeriodNow(address,address)\":{\"details\":\"Returns whether it is the patrician period based on host.getNow()\",\"params\":{\"account\":\"The account we are interested in\"},\"returns\":{\"isCurrentlyPatricianPeriod\":\"Whether it is currently the patrician period dictated by governance\",\"timestamp\":\"The value of host.getNow()\"}},\"realtimeBalanceOf(address,address,uint256)\":{\"details\":\"Calculate the real-time balance for the account of this agreement class\",\"params\":{\"account\":\"Account the state belongs to\",\"time\":\"Time used for the calculation\"},\"returns\":{\"deposit\":\"Account deposit amount of this agreement\",\"dynamicBalance\":\"Dynamic balance portion of real-time balance of this agreement\",\"owedDeposit\":\"Account owed deposit amount of this agreement\"}},\"revokeFlowOperatorWithFullControl(address,address,bytes)\":{\"details\":\"`permissions` and `flowRateAllowance` will both be set to 0\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowOperator\":\"The permission grantee address\",\"token\":\"Super token address\"}},\"updateFlow(address,address,int96,bytes)\":{\"custom:callbacks\":\" - AgreementUpdated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver)\",\"custom:note\":\" - Only the flow sender may update the flow rate - Even if the flow rate is zero, the flow is not deleted from the system - Deposit amount will be adjusted accordingly - No new gas fee is charged\",\"details\":\"flowId (agreementId) is the keccak256 hash of encoded sender and receiver\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"token\":\"Super token address\"}},\"updateFlowByOperator(address,address,address,int96,bytes)\":{\"details\":\"A flow updated by an approved flow operator (see above for details on callbacks)\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowRate\":\"New flow rate in amount per second\",\"receiver\":\"Flow receiver address\",\"sender\":\"Flow sender address (has granted permissions)\",\"token\":\"Super token address\"}},\"updateFlowOperatorPermissions(address,address,uint8,int96,bytes)\":{\"details\":\"msgSender from `ctx` updates permissions for the `flowOperator` with `flowRateAllowance`\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"flowOperator\":\"The permission grantee address\",\"flowRateAllowance\":\"The flow rate allowance the `flowOperator` is granted (only goes down)\",\"permissions\":\"A bitmask representation of the granted permissions\",\"token\":\"Super token address\"}}},\"title\":\"Constant Flow Agreement interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"createFlow(address,address,int96,bytes)\":{\"notice\":\"Create a flow betwen ctx.msgSender and receiver\"},\"createFlowByOperator(address,address,address,int96,bytes)\":{\"notice\":\"Create a flow between sender and receiver\"},\"deleteFlow(address,address,address,bytes)\":{\"notice\":\"Delete the flow between sender and receiver\"},\"deleteFlowByOperator(address,address,address,bytes)\":{\"notice\":\"Delete the flow between sender and receiver\"},\"getDepositRequiredForFlowRate(address,int96)\":{\"notice\":\"Get the deposit required for creating the flow\"},\"getFlowByID(address,bytes32)\":{\"notice\":\"Get flow data using agreementId\"},\"getFlowOperatorData(address,address,address)\":{\"notice\":\"Get the permissions of a flow operator between `sender` and `flowOperator` for `token`\"},\"getFlowOperatorDataByID(address,bytes32)\":{\"notice\":\"Get flow operator using flowOperatorId\"},\"getMaximumFlowRateFromDeposit(address,uint256)\":{\"notice\":\"Get the maximum flow rate allowed with the deposit\"},\"revokeFlowOperatorWithFullControl(address,address,bytes)\":{\"notice\":\"msgSender from `ctx` revokes `flowOperator` create/update/delete permissions\"},\"updateFlow(address,address,int96,bytes)\":{\"notice\":\"Update the flow rate between ctx.msgSender and receiver\"},\"updateFlowByOperator(address,address,address,int96,bytes)\":{\"notice\":\"Update a flow between sender and receiver\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol\":\"IConstantFlowAgreementV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol\":{\"keccak256\":\"0x5da735cab1cf7114564ec7d81ed35037a56b6f216a60569aef6e65f3aaca5dd8\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://27a2ad0243469f7364d5e5a483493b16e2b57b9b36c24c6de0ea0e2c13465c71\",\"dweb:/ipfs/QmSfHTC7ewk8LA27TrDqojqFjdkkafCoZmWE1V6HEuFqox\"]},\"project:/contracts/interfaces/superfluid/ISuperAgreement.sol\":{\"keccak256\":\"0xc3a6a907245116bcecc70fe4b207454012e8ce4fa190228fb8bbe39e0b1bc5cf\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://83c116bdae48685d20e5a27c942111e685ec1ef6334e7ff6f6d9af66edbd8025\",\"dweb:/ipfs/QmTnVuNTaRFiDmkAmDk7NFYdfQTW1kqgBZiY2exC6k8jDx\"]},\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":{\"keccak256\":\"0x3eec5a3bf337cd319c1918fd1b16f350cf5f6850ac71f6859066fbf86e734ff4\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://cda19a2f5ca18e79c1e2300c8efac84c718df76c4fb313f59f84264a4c6b398a\",\"dweb:/ipfs/QmfQiwgDH5Q64w5ufBnDzVaeWv6WCZ6fLTrYu1FSYfBGhq\"]}},\"version\":1}",
794
794
  "bytecode": "0x",
795
795
  "deployedBytecode": "0x",
796
796
  "immutableReferences": {},
@@ -798,7 +798,7 @@
798
798
  "deployedGeneratedSources": [],
799
799
  "sourceMap": "",
800
800
  "deployedSourceMap": "",
801
- "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity >= 0.8.0;\n\nimport { ISuperAgreement } from \"../superfluid/ISuperAgreement.sol\";\nimport { ISuperfluidToken } from \"../superfluid/ISuperfluidToken.sol\";\n\n\n/**\n * @title Constant Flow Agreement interface\n * @author Superfluid\n */\nabstract contract IConstantFlowAgreementV1 is ISuperAgreement {\n\n /// @dev ISuperAgreement.agreementType implementation\n function agreementType() external override pure returns (bytes32) {\n return keccak256(\"org.superfluid-finance.agreements.ConstantFlowAgreement.v1\");\n }\n\n /**\n * @notice Get the maximum flow rate allowed with the deposit\n * @dev The deposit is clipped and rounded down\n * @param deposit Deposit amount used for creating the flow\n * @return flowRate The maximum flow rate\n */\n function getMaximumFlowRateFromDeposit(\n ISuperfluidToken token,\n uint256 deposit)\n external view virtual\n returns (int96 flowRate);\n\n /**\n * @notice Get the deposit required for creating the flow\n * @dev Calculates the deposit based on the liquidationPeriod and flowRate\n * @param flowRate Flow rate to be tested\n * @return deposit The deposit amount based on flowRate and liquidationPeriod\n * NOTE:\n * - if calculated deposit (flowRate * liquidationPeriod) is less\n * than the minimum deposit, we use the minimum deposit otherwise\n * we use the calculated deposit\n */\n function getDepositRequiredForFlowRate(\n ISuperfluidToken token,\n int96 flowRate)\n external view virtual\n returns (uint256 deposit);\n\n /**\n * @dev Returns whether it is the patrician period based on host.getNow()\n * @param account The account we are interested in\n * @return isCurrentlyPatricianPeriod Whether it is currently the patrician period dictated by governance\n * @return timestamp The value of host.getNow()\n */\n function isPatricianPeriodNow(\n ISuperfluidToken token,\n address account)\n public view virtual\n returns (bool isCurrentlyPatricianPeriod, uint256 timestamp);\n\n /**\n * @dev Returns whether it is the patrician period based on timestamp\n * @param account The account we are interested in\n * @param timestamp The timestamp we are interested in observing the result of isPatricianPeriod\n * @return bool Whether it is currently the patrician period dictated by governance\n */\n function isPatricianPeriod(\n ISuperfluidToken token,\n address account,\n uint256 timestamp\n )\n public view virtual\n returns (bool);\n\n /**\n * @dev msgSender from `ctx` updates permissions for the `flowOperator` with `flowRateAllowance`\n * @param token Super token address\n * @param flowOperator The permission grantee address\n * @param permissions A bitmask representation of the granted permissions\n * @param flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function updateFlowOperatorPermissions(\n ISuperfluidToken token,\n address flowOperator,\n uint8 permissions,\n int96 flowRateAllowance,\n bytes calldata ctx\n ) \n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev msgSender from `ctx` grants `flowOperator` all permissions with flowRateAllowance as type(int96).max\n * @param token Super token address\n * @param flowOperator The permission grantee address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function authorizeFlowOperatorWithFullControl(\n ISuperfluidToken token,\n address flowOperator,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice msgSender from `ctx` revokes `flowOperator` create/update/delete permissions\n * @dev `permissions` and `flowRateAllowance` will both be set to 0\n * @param token Super token address\n * @param flowOperator The permission grantee address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function revokeFlowOperatorWithFullControl(\n ISuperfluidToken token,\n address flowOperator,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Get the permissions of a flow operator between `sender` and `flowOperator` for `token`\n * @param token Super token address\n * @param sender The permission granter address\n * @param flowOperator The permission grantee address\n * @return flowOperatorId The keccak256 hash of encoded string \"flowOperator\", sender and flowOperator\n * @return permissions A bitmask representation of the granted permissions\n * @return flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n */\n function getFlowOperatorData(\n ISuperfluidToken token,\n address sender,\n address flowOperator\n )\n public view virtual\n returns (\n bytes32 flowOperatorId,\n uint8 permissions,\n int96 flowRateAllowance\n );\n\n /**\n * @notice Get flow operator using flowOperatorId\n * @param token Super token address\n * @param flowOperatorId The keccak256 hash of encoded string \"flowOperator\", sender and flowOperator\n * @return permissions A bitmask representation of the granted permissions\n * @return flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n */\n function getFlowOperatorDataByID(\n ISuperfluidToken token,\n bytes32 flowOperatorId\n )\n external view virtual\n returns (\n uint8 permissions,\n int96 flowRateAllowance\n );\n\n /**\n * @notice Create a flow betwen ctx.msgSender and receiver\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n *\n * - AgreementCreated\n * - agreementId - can be used in getFlowByID\n * - agreementData - abi.encode(address flowSender, address flowReceiver)\n *\n * NOTE:\n * - A deposit is taken as safety margin for the solvency agents\n * - A extra gas fee may be taken to pay for solvency agent liquidations\n */\n function createFlow(\n ISuperfluidToken token,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Create a flow between sender and receiver\n * @dev A flow created by an approved flow operator (see above for details on callbacks)\n * @param token Super token address\n * @param sender Flow sender address (has granted permissions)\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function createFlowByOperator(\n ISuperfluidToken token,\n address sender,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Update the flow rate between ctx.msgSender and receiver\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n *\n * - AgreementUpdated\n * - agreementId - can be used in getFlowByID\n * - agreementData - abi.encode(address flowSender, address flowReceiver)\n *\n * NOTE:\n * - Only the flow sender may update the flow rate\n * - Even if the flow rate is zero, the flow is not deleted\n * from the system\n * - Deposit amount will be adjusted accordingly\n * - No new gas fee is charged\n */\n function updateFlow(\n ISuperfluidToken token,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Update a flow between sender and receiver\n * @dev A flow updated by an approved flow operator (see above for details on callbacks)\n * @param token Super token address\n * @param sender Flow sender address (has granted permissions)\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function updateFlowByOperator(\n ISuperfluidToken token,\n address sender,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev Get the flow data between `sender` and `receiver` of `token`\n * @param token Super token address\n * @param sender Flow receiver\n * @param receiver Flow sender\n * @return timestamp Timestamp of when the flow is updated\n * @return flowRate The flow rate\n * @return deposit The amount of deposit the flow\n * @return owedDeposit The amount of owed deposit of the flow\n */\n function getFlow(\n ISuperfluidToken token,\n address sender,\n address receiver\n )\n external view virtual\n returns (\n uint256 timestamp,\n int96 flowRate,\n uint256 deposit,\n uint256 owedDeposit\n );\n\n /**\n * @notice Get flow data using agreementId\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param agreementId The agreement ID\n * @return timestamp Timestamp of when the flow is updated\n * @return flowRate The flow rate\n * @return deposit The deposit amount of the flow\n * @return owedDeposit The owed deposit amount of the flow\n */\n function getFlowByID(\n ISuperfluidToken token,\n bytes32 agreementId\n )\n external view virtual\n returns (\n uint256 timestamp,\n int96 flowRate,\n uint256 deposit,\n uint256 owedDeposit\n );\n\n /**\n * @dev Get the aggregated flow info of the account\n * @param token Super token address\n * @param account Account for the query\n * @return timestamp Timestamp of when a flow was last updated for account\n * @return flowRate The net flow rate of token for account\n * @return deposit The sum of all deposits for account's flows\n * @return owedDeposit The sum of all owed deposits for account's flows\n */\n function getAccountFlowInfo(\n ISuperfluidToken token,\n address account\n )\n external view virtual\n returns (\n uint256 timestamp,\n int96 flowRate,\n uint256 deposit,\n uint256 owedDeposit);\n\n /**\n * @dev Get the net flow rate of the account\n * @param token Super token address\n * @param account Account for the query\n * @return flowRate Net flow rate\n */\n function getNetFlow(\n ISuperfluidToken token,\n address account\n )\n external view virtual\n returns (int96 flowRate);\n\n /**\n * @notice Delete the flow between sender and receiver\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n * @param receiver Flow receiver address\n *\n * # App callbacks\n *\n * - AgreementTerminated\n * - agreementId - can be used in getFlowByID\n * - agreementData - abi.encode(address flowSender, address flowReceiver)\n *\n * NOTE:\n * - Both flow sender and receiver may delete the flow\n * - If Sender account is insolvent or in critical state, a solvency agent may\n * also terminate the agreement\n * - Gas fee may be returned to the sender\n */\n function deleteFlow(\n ISuperfluidToken token,\n address sender,\n address receiver,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Delete the flow between sender and receiver\n * @dev A flow deleted by an approved flow operator (see above for details on callbacks)\n * @param token Super token address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n * @param receiver Flow receiver address\n */\n function deleteFlowByOperator(\n ISuperfluidToken token,\n address sender,\n address receiver,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n \n /**\n * @dev Flow operator updated event\n * @param token Super token address\n * @param sender Flow sender address\n * @param flowOperator Flow operator address\n * @param permissions Octo bitmask representation of permissions\n * @param flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n */\n event FlowOperatorUpdated(\n ISuperfluidToken indexed token,\n address indexed sender,\n address indexed flowOperator,\n uint8 permissions,\n int96 flowRateAllowance\n );\n\n /**\n * @dev Flow updated event\n * @param token Super token address\n * @param sender Flow sender address\n * @param receiver Flow recipient address\n * @param flowRate Flow rate in amount per second for this flow\n * @param totalSenderFlowRate Total flow rate in amount per second for the sender\n * @param totalReceiverFlowRate Total flow rate in amount per second for the receiver\n * @param userData The user provided data\n *\n */\n event FlowUpdated(\n ISuperfluidToken indexed token,\n address indexed sender,\n address indexed receiver,\n int96 flowRate,\n int256 totalSenderFlowRate,\n int256 totalReceiverFlowRate,\n bytes userData\n );\n\n /**\n * @dev Flow updated extension event\n * @param flowOperator Flow operator address - the Context.msgSender\n * @param deposit The deposit amount for the stream\n */\n event FlowUpdatedExtension(\n address indexed flowOperator,\n uint256 deposit\n );\n}\n",
801
+ "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity >= 0.8.0;\n\nimport { ISuperAgreement } from \"../superfluid/ISuperAgreement.sol\";\nimport { ISuperfluidToken } from \"../superfluid/ISuperfluidToken.sol\";\n\n\n/**\n * @title Constant Flow Agreement interface\n * @author Superfluid\n */\nabstract contract IConstantFlowAgreementV1 is ISuperAgreement {\n\n /// @dev ISuperAgreement.agreementType implementation\n function agreementType() external override pure returns (bytes32) {\n return keccak256(\"org.superfluid-finance.agreements.ConstantFlowAgreement.v1\");\n }\n\n /**\n * @notice Get the maximum flow rate allowed with the deposit\n * @dev The deposit is clipped and rounded down\n * @param deposit Deposit amount used for creating the flow\n * @return flowRate The maximum flow rate\n */\n function getMaximumFlowRateFromDeposit(\n ISuperfluidToken token,\n uint256 deposit)\n external view virtual\n returns (int96 flowRate);\n\n /**\n * @notice Get the deposit required for creating the flow\n * @dev Calculates the deposit based on the liquidationPeriod and flowRate\n * @param flowRate Flow rate to be tested\n * @return deposit The deposit amount based on flowRate and liquidationPeriod\n * @custom:note \n * - if calculated deposit (flowRate * liquidationPeriod) is less\n * than the minimum deposit, we use the minimum deposit otherwise\n * we use the calculated deposit\n */\n function getDepositRequiredForFlowRate(\n ISuperfluidToken token,\n int96 flowRate)\n external view virtual\n returns (uint256 deposit);\n\n /**\n * @dev Returns whether it is the patrician period based on host.getNow()\n * @param account The account we are interested in\n * @return isCurrentlyPatricianPeriod Whether it is currently the patrician period dictated by governance\n * @return timestamp The value of host.getNow()\n */\n function isPatricianPeriodNow(\n ISuperfluidToken token,\n address account)\n public view virtual\n returns (bool isCurrentlyPatricianPeriod, uint256 timestamp);\n\n /**\n * @dev Returns whether it is the patrician period based on timestamp\n * @param account The account we are interested in\n * @param timestamp The timestamp we are interested in observing the result of isPatricianPeriod\n * @return bool Whether it is currently the patrician period dictated by governance\n */\n function isPatricianPeriod(\n ISuperfluidToken token,\n address account,\n uint256 timestamp\n )\n public view virtual\n returns (bool);\n\n /**\n * @dev msgSender from `ctx` updates permissions for the `flowOperator` with `flowRateAllowance`\n * @param token Super token address\n * @param flowOperator The permission grantee address\n * @param permissions A bitmask representation of the granted permissions\n * @param flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function updateFlowOperatorPermissions(\n ISuperfluidToken token,\n address flowOperator,\n uint8 permissions,\n int96 flowRateAllowance,\n bytes calldata ctx\n ) \n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev msgSender from `ctx` grants `flowOperator` all permissions with flowRateAllowance as type(int96).max\n * @param token Super token address\n * @param flowOperator The permission grantee address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function authorizeFlowOperatorWithFullControl(\n ISuperfluidToken token,\n address flowOperator,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice msgSender from `ctx` revokes `flowOperator` create/update/delete permissions\n * @dev `permissions` and `flowRateAllowance` will both be set to 0\n * @param token Super token address\n * @param flowOperator The permission grantee address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function revokeFlowOperatorWithFullControl(\n ISuperfluidToken token,\n address flowOperator,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Get the permissions of a flow operator between `sender` and `flowOperator` for `token`\n * @param token Super token address\n * @param sender The permission granter address\n * @param flowOperator The permission grantee address\n * @return flowOperatorId The keccak256 hash of encoded string \"flowOperator\", sender and flowOperator\n * @return permissions A bitmask representation of the granted permissions\n * @return flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n */\n function getFlowOperatorData(\n ISuperfluidToken token,\n address sender,\n address flowOperator\n )\n public view virtual\n returns (\n bytes32 flowOperatorId,\n uint8 permissions,\n int96 flowRateAllowance\n );\n\n /**\n * @notice Get flow operator using flowOperatorId\n * @param token Super token address\n * @param flowOperatorId The keccak256 hash of encoded string \"flowOperator\", sender and flowOperator\n * @return permissions A bitmask representation of the granted permissions\n * @return flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n */\n function getFlowOperatorDataByID(\n ISuperfluidToken token,\n bytes32 flowOperatorId\n )\n external view virtual\n returns (\n uint8 permissions,\n int96 flowRateAllowance\n );\n\n /**\n * @notice Create a flow betwen ctx.msgSender and receiver\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * - AgreementCreated\n * - agreementId - can be used in getFlowByID\n * - agreementData - abi.encode(address flowSender, address flowReceiver)\n *\n * @custom:note \n * - A deposit is taken as safety margin for the solvency agents\n * - A extra gas fee may be taken to pay for solvency agent liquidations\n */\n function createFlow(\n ISuperfluidToken token,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Create a flow between sender and receiver\n * @dev A flow created by an approved flow operator (see above for details on callbacks)\n * @param token Super token address\n * @param sender Flow sender address (has granted permissions)\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function createFlowByOperator(\n ISuperfluidToken token,\n address sender,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Update the flow rate between ctx.msgSender and receiver\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * - AgreementUpdated\n * - agreementId - can be used in getFlowByID\n * - agreementData - abi.encode(address flowSender, address flowReceiver)\n *\n * @custom:note \n * - Only the flow sender may update the flow rate\n * - Even if the flow rate is zero, the flow is not deleted\n * from the system\n * - Deposit amount will be adjusted accordingly\n * - No new gas fee is charged\n */\n function updateFlow(\n ISuperfluidToken token,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Update a flow between sender and receiver\n * @dev A flow updated by an approved flow operator (see above for details on callbacks)\n * @param token Super token address\n * @param sender Flow sender address (has granted permissions)\n * @param receiver Flow receiver address\n * @param flowRate New flow rate in amount per second\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n */\n function updateFlowByOperator(\n ISuperfluidToken token,\n address sender,\n address receiver,\n int96 flowRate,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev Get the flow data between `sender` and `receiver` of `token`\n * @param token Super token address\n * @param sender Flow receiver\n * @param receiver Flow sender\n * @return timestamp Timestamp of when the flow is updated\n * @return flowRate The flow rate\n * @return deposit The amount of deposit the flow\n * @return owedDeposit The amount of owed deposit of the flow\n */\n function getFlow(\n ISuperfluidToken token,\n address sender,\n address receiver\n )\n external view virtual\n returns (\n uint256 timestamp,\n int96 flowRate,\n uint256 deposit,\n uint256 owedDeposit\n );\n\n /**\n * @notice Get flow data using agreementId\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param agreementId The agreement ID\n * @return timestamp Timestamp of when the flow is updated\n * @return flowRate The flow rate\n * @return deposit The deposit amount of the flow\n * @return owedDeposit The owed deposit amount of the flow\n */\n function getFlowByID(\n ISuperfluidToken token,\n bytes32 agreementId\n )\n external view virtual\n returns (\n uint256 timestamp,\n int96 flowRate,\n uint256 deposit,\n uint256 owedDeposit\n );\n\n /**\n * @dev Get the aggregated flow info of the account\n * @param token Super token address\n * @param account Account for the query\n * @return timestamp Timestamp of when a flow was last updated for account\n * @return flowRate The net flow rate of token for account\n * @return deposit The sum of all deposits for account's flows\n * @return owedDeposit The sum of all owed deposits for account's flows\n */\n function getAccountFlowInfo(\n ISuperfluidToken token,\n address account\n )\n external view virtual\n returns (\n uint256 timestamp,\n int96 flowRate,\n uint256 deposit,\n uint256 owedDeposit);\n\n /**\n * @dev Get the net flow rate of the account\n * @param token Super token address\n * @param account Account for the query\n * @return flowRate Net flow rate\n */\n function getNetFlow(\n ISuperfluidToken token,\n address account\n )\n external view virtual\n returns (int96 flowRate);\n\n /**\n * @notice Delete the flow between sender and receiver\n * @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n * @param token Super token address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n * @param receiver Flow receiver address\n *\n * @custom:callbacks \n * - AgreementTerminated\n * - agreementId - can be used in getFlowByID\n * - agreementData - abi.encode(address flowSender, address flowReceiver)\n *\n * @custom:note \n * - Both flow sender and receiver may delete the flow\n * - If Sender account is insolvent or in critical state, a solvency agent may\n * also terminate the agreement\n * - Gas fee may be returned to the sender\n */\n function deleteFlow(\n ISuperfluidToken token,\n address sender,\n address receiver,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n\n /**\n * @notice Delete the flow between sender and receiver\n * @dev A flow deleted by an approved flow operator (see above for details on callbacks)\n * @param token Super token address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n * @param receiver Flow receiver address\n */\n function deleteFlowByOperator(\n ISuperfluidToken token,\n address sender,\n address receiver,\n bytes calldata ctx\n )\n external virtual\n returns(bytes memory newCtx);\n \n /**\n * @dev Flow operator updated event\n * @param token Super token address\n * @param sender Flow sender address\n * @param flowOperator Flow operator address\n * @param permissions Octo bitmask representation of permissions\n * @param flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n */\n event FlowOperatorUpdated(\n ISuperfluidToken indexed token,\n address indexed sender,\n address indexed flowOperator,\n uint8 permissions,\n int96 flowRateAllowance\n );\n\n /**\n * @dev Flow updated event\n * @param token Super token address\n * @param sender Flow sender address\n * @param receiver Flow recipient address\n * @param flowRate Flow rate in amount per second for this flow\n * @param totalSenderFlowRate Total flow rate in amount per second for the sender\n * @param totalReceiverFlowRate Total flow rate in amount per second for the receiver\n * @param userData The user provided data\n *\n */\n event FlowUpdated(\n ISuperfluidToken indexed token,\n address indexed sender,\n address indexed receiver,\n int96 flowRate,\n int256 totalSenderFlowRate,\n int256 totalReceiverFlowRate,\n bytes userData\n );\n\n /**\n * @dev Flow updated extension event\n * @param flowOperator Flow operator address - the Context.msgSender\n * @param deposit The deposit amount for the stream\n */\n event FlowUpdatedExtension(\n address indexed flowOperator,\n uint256 deposit\n );\n}\n",
802
802
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol",
803
803
  "ast": {
804
804
  "absolutePath": "project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol",
@@ -1175,8 +1175,8 @@
1175
1175
  "documentation": {
1176
1176
  "id": 16076,
1177
1177
  "nodeType": "StructuredDocumentation",
1178
- "src": "982:474:39",
1179
- "text": " @notice Get the deposit required for creating the flow\n @dev Calculates the deposit based on the liquidationPeriod and flowRate\n @param flowRate Flow rate to be tested\n @return deposit The deposit amount based on flowRate and liquidationPeriod\n NOTE:\n - if calculated deposit (flowRate * liquidationPeriod) is less\n than the minimum deposit, we use the minimum deposit otherwise\n we use the calculated deposit"
1178
+ "src": "982:482:39",
1179
+ "text": " @notice Get the deposit required for creating the flow\n @dev Calculates the deposit based on the liquidationPeriod and flowRate\n @param flowRate Flow rate to be tested\n @return deposit The deposit amount based on flowRate and liquidationPeriod\n @custom:note \n - if calculated deposit (flowRate * liquidationPeriod) is less\n than the minimum deposit, we use the minimum deposit otherwise\n we use the calculated deposit"
1180
1180
  },
1181
1181
  "functionSelector": "8d997f6e",
1182
1182
  "id": 16086,
@@ -1184,7 +1184,7 @@
1184
1184
  "kind": "function",
1185
1185
  "modifiers": [],
1186
1186
  "name": "getDepositRequiredForFlowRate",
1187
- "nameLocation": "1470:29:39",
1187
+ "nameLocation": "1478:29:39",
1188
1188
  "nodeType": "FunctionDefinition",
1189
1189
  "parameters": {
1190
1190
  "id": 16082,
@@ -1195,10 +1195,10 @@
1195
1195
  "id": 16079,
1196
1196
  "mutability": "mutable",
1197
1197
  "name": "token",
1198
- "nameLocation": "1526:5:39",
1198
+ "nameLocation": "1534:5:39",
1199
1199
  "nodeType": "VariableDeclaration",
1200
1200
  "scope": 16086,
1201
- "src": "1509:22:39",
1201
+ "src": "1517:22:39",
1202
1202
  "stateVariable": false,
1203
1203
  "storageLocation": "default",
1204
1204
  "typeDescriptions": {
@@ -1213,10 +1213,10 @@
1213
1213
  "name": "ISuperfluidToken",
1214
1214
  "nodeType": "IdentifierPath",
1215
1215
  "referencedDeclaration": 18721,
1216
- "src": "1509:16:39"
1216
+ "src": "1517:16:39"
1217
1217
  },
1218
1218
  "referencedDeclaration": 18721,
1219
- "src": "1509:16:39",
1219
+ "src": "1517:16:39",
1220
1220
  "typeDescriptions": {
1221
1221
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1222
1222
  "typeString": "contract ISuperfluidToken"
@@ -1229,10 +1229,10 @@
1229
1229
  "id": 16081,
1230
1230
  "mutability": "mutable",
1231
1231
  "name": "flowRate",
1232
- "nameLocation": "1547:8:39",
1232
+ "nameLocation": "1555:8:39",
1233
1233
  "nodeType": "VariableDeclaration",
1234
1234
  "scope": 16086,
1235
- "src": "1541:14:39",
1235
+ "src": "1549:14:39",
1236
1236
  "stateVariable": false,
1237
1237
  "storageLocation": "default",
1238
1238
  "typeDescriptions": {
@@ -1243,7 +1243,7 @@
1243
1243
  "id": 16080,
1244
1244
  "name": "int96",
1245
1245
  "nodeType": "ElementaryTypeName",
1246
- "src": "1541:5:39",
1246
+ "src": "1549:5:39",
1247
1247
  "typeDescriptions": {
1248
1248
  "typeIdentifier": "t_int96",
1249
1249
  "typeString": "int96"
@@ -1252,7 +1252,7 @@
1252
1252
  "visibility": "internal"
1253
1253
  }
1254
1254
  ],
1255
- "src": "1499:57:39"
1255
+ "src": "1507:57:39"
1256
1256
  },
1257
1257
  "returnParameters": {
1258
1258
  "id": 16085,
@@ -1263,10 +1263,10 @@
1263
1263
  "id": 16084,
1264
1264
  "mutability": "mutable",
1265
1265
  "name": "deposit",
1266
- "nameLocation": "1612:7:39",
1266
+ "nameLocation": "1620:7:39",
1267
1267
  "nodeType": "VariableDeclaration",
1268
1268
  "scope": 16086,
1269
- "src": "1604:15:39",
1269
+ "src": "1612:15:39",
1270
1270
  "stateVariable": false,
1271
1271
  "storageLocation": "default",
1272
1272
  "typeDescriptions": {
@@ -1277,7 +1277,7 @@
1277
1277
  "id": 16083,
1278
1278
  "name": "uint256",
1279
1279
  "nodeType": "ElementaryTypeName",
1280
- "src": "1604:7:39",
1280
+ "src": "1612:7:39",
1281
1281
  "typeDescriptions": {
1282
1282
  "typeIdentifier": "t_uint256",
1283
1283
  "typeString": "uint256"
@@ -1286,10 +1286,10 @@
1286
1286
  "visibility": "internal"
1287
1287
  }
1288
1288
  ],
1289
- "src": "1603:17:39"
1289
+ "src": "1611:17:39"
1290
1290
  },
1291
1291
  "scope": 16383,
1292
- "src": "1461:160:39",
1292
+ "src": "1469:160:39",
1293
1293
  "stateMutability": "view",
1294
1294
  "virtual": true,
1295
1295
  "visibility": "external"
@@ -1298,7 +1298,7 @@
1298
1298
  "documentation": {
1299
1299
  "id": 16087,
1300
1300
  "nodeType": "StructuredDocumentation",
1301
- "src": "1627:306:39",
1301
+ "src": "1635:306:39",
1302
1302
  "text": " @dev Returns whether it is the patrician period based on host.getNow()\n @param account The account we are interested in\n @return isCurrentlyPatricianPeriod Whether it is currently the patrician period dictated by governance\n @return timestamp The value of host.getNow()"
1303
1303
  },
1304
1304
  "functionSelector": "4fe9c291",
@@ -1307,7 +1307,7 @@
1307
1307
  "kind": "function",
1308
1308
  "modifiers": [],
1309
1309
  "name": "isPatricianPeriodNow",
1310
- "nameLocation": "1947:20:39",
1310
+ "nameLocation": "1955:20:39",
1311
1311
  "nodeType": "FunctionDefinition",
1312
1312
  "parameters": {
1313
1313
  "id": 16093,
@@ -1318,10 +1318,10 @@
1318
1318
  "id": 16090,
1319
1319
  "mutability": "mutable",
1320
1320
  "name": "token",
1321
- "nameLocation": "1994:5:39",
1321
+ "nameLocation": "2002:5:39",
1322
1322
  "nodeType": "VariableDeclaration",
1323
1323
  "scope": 16099,
1324
- "src": "1977:22:39",
1324
+ "src": "1985:22:39",
1325
1325
  "stateVariable": false,
1326
1326
  "storageLocation": "default",
1327
1327
  "typeDescriptions": {
@@ -1336,10 +1336,10 @@
1336
1336
  "name": "ISuperfluidToken",
1337
1337
  "nodeType": "IdentifierPath",
1338
1338
  "referencedDeclaration": 18721,
1339
- "src": "1977:16:39"
1339
+ "src": "1985:16:39"
1340
1340
  },
1341
1341
  "referencedDeclaration": 18721,
1342
- "src": "1977:16:39",
1342
+ "src": "1985:16:39",
1343
1343
  "typeDescriptions": {
1344
1344
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1345
1345
  "typeString": "contract ISuperfluidToken"
@@ -1352,10 +1352,10 @@
1352
1352
  "id": 16092,
1353
1353
  "mutability": "mutable",
1354
1354
  "name": "account",
1355
- "nameLocation": "2017:7:39",
1355
+ "nameLocation": "2025:7:39",
1356
1356
  "nodeType": "VariableDeclaration",
1357
1357
  "scope": 16099,
1358
- "src": "2009:15:39",
1358
+ "src": "2017:15:39",
1359
1359
  "stateVariable": false,
1360
1360
  "storageLocation": "default",
1361
1361
  "typeDescriptions": {
@@ -1366,7 +1366,7 @@
1366
1366
  "id": 16091,
1367
1367
  "name": "address",
1368
1368
  "nodeType": "ElementaryTypeName",
1369
- "src": "2009:7:39",
1369
+ "src": "2017:7:39",
1370
1370
  "stateMutability": "nonpayable",
1371
1371
  "typeDescriptions": {
1372
1372
  "typeIdentifier": "t_address",
@@ -1376,7 +1376,7 @@
1376
1376
  "visibility": "internal"
1377
1377
  }
1378
1378
  ],
1379
- "src": "1967:58:39"
1379
+ "src": "1975:58:39"
1380
1380
  },
1381
1381
  "returnParameters": {
1382
1382
  "id": 16098,
@@ -1387,10 +1387,10 @@
1387
1387
  "id": 16095,
1388
1388
  "mutability": "mutable",
1389
1389
  "name": "isCurrentlyPatricianPeriod",
1390
- "nameLocation": "2076:26:39",
1390
+ "nameLocation": "2084:26:39",
1391
1391
  "nodeType": "VariableDeclaration",
1392
1392
  "scope": 16099,
1393
- "src": "2071:31:39",
1393
+ "src": "2079:31:39",
1394
1394
  "stateVariable": false,
1395
1395
  "storageLocation": "default",
1396
1396
  "typeDescriptions": {
@@ -1401,7 +1401,7 @@
1401
1401
  "id": 16094,
1402
1402
  "name": "bool",
1403
1403
  "nodeType": "ElementaryTypeName",
1404
- "src": "2071:4:39",
1404
+ "src": "2079:4:39",
1405
1405
  "typeDescriptions": {
1406
1406
  "typeIdentifier": "t_bool",
1407
1407
  "typeString": "bool"
@@ -1414,10 +1414,10 @@
1414
1414
  "id": 16097,
1415
1415
  "mutability": "mutable",
1416
1416
  "name": "timestamp",
1417
- "nameLocation": "2112:9:39",
1417
+ "nameLocation": "2120:9:39",
1418
1418
  "nodeType": "VariableDeclaration",
1419
1419
  "scope": 16099,
1420
- "src": "2104:17:39",
1420
+ "src": "2112:17:39",
1421
1421
  "stateVariable": false,
1422
1422
  "storageLocation": "default",
1423
1423
  "typeDescriptions": {
@@ -1428,7 +1428,7 @@
1428
1428
  "id": 16096,
1429
1429
  "name": "uint256",
1430
1430
  "nodeType": "ElementaryTypeName",
1431
- "src": "2104:7:39",
1431
+ "src": "2112:7:39",
1432
1432
  "typeDescriptions": {
1433
1433
  "typeIdentifier": "t_uint256",
1434
1434
  "typeString": "uint256"
@@ -1437,10 +1437,10 @@
1437
1437
  "visibility": "internal"
1438
1438
  }
1439
1439
  ],
1440
- "src": "2070:52:39"
1440
+ "src": "2078:52:39"
1441
1441
  },
1442
1442
  "scope": 16383,
1443
- "src": "1938:185:39",
1443
+ "src": "1946:185:39",
1444
1444
  "stateMutability": "view",
1445
1445
  "virtual": true,
1446
1446
  "visibility": "public"
@@ -1449,7 +1449,7 @@
1449
1449
  "documentation": {
1450
1450
  "id": 16100,
1451
1451
  "nodeType": "StructuredDocumentation",
1452
- "src": "2129:329:39",
1452
+ "src": "2137:329:39",
1453
1453
  "text": " @dev Returns whether it is the patrician period based on timestamp\n @param account The account we are interested in\n @param timestamp The timestamp we are interested in observing the result of isPatricianPeriod\n @return bool Whether it is currently the patrician period dictated by governance"
1454
1454
  },
1455
1455
  "functionSelector": "4b839e0b",
@@ -1458,7 +1458,7 @@
1458
1458
  "kind": "function",
1459
1459
  "modifiers": [],
1460
1460
  "name": "isPatricianPeriod",
1461
- "nameLocation": "2472:17:39",
1461
+ "nameLocation": "2480:17:39",
1462
1462
  "nodeType": "FunctionDefinition",
1463
1463
  "parameters": {
1464
1464
  "id": 16108,
@@ -1469,10 +1469,10 @@
1469
1469
  "id": 16103,
1470
1470
  "mutability": "mutable",
1471
1471
  "name": "token",
1472
- "nameLocation": "2516:5:39",
1472
+ "nameLocation": "2524:5:39",
1473
1473
  "nodeType": "VariableDeclaration",
1474
1474
  "scope": 16112,
1475
- "src": "2499:22:39",
1475
+ "src": "2507:22:39",
1476
1476
  "stateVariable": false,
1477
1477
  "storageLocation": "default",
1478
1478
  "typeDescriptions": {
@@ -1487,10 +1487,10 @@
1487
1487
  "name": "ISuperfluidToken",
1488
1488
  "nodeType": "IdentifierPath",
1489
1489
  "referencedDeclaration": 18721,
1490
- "src": "2499:16:39"
1490
+ "src": "2507:16:39"
1491
1491
  },
1492
1492
  "referencedDeclaration": 18721,
1493
- "src": "2499:16:39",
1493
+ "src": "2507:16:39",
1494
1494
  "typeDescriptions": {
1495
1495
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1496
1496
  "typeString": "contract ISuperfluidToken"
@@ -1503,10 +1503,10 @@
1503
1503
  "id": 16105,
1504
1504
  "mutability": "mutable",
1505
1505
  "name": "account",
1506
- "nameLocation": "2539:7:39",
1506
+ "nameLocation": "2547:7:39",
1507
1507
  "nodeType": "VariableDeclaration",
1508
1508
  "scope": 16112,
1509
- "src": "2531:15:39",
1509
+ "src": "2539:15:39",
1510
1510
  "stateVariable": false,
1511
1511
  "storageLocation": "default",
1512
1512
  "typeDescriptions": {
@@ -1517,7 +1517,7 @@
1517
1517
  "id": 16104,
1518
1518
  "name": "address",
1519
1519
  "nodeType": "ElementaryTypeName",
1520
- "src": "2531:7:39",
1520
+ "src": "2539:7:39",
1521
1521
  "stateMutability": "nonpayable",
1522
1522
  "typeDescriptions": {
1523
1523
  "typeIdentifier": "t_address",
@@ -1531,10 +1531,10 @@
1531
1531
  "id": 16107,
1532
1532
  "mutability": "mutable",
1533
1533
  "name": "timestamp",
1534
- "nameLocation": "2564:9:39",
1534
+ "nameLocation": "2572:9:39",
1535
1535
  "nodeType": "VariableDeclaration",
1536
1536
  "scope": 16112,
1537
- "src": "2556:17:39",
1537
+ "src": "2564:17:39",
1538
1538
  "stateVariable": false,
1539
1539
  "storageLocation": "default",
1540
1540
  "typeDescriptions": {
@@ -1545,7 +1545,7 @@
1545
1545
  "id": 16106,
1546
1546
  "name": "uint256",
1547
1547
  "nodeType": "ElementaryTypeName",
1548
- "src": "2556:7:39",
1548
+ "src": "2564:7:39",
1549
1549
  "typeDescriptions": {
1550
1550
  "typeIdentifier": "t_uint256",
1551
1551
  "typeString": "uint256"
@@ -1554,7 +1554,7 @@
1554
1554
  "visibility": "internal"
1555
1555
  }
1556
1556
  ],
1557
- "src": "2489:90:39"
1557
+ "src": "2497:90:39"
1558
1558
  },
1559
1559
  "returnParameters": {
1560
1560
  "id": 16111,
@@ -1568,7 +1568,7 @@
1568
1568
  "nameLocation": "-1:-1:-1",
1569
1569
  "nodeType": "VariableDeclaration",
1570
1570
  "scope": 16112,
1571
- "src": "2625:4:39",
1571
+ "src": "2633:4:39",
1572
1572
  "stateVariable": false,
1573
1573
  "storageLocation": "default",
1574
1574
  "typeDescriptions": {
@@ -1579,7 +1579,7 @@
1579
1579
  "id": 16109,
1580
1580
  "name": "bool",
1581
1581
  "nodeType": "ElementaryTypeName",
1582
- "src": "2625:4:39",
1582
+ "src": "2633:4:39",
1583
1583
  "typeDescriptions": {
1584
1584
  "typeIdentifier": "t_bool",
1585
1585
  "typeString": "bool"
@@ -1588,10 +1588,10 @@
1588
1588
  "visibility": "internal"
1589
1589
  }
1590
1590
  ],
1591
- "src": "2624:6:39"
1591
+ "src": "2632:6:39"
1592
1592
  },
1593
1593
  "scope": 16383,
1594
- "src": "2463:168:39",
1594
+ "src": "2471:168:39",
1595
1595
  "stateMutability": "view",
1596
1596
  "virtual": true,
1597
1597
  "visibility": "public"
@@ -1600,7 +1600,7 @@
1600
1600
  "documentation": {
1601
1601
  "id": 16113,
1602
1602
  "nodeType": "StructuredDocumentation",
1603
- "src": "2637:464:39",
1603
+ "src": "2645:464:39",
1604
1604
  "text": " @dev msgSender from `ctx` updates permissions for the `flowOperator` with `flowRateAllowance`\n @param token Super token address\n @param flowOperator The permission grantee address\n @param permissions A bitmask representation of the granted permissions\n @param flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)"
1605
1605
  },
1606
1606
  "functionSelector": "811b3d40",
@@ -1609,7 +1609,7 @@
1609
1609
  "kind": "function",
1610
1610
  "modifiers": [],
1611
1611
  "name": "updateFlowOperatorPermissions",
1612
- "nameLocation": "3115:29:39",
1612
+ "nameLocation": "3123:29:39",
1613
1613
  "nodeType": "FunctionDefinition",
1614
1614
  "parameters": {
1615
1615
  "id": 16125,
@@ -1620,10 +1620,10 @@
1620
1620
  "id": 16116,
1621
1621
  "mutability": "mutable",
1622
1622
  "name": "token",
1623
- "nameLocation": "3171:5:39",
1623
+ "nameLocation": "3179:5:39",
1624
1624
  "nodeType": "VariableDeclaration",
1625
1625
  "scope": 16129,
1626
- "src": "3154:22:39",
1626
+ "src": "3162:22:39",
1627
1627
  "stateVariable": false,
1628
1628
  "storageLocation": "default",
1629
1629
  "typeDescriptions": {
@@ -1638,10 +1638,10 @@
1638
1638
  "name": "ISuperfluidToken",
1639
1639
  "nodeType": "IdentifierPath",
1640
1640
  "referencedDeclaration": 18721,
1641
- "src": "3154:16:39"
1641
+ "src": "3162:16:39"
1642
1642
  },
1643
1643
  "referencedDeclaration": 18721,
1644
- "src": "3154:16:39",
1644
+ "src": "3162:16:39",
1645
1645
  "typeDescriptions": {
1646
1646
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1647
1647
  "typeString": "contract ISuperfluidToken"
@@ -1654,10 +1654,10 @@
1654
1654
  "id": 16118,
1655
1655
  "mutability": "mutable",
1656
1656
  "name": "flowOperator",
1657
- "nameLocation": "3194:12:39",
1657
+ "nameLocation": "3202:12:39",
1658
1658
  "nodeType": "VariableDeclaration",
1659
1659
  "scope": 16129,
1660
- "src": "3186:20:39",
1660
+ "src": "3194:20:39",
1661
1661
  "stateVariable": false,
1662
1662
  "storageLocation": "default",
1663
1663
  "typeDescriptions": {
@@ -1668,7 +1668,7 @@
1668
1668
  "id": 16117,
1669
1669
  "name": "address",
1670
1670
  "nodeType": "ElementaryTypeName",
1671
- "src": "3186:7:39",
1671
+ "src": "3194:7:39",
1672
1672
  "stateMutability": "nonpayable",
1673
1673
  "typeDescriptions": {
1674
1674
  "typeIdentifier": "t_address",
@@ -1682,10 +1682,10 @@
1682
1682
  "id": 16120,
1683
1683
  "mutability": "mutable",
1684
1684
  "name": "permissions",
1685
- "nameLocation": "3222:11:39",
1685
+ "nameLocation": "3230:11:39",
1686
1686
  "nodeType": "VariableDeclaration",
1687
1687
  "scope": 16129,
1688
- "src": "3216:17:39",
1688
+ "src": "3224:17:39",
1689
1689
  "stateVariable": false,
1690
1690
  "storageLocation": "default",
1691
1691
  "typeDescriptions": {
@@ -1696,7 +1696,7 @@
1696
1696
  "id": 16119,
1697
1697
  "name": "uint8",
1698
1698
  "nodeType": "ElementaryTypeName",
1699
- "src": "3216:5:39",
1699
+ "src": "3224:5:39",
1700
1700
  "typeDescriptions": {
1701
1701
  "typeIdentifier": "t_uint8",
1702
1702
  "typeString": "uint8"
@@ -1709,10 +1709,10 @@
1709
1709
  "id": 16122,
1710
1710
  "mutability": "mutable",
1711
1711
  "name": "flowRateAllowance",
1712
- "nameLocation": "3249:17:39",
1712
+ "nameLocation": "3257:17:39",
1713
1713
  "nodeType": "VariableDeclaration",
1714
1714
  "scope": 16129,
1715
- "src": "3243:23:39",
1715
+ "src": "3251:23:39",
1716
1716
  "stateVariable": false,
1717
1717
  "storageLocation": "default",
1718
1718
  "typeDescriptions": {
@@ -1723,7 +1723,7 @@
1723
1723
  "id": 16121,
1724
1724
  "name": "int96",
1725
1725
  "nodeType": "ElementaryTypeName",
1726
- "src": "3243:5:39",
1726
+ "src": "3251:5:39",
1727
1727
  "typeDescriptions": {
1728
1728
  "typeIdentifier": "t_int96",
1729
1729
  "typeString": "int96"
@@ -1736,10 +1736,10 @@
1736
1736
  "id": 16124,
1737
1737
  "mutability": "mutable",
1738
1738
  "name": "ctx",
1739
- "nameLocation": "3291:3:39",
1739
+ "nameLocation": "3299:3:39",
1740
1740
  "nodeType": "VariableDeclaration",
1741
1741
  "scope": 16129,
1742
- "src": "3276:18:39",
1742
+ "src": "3284:18:39",
1743
1743
  "stateVariable": false,
1744
1744
  "storageLocation": "calldata",
1745
1745
  "typeDescriptions": {
@@ -1750,7 +1750,7 @@
1750
1750
  "id": 16123,
1751
1751
  "name": "bytes",
1752
1752
  "nodeType": "ElementaryTypeName",
1753
- "src": "3276:5:39",
1753
+ "src": "3284:5:39",
1754
1754
  "typeDescriptions": {
1755
1755
  "typeIdentifier": "t_bytes_storage_ptr",
1756
1756
  "typeString": "bytes"
@@ -1759,7 +1759,7 @@
1759
1759
  "visibility": "internal"
1760
1760
  }
1761
1761
  ],
1762
- "src": "3144:156:39"
1762
+ "src": "3152:156:39"
1763
1763
  },
1764
1764
  "returnParameters": {
1765
1765
  "id": 16128,
@@ -1770,10 +1770,10 @@
1770
1770
  "id": 16127,
1771
1771
  "mutability": "mutable",
1772
1772
  "name": "newCtx",
1773
- "nameLocation": "3356:6:39",
1773
+ "nameLocation": "3364:6:39",
1774
1774
  "nodeType": "VariableDeclaration",
1775
1775
  "scope": 16129,
1776
- "src": "3343:19:39",
1776
+ "src": "3351:19:39",
1777
1777
  "stateVariable": false,
1778
1778
  "storageLocation": "memory",
1779
1779
  "typeDescriptions": {
@@ -1784,7 +1784,7 @@
1784
1784
  "id": 16126,
1785
1785
  "name": "bytes",
1786
1786
  "nodeType": "ElementaryTypeName",
1787
- "src": "3343:5:39",
1787
+ "src": "3351:5:39",
1788
1788
  "typeDescriptions": {
1789
1789
  "typeIdentifier": "t_bytes_storage_ptr",
1790
1790
  "typeString": "bytes"
@@ -1793,10 +1793,10 @@
1793
1793
  "visibility": "internal"
1794
1794
  }
1795
1795
  ],
1796
- "src": "3342:21:39"
1796
+ "src": "3350:21:39"
1797
1797
  },
1798
1798
  "scope": 16383,
1799
- "src": "3106:258:39",
1799
+ "src": "3114:258:39",
1800
1800
  "stateMutability": "nonpayable",
1801
1801
  "virtual": true,
1802
1802
  "visibility": "external"
@@ -1805,7 +1805,7 @@
1805
1805
  "documentation": {
1806
1806
  "id": 16130,
1807
1807
  "nodeType": "StructuredDocumentation",
1808
- "src": "3370:295:39",
1808
+ "src": "3378:295:39",
1809
1809
  "text": " @dev msgSender from `ctx` grants `flowOperator` all permissions with flowRateAllowance as type(int96).max\n @param token Super token address\n @param flowOperator The permission grantee address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)"
1810
1810
  },
1811
1811
  "functionSelector": "54b770e3",
@@ -1814,7 +1814,7 @@
1814
1814
  "kind": "function",
1815
1815
  "modifiers": [],
1816
1816
  "name": "authorizeFlowOperatorWithFullControl",
1817
- "nameLocation": "3679:36:39",
1817
+ "nameLocation": "3687:36:39",
1818
1818
  "nodeType": "FunctionDefinition",
1819
1819
  "parameters": {
1820
1820
  "id": 16138,
@@ -1825,10 +1825,10 @@
1825
1825
  "id": 16133,
1826
1826
  "mutability": "mutable",
1827
1827
  "name": "token",
1828
- "nameLocation": "3742:5:39",
1828
+ "nameLocation": "3750:5:39",
1829
1829
  "nodeType": "VariableDeclaration",
1830
1830
  "scope": 16142,
1831
- "src": "3725:22:39",
1831
+ "src": "3733:22:39",
1832
1832
  "stateVariable": false,
1833
1833
  "storageLocation": "default",
1834
1834
  "typeDescriptions": {
@@ -1843,10 +1843,10 @@
1843
1843
  "name": "ISuperfluidToken",
1844
1844
  "nodeType": "IdentifierPath",
1845
1845
  "referencedDeclaration": 18721,
1846
- "src": "3725:16:39"
1846
+ "src": "3733:16:39"
1847
1847
  },
1848
1848
  "referencedDeclaration": 18721,
1849
- "src": "3725:16:39",
1849
+ "src": "3733:16:39",
1850
1850
  "typeDescriptions": {
1851
1851
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1852
1852
  "typeString": "contract ISuperfluidToken"
@@ -1859,10 +1859,10 @@
1859
1859
  "id": 16135,
1860
1860
  "mutability": "mutable",
1861
1861
  "name": "flowOperator",
1862
- "nameLocation": "3765:12:39",
1862
+ "nameLocation": "3773:12:39",
1863
1863
  "nodeType": "VariableDeclaration",
1864
1864
  "scope": 16142,
1865
- "src": "3757:20:39",
1865
+ "src": "3765:20:39",
1866
1866
  "stateVariable": false,
1867
1867
  "storageLocation": "default",
1868
1868
  "typeDescriptions": {
@@ -1873,7 +1873,7 @@
1873
1873
  "id": 16134,
1874
1874
  "name": "address",
1875
1875
  "nodeType": "ElementaryTypeName",
1876
- "src": "3757:7:39",
1876
+ "src": "3765:7:39",
1877
1877
  "stateMutability": "nonpayable",
1878
1878
  "typeDescriptions": {
1879
1879
  "typeIdentifier": "t_address",
@@ -1887,10 +1887,10 @@
1887
1887
  "id": 16137,
1888
1888
  "mutability": "mutable",
1889
1889
  "name": "ctx",
1890
- "nameLocation": "3802:3:39",
1890
+ "nameLocation": "3810:3:39",
1891
1891
  "nodeType": "VariableDeclaration",
1892
1892
  "scope": 16142,
1893
- "src": "3787:18:39",
1893
+ "src": "3795:18:39",
1894
1894
  "stateVariable": false,
1895
1895
  "storageLocation": "calldata",
1896
1896
  "typeDescriptions": {
@@ -1901,7 +1901,7 @@
1901
1901
  "id": 16136,
1902
1902
  "name": "bytes",
1903
1903
  "nodeType": "ElementaryTypeName",
1904
- "src": "3787:5:39",
1904
+ "src": "3795:5:39",
1905
1905
  "typeDescriptions": {
1906
1906
  "typeIdentifier": "t_bytes_storage_ptr",
1907
1907
  "typeString": "bytes"
@@ -1910,7 +1910,7 @@
1910
1910
  "visibility": "internal"
1911
1911
  }
1912
1912
  ],
1913
- "src": "3715:96:39"
1913
+ "src": "3723:96:39"
1914
1914
  },
1915
1915
  "returnParameters": {
1916
1916
  "id": 16141,
@@ -1921,10 +1921,10 @@
1921
1921
  "id": 16140,
1922
1922
  "mutability": "mutable",
1923
1923
  "name": "newCtx",
1924
- "nameLocation": "3866:6:39",
1924
+ "nameLocation": "3874:6:39",
1925
1925
  "nodeType": "VariableDeclaration",
1926
1926
  "scope": 16142,
1927
- "src": "3853:19:39",
1927
+ "src": "3861:19:39",
1928
1928
  "stateVariable": false,
1929
1929
  "storageLocation": "memory",
1930
1930
  "typeDescriptions": {
@@ -1935,7 +1935,7 @@
1935
1935
  "id": 16139,
1936
1936
  "name": "bytes",
1937
1937
  "nodeType": "ElementaryTypeName",
1938
- "src": "3853:5:39",
1938
+ "src": "3861:5:39",
1939
1939
  "typeDescriptions": {
1940
1940
  "typeIdentifier": "t_bytes_storage_ptr",
1941
1941
  "typeString": "bytes"
@@ -1944,10 +1944,10 @@
1944
1944
  "visibility": "internal"
1945
1945
  }
1946
1946
  ],
1947
- "src": "3852:21:39"
1947
+ "src": "3860:21:39"
1948
1948
  },
1949
1949
  "scope": 16383,
1950
- "src": "3670:204:39",
1950
+ "src": "3678:204:39",
1951
1951
  "stateMutability": "nonpayable",
1952
1952
  "virtual": true,
1953
1953
  "visibility": "external"
@@ -1956,7 +1956,7 @@
1956
1956
  "documentation": {
1957
1957
  "id": 16143,
1958
1958
  "nodeType": "StructuredDocumentation",
1959
- "src": "3881:346:39",
1959
+ "src": "3889:346:39",
1960
1960
  "text": " @notice msgSender from `ctx` revokes `flowOperator` create/update/delete permissions\n @dev `permissions` and `flowRateAllowance` will both be set to 0\n @param token Super token address\n @param flowOperator The permission grantee address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)"
1961
1961
  },
1962
1962
  "functionSelector": "062e56ec",
@@ -1965,7 +1965,7 @@
1965
1965
  "kind": "function",
1966
1966
  "modifiers": [],
1967
1967
  "name": "revokeFlowOperatorWithFullControl",
1968
- "nameLocation": "4241:33:39",
1968
+ "nameLocation": "4249:33:39",
1969
1969
  "nodeType": "FunctionDefinition",
1970
1970
  "parameters": {
1971
1971
  "id": 16151,
@@ -1976,10 +1976,10 @@
1976
1976
  "id": 16146,
1977
1977
  "mutability": "mutable",
1978
1978
  "name": "token",
1979
- "nameLocation": "4301:5:39",
1979
+ "nameLocation": "4309:5:39",
1980
1980
  "nodeType": "VariableDeclaration",
1981
1981
  "scope": 16155,
1982
- "src": "4284:22:39",
1982
+ "src": "4292:22:39",
1983
1983
  "stateVariable": false,
1984
1984
  "storageLocation": "default",
1985
1985
  "typeDescriptions": {
@@ -1994,10 +1994,10 @@
1994
1994
  "name": "ISuperfluidToken",
1995
1995
  "nodeType": "IdentifierPath",
1996
1996
  "referencedDeclaration": 18721,
1997
- "src": "4284:16:39"
1997
+ "src": "4292:16:39"
1998
1998
  },
1999
1999
  "referencedDeclaration": 18721,
2000
- "src": "4284:16:39",
2000
+ "src": "4292:16:39",
2001
2001
  "typeDescriptions": {
2002
2002
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2003
2003
  "typeString": "contract ISuperfluidToken"
@@ -2010,10 +2010,10 @@
2010
2010
  "id": 16148,
2011
2011
  "mutability": "mutable",
2012
2012
  "name": "flowOperator",
2013
- "nameLocation": "4324:12:39",
2013
+ "nameLocation": "4332:12:39",
2014
2014
  "nodeType": "VariableDeclaration",
2015
2015
  "scope": 16155,
2016
- "src": "4316:20:39",
2016
+ "src": "4324:20:39",
2017
2017
  "stateVariable": false,
2018
2018
  "storageLocation": "default",
2019
2019
  "typeDescriptions": {
@@ -2024,7 +2024,7 @@
2024
2024
  "id": 16147,
2025
2025
  "name": "address",
2026
2026
  "nodeType": "ElementaryTypeName",
2027
- "src": "4316:7:39",
2027
+ "src": "4324:7:39",
2028
2028
  "stateMutability": "nonpayable",
2029
2029
  "typeDescriptions": {
2030
2030
  "typeIdentifier": "t_address",
@@ -2038,10 +2038,10 @@
2038
2038
  "id": 16150,
2039
2039
  "mutability": "mutable",
2040
2040
  "name": "ctx",
2041
- "nameLocation": "4361:3:39",
2041
+ "nameLocation": "4369:3:39",
2042
2042
  "nodeType": "VariableDeclaration",
2043
2043
  "scope": 16155,
2044
- "src": "4346:18:39",
2044
+ "src": "4354:18:39",
2045
2045
  "stateVariable": false,
2046
2046
  "storageLocation": "calldata",
2047
2047
  "typeDescriptions": {
@@ -2052,7 +2052,7 @@
2052
2052
  "id": 16149,
2053
2053
  "name": "bytes",
2054
2054
  "nodeType": "ElementaryTypeName",
2055
- "src": "4346:5:39",
2055
+ "src": "4354:5:39",
2056
2056
  "typeDescriptions": {
2057
2057
  "typeIdentifier": "t_bytes_storage_ptr",
2058
2058
  "typeString": "bytes"
@@ -2061,7 +2061,7 @@
2061
2061
  "visibility": "internal"
2062
2062
  }
2063
2063
  ],
2064
- "src": "4274:96:39"
2064
+ "src": "4282:96:39"
2065
2065
  },
2066
2066
  "returnParameters": {
2067
2067
  "id": 16154,
@@ -2072,10 +2072,10 @@
2072
2072
  "id": 16153,
2073
2073
  "mutability": "mutable",
2074
2074
  "name": "newCtx",
2075
- "nameLocation": "4425:6:39",
2075
+ "nameLocation": "4433:6:39",
2076
2076
  "nodeType": "VariableDeclaration",
2077
2077
  "scope": 16155,
2078
- "src": "4412:19:39",
2078
+ "src": "4420:19:39",
2079
2079
  "stateVariable": false,
2080
2080
  "storageLocation": "memory",
2081
2081
  "typeDescriptions": {
@@ -2086,7 +2086,7 @@
2086
2086
  "id": 16152,
2087
2087
  "name": "bytes",
2088
2088
  "nodeType": "ElementaryTypeName",
2089
- "src": "4412:5:39",
2089
+ "src": "4420:5:39",
2090
2090
  "typeDescriptions": {
2091
2091
  "typeIdentifier": "t_bytes_storage_ptr",
2092
2092
  "typeString": "bytes"
@@ -2095,10 +2095,10 @@
2095
2095
  "visibility": "internal"
2096
2096
  }
2097
2097
  ],
2098
- "src": "4411:21:39"
2098
+ "src": "4419:21:39"
2099
2099
  },
2100
2100
  "scope": 16383,
2101
- "src": "4232:201:39",
2101
+ "src": "4240:201:39",
2102
2102
  "stateMutability": "nonpayable",
2103
2103
  "virtual": true,
2104
2104
  "visibility": "external"
@@ -2107,7 +2107,7 @@
2107
2107
  "documentation": {
2108
2108
  "id": 16156,
2109
2109
  "nodeType": "StructuredDocumentation",
2110
- "src": "4439:553:39",
2110
+ "src": "4447:553:39",
2111
2111
  "text": " @notice Get the permissions of a flow operator between `sender` and `flowOperator` for `token`\n @param token Super token address\n @param sender The permission granter address\n @param flowOperator The permission grantee address\n @return flowOperatorId The keccak256 hash of encoded string \"flowOperator\", sender and flowOperator\n @return permissions A bitmask representation of the granted permissions\n @return flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)"
2112
2112
  },
2113
2113
  "functionSelector": "00422bbe",
@@ -2116,7 +2116,7 @@
2116
2116
  "kind": "function",
2117
2117
  "modifiers": [],
2118
2118
  "name": "getFlowOperatorData",
2119
- "nameLocation": "5006:19:39",
2119
+ "nameLocation": "5014:19:39",
2120
2120
  "nodeType": "FunctionDefinition",
2121
2121
  "parameters": {
2122
2122
  "id": 16164,
@@ -2127,10 +2127,10 @@
2127
2127
  "id": 16159,
2128
2128
  "mutability": "mutable",
2129
2129
  "name": "token",
2130
- "nameLocation": "5051:5:39",
2130
+ "nameLocation": "5059:5:39",
2131
2131
  "nodeType": "VariableDeclaration",
2132
2132
  "scope": 16172,
2133
- "src": "5034:22:39",
2133
+ "src": "5042:22:39",
2134
2134
  "stateVariable": false,
2135
2135
  "storageLocation": "default",
2136
2136
  "typeDescriptions": {
@@ -2145,10 +2145,10 @@
2145
2145
  "name": "ISuperfluidToken",
2146
2146
  "nodeType": "IdentifierPath",
2147
2147
  "referencedDeclaration": 18721,
2148
- "src": "5034:16:39"
2148
+ "src": "5042:16:39"
2149
2149
  },
2150
2150
  "referencedDeclaration": 18721,
2151
- "src": "5034:16:39",
2151
+ "src": "5042:16:39",
2152
2152
  "typeDescriptions": {
2153
2153
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2154
2154
  "typeString": "contract ISuperfluidToken"
@@ -2161,10 +2161,10 @@
2161
2161
  "id": 16161,
2162
2162
  "mutability": "mutable",
2163
2163
  "name": "sender",
2164
- "nameLocation": "5073:6:39",
2164
+ "nameLocation": "5081:6:39",
2165
2165
  "nodeType": "VariableDeclaration",
2166
2166
  "scope": 16172,
2167
- "src": "5065:14:39",
2167
+ "src": "5073:14:39",
2168
2168
  "stateVariable": false,
2169
2169
  "storageLocation": "default",
2170
2170
  "typeDescriptions": {
@@ -2175,7 +2175,7 @@
2175
2175
  "id": 16160,
2176
2176
  "name": "address",
2177
2177
  "nodeType": "ElementaryTypeName",
2178
- "src": "5065:7:39",
2178
+ "src": "5073:7:39",
2179
2179
  "stateMutability": "nonpayable",
2180
2180
  "typeDescriptions": {
2181
2181
  "typeIdentifier": "t_address",
@@ -2189,10 +2189,10 @@
2189
2189
  "id": 16163,
2190
2190
  "mutability": "mutable",
2191
2191
  "name": "flowOperator",
2192
- "nameLocation": "5096:12:39",
2192
+ "nameLocation": "5104:12:39",
2193
2193
  "nodeType": "VariableDeclaration",
2194
2194
  "scope": 16172,
2195
- "src": "5088:20:39",
2195
+ "src": "5096:20:39",
2196
2196
  "stateVariable": false,
2197
2197
  "storageLocation": "default",
2198
2198
  "typeDescriptions": {
@@ -2203,7 +2203,7 @@
2203
2203
  "id": 16162,
2204
2204
  "name": "address",
2205
2205
  "nodeType": "ElementaryTypeName",
2206
- "src": "5088:7:39",
2206
+ "src": "5096:7:39",
2207
2207
  "stateMutability": "nonpayable",
2208
2208
  "typeDescriptions": {
2209
2209
  "typeIdentifier": "t_address",
@@ -2213,7 +2213,7 @@
2213
2213
  "visibility": "internal"
2214
2214
  }
2215
2215
  ],
2216
- "src": "5025:89:39"
2216
+ "src": "5033:89:39"
2217
2217
  },
2218
2218
  "returnParameters": {
2219
2219
  "id": 16171,
@@ -2224,10 +2224,10 @@
2224
2224
  "id": 16166,
2225
2225
  "mutability": "mutable",
2226
2226
  "name": "flowOperatorId",
2227
- "nameLocation": "5181:14:39",
2227
+ "nameLocation": "5189:14:39",
2228
2228
  "nodeType": "VariableDeclaration",
2229
2229
  "scope": 16172,
2230
- "src": "5173:22:39",
2230
+ "src": "5181:22:39",
2231
2231
  "stateVariable": false,
2232
2232
  "storageLocation": "default",
2233
2233
  "typeDescriptions": {
@@ -2238,7 +2238,7 @@
2238
2238
  "id": 16165,
2239
2239
  "name": "bytes32",
2240
2240
  "nodeType": "ElementaryTypeName",
2241
- "src": "5173:7:39",
2241
+ "src": "5181:7:39",
2242
2242
  "typeDescriptions": {
2243
2243
  "typeIdentifier": "t_bytes32",
2244
2244
  "typeString": "bytes32"
@@ -2251,10 +2251,10 @@
2251
2251
  "id": 16168,
2252
2252
  "mutability": "mutable",
2253
2253
  "name": "permissions",
2254
- "nameLocation": "5215:11:39",
2254
+ "nameLocation": "5223:11:39",
2255
2255
  "nodeType": "VariableDeclaration",
2256
2256
  "scope": 16172,
2257
- "src": "5209:17:39",
2257
+ "src": "5217:17:39",
2258
2258
  "stateVariable": false,
2259
2259
  "storageLocation": "default",
2260
2260
  "typeDescriptions": {
@@ -2265,7 +2265,7 @@
2265
2265
  "id": 16167,
2266
2266
  "name": "uint8",
2267
2267
  "nodeType": "ElementaryTypeName",
2268
- "src": "5209:5:39",
2268
+ "src": "5217:5:39",
2269
2269
  "typeDescriptions": {
2270
2270
  "typeIdentifier": "t_uint8",
2271
2271
  "typeString": "uint8"
@@ -2278,10 +2278,10 @@
2278
2278
  "id": 16170,
2279
2279
  "mutability": "mutable",
2280
2280
  "name": "flowRateAllowance",
2281
- "nameLocation": "5246:17:39",
2281
+ "nameLocation": "5254:17:39",
2282
2282
  "nodeType": "VariableDeclaration",
2283
2283
  "scope": 16172,
2284
- "src": "5240:23:39",
2284
+ "src": "5248:23:39",
2285
2285
  "stateVariable": false,
2286
2286
  "storageLocation": "default",
2287
2287
  "typeDescriptions": {
@@ -2292,7 +2292,7 @@
2292
2292
  "id": 16169,
2293
2293
  "name": "int96",
2294
2294
  "nodeType": "ElementaryTypeName",
2295
- "src": "5240:5:39",
2295
+ "src": "5248:5:39",
2296
2296
  "typeDescriptions": {
2297
2297
  "typeIdentifier": "t_int96",
2298
2298
  "typeString": "int96"
@@ -2301,10 +2301,10 @@
2301
2301
  "visibility": "internal"
2302
2302
  }
2303
2303
  ],
2304
- "src": "5159:114:39"
2304
+ "src": "5167:114:39"
2305
2305
  },
2306
2306
  "scope": 16383,
2307
- "src": "4997:277:39",
2307
+ "src": "5005:277:39",
2308
2308
  "stateMutability": "view",
2309
2309
  "virtual": true,
2310
2310
  "visibility": "public"
@@ -2313,7 +2313,7 @@
2313
2313
  "documentation": {
2314
2314
  "id": 16173,
2315
2315
  "nodeType": "StructuredDocumentation",
2316
- "src": "5280:394:39",
2316
+ "src": "5288:394:39",
2317
2317
  "text": " @notice Get flow operator using flowOperatorId\n @param token Super token address\n @param flowOperatorId The keccak256 hash of encoded string \"flowOperator\", sender and flowOperator\n @return permissions A bitmask representation of the granted permissions\n @return flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)"
2318
2318
  },
2319
2319
  "functionSelector": "09d256ef",
@@ -2322,7 +2322,7 @@
2322
2322
  "kind": "function",
2323
2323
  "modifiers": [],
2324
2324
  "name": "getFlowOperatorDataByID",
2325
- "nameLocation": "5688:23:39",
2325
+ "nameLocation": "5696:23:39",
2326
2326
  "nodeType": "FunctionDefinition",
2327
2327
  "parameters": {
2328
2328
  "id": 16179,
@@ -2333,10 +2333,10 @@
2333
2333
  "id": 16176,
2334
2334
  "mutability": "mutable",
2335
2335
  "name": "token",
2336
- "nameLocation": "5737:5:39",
2336
+ "nameLocation": "5745:5:39",
2337
2337
  "nodeType": "VariableDeclaration",
2338
2338
  "scope": 16185,
2339
- "src": "5720:22:39",
2339
+ "src": "5728:22:39",
2340
2340
  "stateVariable": false,
2341
2341
  "storageLocation": "default",
2342
2342
  "typeDescriptions": {
@@ -2351,10 +2351,10 @@
2351
2351
  "name": "ISuperfluidToken",
2352
2352
  "nodeType": "IdentifierPath",
2353
2353
  "referencedDeclaration": 18721,
2354
- "src": "5720:16:39"
2354
+ "src": "5728:16:39"
2355
2355
  },
2356
2356
  "referencedDeclaration": 18721,
2357
- "src": "5720:16:39",
2357
+ "src": "5728:16:39",
2358
2358
  "typeDescriptions": {
2359
2359
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2360
2360
  "typeString": "contract ISuperfluidToken"
@@ -2367,10 +2367,10 @@
2367
2367
  "id": 16178,
2368
2368
  "mutability": "mutable",
2369
2369
  "name": "flowOperatorId",
2370
- "nameLocation": "5759:14:39",
2370
+ "nameLocation": "5767:14:39",
2371
2371
  "nodeType": "VariableDeclaration",
2372
2372
  "scope": 16185,
2373
- "src": "5751:22:39",
2373
+ "src": "5759:22:39",
2374
2374
  "stateVariable": false,
2375
2375
  "storageLocation": "default",
2376
2376
  "typeDescriptions": {
@@ -2381,7 +2381,7 @@
2381
2381
  "id": 16177,
2382
2382
  "name": "bytes32",
2383
2383
  "nodeType": "ElementaryTypeName",
2384
- "src": "5751:7:39",
2384
+ "src": "5759:7:39",
2385
2385
  "typeDescriptions": {
2386
2386
  "typeIdentifier": "t_bytes32",
2387
2387
  "typeString": "bytes32"
@@ -2390,7 +2390,7 @@
2390
2390
  "visibility": "internal"
2391
2391
  }
2392
2392
  ],
2393
- "src": "5711:68:39"
2393
+ "src": "5719:68:39"
2394
2394
  },
2395
2395
  "returnParameters": {
2396
2396
  "id": 16184,
@@ -2401,10 +2401,10 @@
2401
2401
  "id": 16181,
2402
2402
  "mutability": "mutable",
2403
2403
  "name": "permissions",
2404
- "nameLocation": "5846:11:39",
2404
+ "nameLocation": "5854:11:39",
2405
2405
  "nodeType": "VariableDeclaration",
2406
2406
  "scope": 16185,
2407
- "src": "5840:17:39",
2407
+ "src": "5848:17:39",
2408
2408
  "stateVariable": false,
2409
2409
  "storageLocation": "default",
2410
2410
  "typeDescriptions": {
@@ -2415,7 +2415,7 @@
2415
2415
  "id": 16180,
2416
2416
  "name": "uint8",
2417
2417
  "nodeType": "ElementaryTypeName",
2418
- "src": "5840:5:39",
2418
+ "src": "5848:5:39",
2419
2419
  "typeDescriptions": {
2420
2420
  "typeIdentifier": "t_uint8",
2421
2421
  "typeString": "uint8"
@@ -2428,10 +2428,10 @@
2428
2428
  "id": 16183,
2429
2429
  "mutability": "mutable",
2430
2430
  "name": "flowRateAllowance",
2431
- "nameLocation": "5877:17:39",
2431
+ "nameLocation": "5885:17:39",
2432
2432
  "nodeType": "VariableDeclaration",
2433
2433
  "scope": 16185,
2434
- "src": "5871:23:39",
2434
+ "src": "5879:23:39",
2435
2435
  "stateVariable": false,
2436
2436
  "storageLocation": "default",
2437
2437
  "typeDescriptions": {
@@ -2442,7 +2442,7 @@
2442
2442
  "id": 16182,
2443
2443
  "name": "int96",
2444
2444
  "nodeType": "ElementaryTypeName",
2445
- "src": "5871:5:39",
2445
+ "src": "5879:5:39",
2446
2446
  "typeDescriptions": {
2447
2447
  "typeIdentifier": "t_int96",
2448
2448
  "typeString": "int96"
@@ -2451,10 +2451,10 @@
2451
2451
  "visibility": "internal"
2452
2452
  }
2453
2453
  ],
2454
- "src": "5826:78:39"
2454
+ "src": "5834:78:39"
2455
2455
  },
2456
2456
  "scope": 16383,
2457
- "src": "5679:226:39",
2457
+ "src": "5687:226:39",
2458
2458
  "stateMutability": "view",
2459
2459
  "virtual": true,
2460
2460
  "visibility": "external"
@@ -2463,8 +2463,8 @@
2463
2463
  "documentation": {
2464
2464
  "id": 16186,
2465
2465
  "nodeType": "StructuredDocumentation",
2466
- "src": "5911:737:39",
2467
- "text": " @notice Create a flow betwen ctx.msgSender and receiver\n @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n @param token Super token address\n @param receiver Flow receiver address\n @param flowRate New flow rate in amount per second\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n - AgreementCreated\n - agreementId - can be used in getFlowByID\n - agreementData - abi.encode(address flowSender, address flowReceiver)\n NOTE:\n - A deposit is taken as safety margin for the solvency agents\n - A extra gas fee may be taken to pay for solvency agent liquidations"
2466
+ "src": "5919:741:39",
2467
+ "text": " @notice Create a flow betwen ctx.msgSender and receiver\n @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n @param token Super token address\n @param receiver Flow receiver address\n @param flowRate New flow rate in amount per second\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n - AgreementCreated\n - agreementId - can be used in getFlowByID\n - agreementData - abi.encode(address flowSender, address flowReceiver)\n @custom:note \n - A deposit is taken as safety margin for the solvency agents\n - A extra gas fee may be taken to pay for solvency agent liquidations"
2468
2468
  },
2469
2469
  "functionSelector": "62fc305e",
2470
2470
  "id": 16200,
@@ -2472,7 +2472,7 @@
2472
2472
  "kind": "function",
2473
2473
  "modifiers": [],
2474
2474
  "name": "createFlow",
2475
- "nameLocation": "6662:10:39",
2475
+ "nameLocation": "6674:10:39",
2476
2476
  "nodeType": "FunctionDefinition",
2477
2477
  "parameters": {
2478
2478
  "id": 16196,
@@ -2483,10 +2483,10 @@
2483
2483
  "id": 16189,
2484
2484
  "mutability": "mutable",
2485
2485
  "name": "token",
2486
- "nameLocation": "6699:5:39",
2486
+ "nameLocation": "6711:5:39",
2487
2487
  "nodeType": "VariableDeclaration",
2488
2488
  "scope": 16200,
2489
- "src": "6682:22:39",
2489
+ "src": "6694:22:39",
2490
2490
  "stateVariable": false,
2491
2491
  "storageLocation": "default",
2492
2492
  "typeDescriptions": {
@@ -2501,10 +2501,10 @@
2501
2501
  "name": "ISuperfluidToken",
2502
2502
  "nodeType": "IdentifierPath",
2503
2503
  "referencedDeclaration": 18721,
2504
- "src": "6682:16:39"
2504
+ "src": "6694:16:39"
2505
2505
  },
2506
2506
  "referencedDeclaration": 18721,
2507
- "src": "6682:16:39",
2507
+ "src": "6694:16:39",
2508
2508
  "typeDescriptions": {
2509
2509
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2510
2510
  "typeString": "contract ISuperfluidToken"
@@ -2517,10 +2517,10 @@
2517
2517
  "id": 16191,
2518
2518
  "mutability": "mutable",
2519
2519
  "name": "receiver",
2520
- "nameLocation": "6722:8:39",
2520
+ "nameLocation": "6734:8:39",
2521
2521
  "nodeType": "VariableDeclaration",
2522
2522
  "scope": 16200,
2523
- "src": "6714:16:39",
2523
+ "src": "6726:16:39",
2524
2524
  "stateVariable": false,
2525
2525
  "storageLocation": "default",
2526
2526
  "typeDescriptions": {
@@ -2531,7 +2531,7 @@
2531
2531
  "id": 16190,
2532
2532
  "name": "address",
2533
2533
  "nodeType": "ElementaryTypeName",
2534
- "src": "6714:7:39",
2534
+ "src": "6726:7:39",
2535
2535
  "stateMutability": "nonpayable",
2536
2536
  "typeDescriptions": {
2537
2537
  "typeIdentifier": "t_address",
@@ -2545,10 +2545,10 @@
2545
2545
  "id": 16193,
2546
2546
  "mutability": "mutable",
2547
2547
  "name": "flowRate",
2548
- "nameLocation": "6746:8:39",
2548
+ "nameLocation": "6758:8:39",
2549
2549
  "nodeType": "VariableDeclaration",
2550
2550
  "scope": 16200,
2551
- "src": "6740:14:39",
2551
+ "src": "6752:14:39",
2552
2552
  "stateVariable": false,
2553
2553
  "storageLocation": "default",
2554
2554
  "typeDescriptions": {
@@ -2559,7 +2559,7 @@
2559
2559
  "id": 16192,
2560
2560
  "name": "int96",
2561
2561
  "nodeType": "ElementaryTypeName",
2562
- "src": "6740:5:39",
2562
+ "src": "6752:5:39",
2563
2563
  "typeDescriptions": {
2564
2564
  "typeIdentifier": "t_int96",
2565
2565
  "typeString": "int96"
@@ -2572,10 +2572,10 @@
2572
2572
  "id": 16195,
2573
2573
  "mutability": "mutable",
2574
2574
  "name": "ctx",
2575
- "nameLocation": "6779:3:39",
2575
+ "nameLocation": "6791:3:39",
2576
2576
  "nodeType": "VariableDeclaration",
2577
2577
  "scope": 16200,
2578
- "src": "6764:18:39",
2578
+ "src": "6776:18:39",
2579
2579
  "stateVariable": false,
2580
2580
  "storageLocation": "calldata",
2581
2581
  "typeDescriptions": {
@@ -2586,7 +2586,7 @@
2586
2586
  "id": 16194,
2587
2587
  "name": "bytes",
2588
2588
  "nodeType": "ElementaryTypeName",
2589
- "src": "6764:5:39",
2589
+ "src": "6776:5:39",
2590
2590
  "typeDescriptions": {
2591
2591
  "typeIdentifier": "t_bytes_storage_ptr",
2592
2592
  "typeString": "bytes"
@@ -2595,7 +2595,7 @@
2595
2595
  "visibility": "internal"
2596
2596
  }
2597
2597
  ],
2598
- "src": "6672:116:39"
2598
+ "src": "6684:116:39"
2599
2599
  },
2600
2600
  "returnParameters": {
2601
2601
  "id": 16199,
@@ -2606,10 +2606,10 @@
2606
2606
  "id": 16198,
2607
2607
  "mutability": "mutable",
2608
2608
  "name": "newCtx",
2609
- "nameLocation": "6843:6:39",
2609
+ "nameLocation": "6855:6:39",
2610
2610
  "nodeType": "VariableDeclaration",
2611
2611
  "scope": 16200,
2612
- "src": "6830:19:39",
2612
+ "src": "6842:19:39",
2613
2613
  "stateVariable": false,
2614
2614
  "storageLocation": "memory",
2615
2615
  "typeDescriptions": {
@@ -2620,7 +2620,7 @@
2620
2620
  "id": 16197,
2621
2621
  "name": "bytes",
2622
2622
  "nodeType": "ElementaryTypeName",
2623
- "src": "6830:5:39",
2623
+ "src": "6842:5:39",
2624
2624
  "typeDescriptions": {
2625
2625
  "typeIdentifier": "t_bytes_storage_ptr",
2626
2626
  "typeString": "bytes"
@@ -2629,10 +2629,10 @@
2629
2629
  "visibility": "internal"
2630
2630
  }
2631
2631
  ],
2632
- "src": "6829:21:39"
2632
+ "src": "6841:21:39"
2633
2633
  },
2634
2634
  "scope": 16383,
2635
- "src": "6653:198:39",
2635
+ "src": "6665:198:39",
2636
2636
  "stateMutability": "nonpayable",
2637
2637
  "virtual": true,
2638
2638
  "visibility": "external"
@@ -2641,7 +2641,7 @@
2641
2641
  "documentation": {
2642
2642
  "id": 16201,
2643
2643
  "nodeType": "StructuredDocumentation",
2644
- "src": "6857:436:39",
2644
+ "src": "6869:436:39",
2645
2645
  "text": " @notice Create a flow between sender and receiver\n @dev A flow created by an approved flow operator (see above for details on callbacks)\n @param token Super token address\n @param sender Flow sender address (has granted permissions)\n @param receiver Flow receiver address\n @param flowRate New flow rate in amount per second\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)"
2646
2646
  },
2647
2647
  "functionSelector": "94229ecb",
@@ -2650,7 +2650,7 @@
2650
2650
  "kind": "function",
2651
2651
  "modifiers": [],
2652
2652
  "name": "createFlowByOperator",
2653
- "nameLocation": "7307:20:39",
2653
+ "nameLocation": "7319:20:39",
2654
2654
  "nodeType": "FunctionDefinition",
2655
2655
  "parameters": {
2656
2656
  "id": 16213,
@@ -2661,10 +2661,10 @@
2661
2661
  "id": 16204,
2662
2662
  "mutability": "mutable",
2663
2663
  "name": "token",
2664
- "nameLocation": "7354:5:39",
2664
+ "nameLocation": "7366:5:39",
2665
2665
  "nodeType": "VariableDeclaration",
2666
2666
  "scope": 16217,
2667
- "src": "7337:22:39",
2667
+ "src": "7349:22:39",
2668
2668
  "stateVariable": false,
2669
2669
  "storageLocation": "default",
2670
2670
  "typeDescriptions": {
@@ -2679,10 +2679,10 @@
2679
2679
  "name": "ISuperfluidToken",
2680
2680
  "nodeType": "IdentifierPath",
2681
2681
  "referencedDeclaration": 18721,
2682
- "src": "7337:16:39"
2682
+ "src": "7349:16:39"
2683
2683
  },
2684
2684
  "referencedDeclaration": 18721,
2685
- "src": "7337:16:39",
2685
+ "src": "7349:16:39",
2686
2686
  "typeDescriptions": {
2687
2687
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2688
2688
  "typeString": "contract ISuperfluidToken"
@@ -2695,10 +2695,10 @@
2695
2695
  "id": 16206,
2696
2696
  "mutability": "mutable",
2697
2697
  "name": "sender",
2698
- "nameLocation": "7377:6:39",
2698
+ "nameLocation": "7389:6:39",
2699
2699
  "nodeType": "VariableDeclaration",
2700
2700
  "scope": 16217,
2701
- "src": "7369:14:39",
2701
+ "src": "7381:14:39",
2702
2702
  "stateVariable": false,
2703
2703
  "storageLocation": "default",
2704
2704
  "typeDescriptions": {
@@ -2709,7 +2709,7 @@
2709
2709
  "id": 16205,
2710
2710
  "name": "address",
2711
2711
  "nodeType": "ElementaryTypeName",
2712
- "src": "7369:7:39",
2712
+ "src": "7381:7:39",
2713
2713
  "stateMutability": "nonpayable",
2714
2714
  "typeDescriptions": {
2715
2715
  "typeIdentifier": "t_address",
@@ -2723,10 +2723,10 @@
2723
2723
  "id": 16208,
2724
2724
  "mutability": "mutable",
2725
2725
  "name": "receiver",
2726
- "nameLocation": "7401:8:39",
2726
+ "nameLocation": "7413:8:39",
2727
2727
  "nodeType": "VariableDeclaration",
2728
2728
  "scope": 16217,
2729
- "src": "7393:16:39",
2729
+ "src": "7405:16:39",
2730
2730
  "stateVariable": false,
2731
2731
  "storageLocation": "default",
2732
2732
  "typeDescriptions": {
@@ -2737,7 +2737,7 @@
2737
2737
  "id": 16207,
2738
2738
  "name": "address",
2739
2739
  "nodeType": "ElementaryTypeName",
2740
- "src": "7393:7:39",
2740
+ "src": "7405:7:39",
2741
2741
  "stateMutability": "nonpayable",
2742
2742
  "typeDescriptions": {
2743
2743
  "typeIdentifier": "t_address",
@@ -2751,10 +2751,10 @@
2751
2751
  "id": 16210,
2752
2752
  "mutability": "mutable",
2753
2753
  "name": "flowRate",
2754
- "nameLocation": "7425:8:39",
2754
+ "nameLocation": "7437:8:39",
2755
2755
  "nodeType": "VariableDeclaration",
2756
2756
  "scope": 16217,
2757
- "src": "7419:14:39",
2757
+ "src": "7431:14:39",
2758
2758
  "stateVariable": false,
2759
2759
  "storageLocation": "default",
2760
2760
  "typeDescriptions": {
@@ -2765,7 +2765,7 @@
2765
2765
  "id": 16209,
2766
2766
  "name": "int96",
2767
2767
  "nodeType": "ElementaryTypeName",
2768
- "src": "7419:5:39",
2768
+ "src": "7431:5:39",
2769
2769
  "typeDescriptions": {
2770
2770
  "typeIdentifier": "t_int96",
2771
2771
  "typeString": "int96"
@@ -2778,10 +2778,10 @@
2778
2778
  "id": 16212,
2779
2779
  "mutability": "mutable",
2780
2780
  "name": "ctx",
2781
- "nameLocation": "7458:3:39",
2781
+ "nameLocation": "7470:3:39",
2782
2782
  "nodeType": "VariableDeclaration",
2783
2783
  "scope": 16217,
2784
- "src": "7443:18:39",
2784
+ "src": "7455:18:39",
2785
2785
  "stateVariable": false,
2786
2786
  "storageLocation": "calldata",
2787
2787
  "typeDescriptions": {
@@ -2792,7 +2792,7 @@
2792
2792
  "id": 16211,
2793
2793
  "name": "bytes",
2794
2794
  "nodeType": "ElementaryTypeName",
2795
- "src": "7443:5:39",
2795
+ "src": "7455:5:39",
2796
2796
  "typeDescriptions": {
2797
2797
  "typeIdentifier": "t_bytes_storage_ptr",
2798
2798
  "typeString": "bytes"
@@ -2801,7 +2801,7 @@
2801
2801
  "visibility": "internal"
2802
2802
  }
2803
2803
  ],
2804
- "src": "7327:140:39"
2804
+ "src": "7339:140:39"
2805
2805
  },
2806
2806
  "returnParameters": {
2807
2807
  "id": 16216,
@@ -2812,10 +2812,10 @@
2812
2812
  "id": 16215,
2813
2813
  "mutability": "mutable",
2814
2814
  "name": "newCtx",
2815
- "nameLocation": "7522:6:39",
2815
+ "nameLocation": "7534:6:39",
2816
2816
  "nodeType": "VariableDeclaration",
2817
2817
  "scope": 16217,
2818
- "src": "7509:19:39",
2818
+ "src": "7521:19:39",
2819
2819
  "stateVariable": false,
2820
2820
  "storageLocation": "memory",
2821
2821
  "typeDescriptions": {
@@ -2826,7 +2826,7 @@
2826
2826
  "id": 16214,
2827
2827
  "name": "bytes",
2828
2828
  "nodeType": "ElementaryTypeName",
2829
- "src": "7509:5:39",
2829
+ "src": "7521:5:39",
2830
2830
  "typeDescriptions": {
2831
2831
  "typeIdentifier": "t_bytes_storage_ptr",
2832
2832
  "typeString": "bytes"
@@ -2835,10 +2835,10 @@
2835
2835
  "visibility": "internal"
2836
2836
  }
2837
2837
  ],
2838
- "src": "7508:21:39"
2838
+ "src": "7520:21:39"
2839
2839
  },
2840
2840
  "scope": 16383,
2841
- "src": "7298:232:39",
2841
+ "src": "7310:232:39",
2842
2842
  "stateMutability": "nonpayable",
2843
2843
  "virtual": true,
2844
2844
  "visibility": "external"
@@ -2847,8 +2847,8 @@
2847
2847
  "documentation": {
2848
2848
  "id": 16218,
2849
2849
  "nodeType": "StructuredDocumentation",
2850
- "src": "7536:829:39",
2851
- "text": " @notice Update the flow rate between ctx.msgSender and receiver\n @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n @param token Super token address\n @param receiver Flow receiver address\n @param flowRate New flow rate in amount per second\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n - AgreementUpdated\n - agreementId - can be used in getFlowByID\n - agreementData - abi.encode(address flowSender, address flowReceiver)\n NOTE:\n - Only the flow sender may update the flow rate\n - Even if the flow rate is zero, the flow is not deleted\n from the system\n - Deposit amount will be adjusted accordingly\n - No new gas fee is charged"
2850
+ "src": "7548:833:39",
2851
+ "text": " @notice Update the flow rate between ctx.msgSender and receiver\n @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n @param token Super token address\n @param receiver Flow receiver address\n @param flowRate New flow rate in amount per second\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n - AgreementUpdated\n - agreementId - can be used in getFlowByID\n - agreementData - abi.encode(address flowSender, address flowReceiver)\n @custom:note \n - Only the flow sender may update the flow rate\n - Even if the flow rate is zero, the flow is not deleted\n from the system\n - Deposit amount will be adjusted accordingly\n - No new gas fee is charged"
2852
2852
  },
2853
2853
  "functionSelector": "50209a62",
2854
2854
  "id": 16232,
@@ -2856,7 +2856,7 @@
2856
2856
  "kind": "function",
2857
2857
  "modifiers": [],
2858
2858
  "name": "updateFlow",
2859
- "nameLocation": "8379:10:39",
2859
+ "nameLocation": "8395:10:39",
2860
2860
  "nodeType": "FunctionDefinition",
2861
2861
  "parameters": {
2862
2862
  "id": 16228,
@@ -2867,10 +2867,10 @@
2867
2867
  "id": 16221,
2868
2868
  "mutability": "mutable",
2869
2869
  "name": "token",
2870
- "nameLocation": "8416:5:39",
2870
+ "nameLocation": "8432:5:39",
2871
2871
  "nodeType": "VariableDeclaration",
2872
2872
  "scope": 16232,
2873
- "src": "8399:22:39",
2873
+ "src": "8415:22:39",
2874
2874
  "stateVariable": false,
2875
2875
  "storageLocation": "default",
2876
2876
  "typeDescriptions": {
@@ -2885,10 +2885,10 @@
2885
2885
  "name": "ISuperfluidToken",
2886
2886
  "nodeType": "IdentifierPath",
2887
2887
  "referencedDeclaration": 18721,
2888
- "src": "8399:16:39"
2888
+ "src": "8415:16:39"
2889
2889
  },
2890
2890
  "referencedDeclaration": 18721,
2891
- "src": "8399:16:39",
2891
+ "src": "8415:16:39",
2892
2892
  "typeDescriptions": {
2893
2893
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2894
2894
  "typeString": "contract ISuperfluidToken"
@@ -2901,10 +2901,10 @@
2901
2901
  "id": 16223,
2902
2902
  "mutability": "mutable",
2903
2903
  "name": "receiver",
2904
- "nameLocation": "8439:8:39",
2904
+ "nameLocation": "8455:8:39",
2905
2905
  "nodeType": "VariableDeclaration",
2906
2906
  "scope": 16232,
2907
- "src": "8431:16:39",
2907
+ "src": "8447:16:39",
2908
2908
  "stateVariable": false,
2909
2909
  "storageLocation": "default",
2910
2910
  "typeDescriptions": {
@@ -2915,7 +2915,7 @@
2915
2915
  "id": 16222,
2916
2916
  "name": "address",
2917
2917
  "nodeType": "ElementaryTypeName",
2918
- "src": "8431:7:39",
2918
+ "src": "8447:7:39",
2919
2919
  "stateMutability": "nonpayable",
2920
2920
  "typeDescriptions": {
2921
2921
  "typeIdentifier": "t_address",
@@ -2929,10 +2929,10 @@
2929
2929
  "id": 16225,
2930
2930
  "mutability": "mutable",
2931
2931
  "name": "flowRate",
2932
- "nameLocation": "8463:8:39",
2932
+ "nameLocation": "8479:8:39",
2933
2933
  "nodeType": "VariableDeclaration",
2934
2934
  "scope": 16232,
2935
- "src": "8457:14:39",
2935
+ "src": "8473:14:39",
2936
2936
  "stateVariable": false,
2937
2937
  "storageLocation": "default",
2938
2938
  "typeDescriptions": {
@@ -2943,7 +2943,7 @@
2943
2943
  "id": 16224,
2944
2944
  "name": "int96",
2945
2945
  "nodeType": "ElementaryTypeName",
2946
- "src": "8457:5:39",
2946
+ "src": "8473:5:39",
2947
2947
  "typeDescriptions": {
2948
2948
  "typeIdentifier": "t_int96",
2949
2949
  "typeString": "int96"
@@ -2956,10 +2956,10 @@
2956
2956
  "id": 16227,
2957
2957
  "mutability": "mutable",
2958
2958
  "name": "ctx",
2959
- "nameLocation": "8496:3:39",
2959
+ "nameLocation": "8512:3:39",
2960
2960
  "nodeType": "VariableDeclaration",
2961
2961
  "scope": 16232,
2962
- "src": "8481:18:39",
2962
+ "src": "8497:18:39",
2963
2963
  "stateVariable": false,
2964
2964
  "storageLocation": "calldata",
2965
2965
  "typeDescriptions": {
@@ -2970,7 +2970,7 @@
2970
2970
  "id": 16226,
2971
2971
  "name": "bytes",
2972
2972
  "nodeType": "ElementaryTypeName",
2973
- "src": "8481:5:39",
2973
+ "src": "8497:5:39",
2974
2974
  "typeDescriptions": {
2975
2975
  "typeIdentifier": "t_bytes_storage_ptr",
2976
2976
  "typeString": "bytes"
@@ -2979,7 +2979,7 @@
2979
2979
  "visibility": "internal"
2980
2980
  }
2981
2981
  ],
2982
- "src": "8389:116:39"
2982
+ "src": "8405:116:39"
2983
2983
  },
2984
2984
  "returnParameters": {
2985
2985
  "id": 16231,
@@ -2990,10 +2990,10 @@
2990
2990
  "id": 16230,
2991
2991
  "mutability": "mutable",
2992
2992
  "name": "newCtx",
2993
- "nameLocation": "8560:6:39",
2993
+ "nameLocation": "8576:6:39",
2994
2994
  "nodeType": "VariableDeclaration",
2995
2995
  "scope": 16232,
2996
- "src": "8547:19:39",
2996
+ "src": "8563:19:39",
2997
2997
  "stateVariable": false,
2998
2998
  "storageLocation": "memory",
2999
2999
  "typeDescriptions": {
@@ -3004,7 +3004,7 @@
3004
3004
  "id": 16229,
3005
3005
  "name": "bytes",
3006
3006
  "nodeType": "ElementaryTypeName",
3007
- "src": "8547:5:39",
3007
+ "src": "8563:5:39",
3008
3008
  "typeDescriptions": {
3009
3009
  "typeIdentifier": "t_bytes_storage_ptr",
3010
3010
  "typeString": "bytes"
@@ -3013,10 +3013,10 @@
3013
3013
  "visibility": "internal"
3014
3014
  }
3015
3015
  ],
3016
- "src": "8546:21:39"
3016
+ "src": "8562:21:39"
3017
3017
  },
3018
3018
  "scope": 16383,
3019
- "src": "8370:198:39",
3019
+ "src": "8386:198:39",
3020
3020
  "stateMutability": "nonpayable",
3021
3021
  "virtual": true,
3022
3022
  "visibility": "external"
@@ -3025,7 +3025,7 @@
3025
3025
  "documentation": {
3026
3026
  "id": 16233,
3027
3027
  "nodeType": "StructuredDocumentation",
3028
- "src": "8574:436:39",
3028
+ "src": "8590:436:39",
3029
3029
  "text": " @notice Update a flow between sender and receiver\n @dev A flow updated by an approved flow operator (see above for details on callbacks)\n @param token Super token address\n @param sender Flow sender address (has granted permissions)\n @param receiver Flow receiver address\n @param flowRate New flow rate in amount per second\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)"
3030
3030
  },
3031
3031
  "functionSelector": "354b9590",
@@ -3034,7 +3034,7 @@
3034
3034
  "kind": "function",
3035
3035
  "modifiers": [],
3036
3036
  "name": "updateFlowByOperator",
3037
- "nameLocation": "9024:20:39",
3037
+ "nameLocation": "9040:20:39",
3038
3038
  "nodeType": "FunctionDefinition",
3039
3039
  "parameters": {
3040
3040
  "id": 16245,
@@ -3045,10 +3045,10 @@
3045
3045
  "id": 16236,
3046
3046
  "mutability": "mutable",
3047
3047
  "name": "token",
3048
- "nameLocation": "9071:5:39",
3048
+ "nameLocation": "9087:5:39",
3049
3049
  "nodeType": "VariableDeclaration",
3050
3050
  "scope": 16249,
3051
- "src": "9054:22:39",
3051
+ "src": "9070:22:39",
3052
3052
  "stateVariable": false,
3053
3053
  "storageLocation": "default",
3054
3054
  "typeDescriptions": {
@@ -3063,10 +3063,10 @@
3063
3063
  "name": "ISuperfluidToken",
3064
3064
  "nodeType": "IdentifierPath",
3065
3065
  "referencedDeclaration": 18721,
3066
- "src": "9054:16:39"
3066
+ "src": "9070:16:39"
3067
3067
  },
3068
3068
  "referencedDeclaration": 18721,
3069
- "src": "9054:16:39",
3069
+ "src": "9070:16:39",
3070
3070
  "typeDescriptions": {
3071
3071
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3072
3072
  "typeString": "contract ISuperfluidToken"
@@ -3079,10 +3079,10 @@
3079
3079
  "id": 16238,
3080
3080
  "mutability": "mutable",
3081
3081
  "name": "sender",
3082
- "nameLocation": "9094:6:39",
3082
+ "nameLocation": "9110:6:39",
3083
3083
  "nodeType": "VariableDeclaration",
3084
3084
  "scope": 16249,
3085
- "src": "9086:14:39",
3085
+ "src": "9102:14:39",
3086
3086
  "stateVariable": false,
3087
3087
  "storageLocation": "default",
3088
3088
  "typeDescriptions": {
@@ -3093,7 +3093,7 @@
3093
3093
  "id": 16237,
3094
3094
  "name": "address",
3095
3095
  "nodeType": "ElementaryTypeName",
3096
- "src": "9086:7:39",
3096
+ "src": "9102:7:39",
3097
3097
  "stateMutability": "nonpayable",
3098
3098
  "typeDescriptions": {
3099
3099
  "typeIdentifier": "t_address",
@@ -3107,10 +3107,10 @@
3107
3107
  "id": 16240,
3108
3108
  "mutability": "mutable",
3109
3109
  "name": "receiver",
3110
- "nameLocation": "9118:8:39",
3110
+ "nameLocation": "9134:8:39",
3111
3111
  "nodeType": "VariableDeclaration",
3112
3112
  "scope": 16249,
3113
- "src": "9110:16:39",
3113
+ "src": "9126:16:39",
3114
3114
  "stateVariable": false,
3115
3115
  "storageLocation": "default",
3116
3116
  "typeDescriptions": {
@@ -3121,7 +3121,7 @@
3121
3121
  "id": 16239,
3122
3122
  "name": "address",
3123
3123
  "nodeType": "ElementaryTypeName",
3124
- "src": "9110:7:39",
3124
+ "src": "9126:7:39",
3125
3125
  "stateMutability": "nonpayable",
3126
3126
  "typeDescriptions": {
3127
3127
  "typeIdentifier": "t_address",
@@ -3135,10 +3135,10 @@
3135
3135
  "id": 16242,
3136
3136
  "mutability": "mutable",
3137
3137
  "name": "flowRate",
3138
- "nameLocation": "9142:8:39",
3138
+ "nameLocation": "9158:8:39",
3139
3139
  "nodeType": "VariableDeclaration",
3140
3140
  "scope": 16249,
3141
- "src": "9136:14:39",
3141
+ "src": "9152:14:39",
3142
3142
  "stateVariable": false,
3143
3143
  "storageLocation": "default",
3144
3144
  "typeDescriptions": {
@@ -3149,7 +3149,7 @@
3149
3149
  "id": 16241,
3150
3150
  "name": "int96",
3151
3151
  "nodeType": "ElementaryTypeName",
3152
- "src": "9136:5:39",
3152
+ "src": "9152:5:39",
3153
3153
  "typeDescriptions": {
3154
3154
  "typeIdentifier": "t_int96",
3155
3155
  "typeString": "int96"
@@ -3162,10 +3162,10 @@
3162
3162
  "id": 16244,
3163
3163
  "mutability": "mutable",
3164
3164
  "name": "ctx",
3165
- "nameLocation": "9175:3:39",
3165
+ "nameLocation": "9191:3:39",
3166
3166
  "nodeType": "VariableDeclaration",
3167
3167
  "scope": 16249,
3168
- "src": "9160:18:39",
3168
+ "src": "9176:18:39",
3169
3169
  "stateVariable": false,
3170
3170
  "storageLocation": "calldata",
3171
3171
  "typeDescriptions": {
@@ -3176,7 +3176,7 @@
3176
3176
  "id": 16243,
3177
3177
  "name": "bytes",
3178
3178
  "nodeType": "ElementaryTypeName",
3179
- "src": "9160:5:39",
3179
+ "src": "9176:5:39",
3180
3180
  "typeDescriptions": {
3181
3181
  "typeIdentifier": "t_bytes_storage_ptr",
3182
3182
  "typeString": "bytes"
@@ -3185,7 +3185,7 @@
3185
3185
  "visibility": "internal"
3186
3186
  }
3187
3187
  ],
3188
- "src": "9044:140:39"
3188
+ "src": "9060:140:39"
3189
3189
  },
3190
3190
  "returnParameters": {
3191
3191
  "id": 16248,
@@ -3196,10 +3196,10 @@
3196
3196
  "id": 16247,
3197
3197
  "mutability": "mutable",
3198
3198
  "name": "newCtx",
3199
- "nameLocation": "9239:6:39",
3199
+ "nameLocation": "9255:6:39",
3200
3200
  "nodeType": "VariableDeclaration",
3201
3201
  "scope": 16249,
3202
- "src": "9226:19:39",
3202
+ "src": "9242:19:39",
3203
3203
  "stateVariable": false,
3204
3204
  "storageLocation": "memory",
3205
3205
  "typeDescriptions": {
@@ -3210,7 +3210,7 @@
3210
3210
  "id": 16246,
3211
3211
  "name": "bytes",
3212
3212
  "nodeType": "ElementaryTypeName",
3213
- "src": "9226:5:39",
3213
+ "src": "9242:5:39",
3214
3214
  "typeDescriptions": {
3215
3215
  "typeIdentifier": "t_bytes_storage_ptr",
3216
3216
  "typeString": "bytes"
@@ -3219,10 +3219,10 @@
3219
3219
  "visibility": "internal"
3220
3220
  }
3221
3221
  ],
3222
- "src": "9225:21:39"
3222
+ "src": "9241:21:39"
3223
3223
  },
3224
3224
  "scope": 16383,
3225
- "src": "9015:232:39",
3225
+ "src": "9031:232:39",
3226
3226
  "stateMutability": "nonpayable",
3227
3227
  "virtual": true,
3228
3228
  "visibility": "external"
@@ -3231,7 +3231,7 @@
3231
3231
  "documentation": {
3232
3232
  "id": 16250,
3233
3233
  "nodeType": "StructuredDocumentation",
3234
- "src": "9253:415:39",
3234
+ "src": "9269:415:39",
3235
3235
  "text": " @dev Get the flow data between `sender` and `receiver` of `token`\n @param token Super token address\n @param sender Flow receiver\n @param receiver Flow sender\n @return timestamp Timestamp of when the flow is updated\n @return flowRate The flow rate\n @return deposit The amount of deposit the flow\n @return owedDeposit The amount of owed deposit of the flow"
3236
3236
  },
3237
3237
  "functionSelector": "e6a1e888",
@@ -3240,7 +3240,7 @@
3240
3240
  "kind": "function",
3241
3241
  "modifiers": [],
3242
3242
  "name": "getFlow",
3243
- "nameLocation": "9682:7:39",
3243
+ "nameLocation": "9698:7:39",
3244
3244
  "nodeType": "FunctionDefinition",
3245
3245
  "parameters": {
3246
3246
  "id": 16258,
@@ -3251,10 +3251,10 @@
3251
3251
  "id": 16253,
3252
3252
  "mutability": "mutable",
3253
3253
  "name": "token",
3254
- "nameLocation": "9716:5:39",
3254
+ "nameLocation": "9732:5:39",
3255
3255
  "nodeType": "VariableDeclaration",
3256
3256
  "scope": 16268,
3257
- "src": "9699:22:39",
3257
+ "src": "9715:22:39",
3258
3258
  "stateVariable": false,
3259
3259
  "storageLocation": "default",
3260
3260
  "typeDescriptions": {
@@ -3269,10 +3269,10 @@
3269
3269
  "name": "ISuperfluidToken",
3270
3270
  "nodeType": "IdentifierPath",
3271
3271
  "referencedDeclaration": 18721,
3272
- "src": "9699:16:39"
3272
+ "src": "9715:16:39"
3273
3273
  },
3274
3274
  "referencedDeclaration": 18721,
3275
- "src": "9699:16:39",
3275
+ "src": "9715:16:39",
3276
3276
  "typeDescriptions": {
3277
3277
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3278
3278
  "typeString": "contract ISuperfluidToken"
@@ -3285,10 +3285,10 @@
3285
3285
  "id": 16255,
3286
3286
  "mutability": "mutable",
3287
3287
  "name": "sender",
3288
- "nameLocation": "9739:6:39",
3288
+ "nameLocation": "9755:6:39",
3289
3289
  "nodeType": "VariableDeclaration",
3290
3290
  "scope": 16268,
3291
- "src": "9731:14:39",
3291
+ "src": "9747:14:39",
3292
3292
  "stateVariable": false,
3293
3293
  "storageLocation": "default",
3294
3294
  "typeDescriptions": {
@@ -3299,7 +3299,7 @@
3299
3299
  "id": 16254,
3300
3300
  "name": "address",
3301
3301
  "nodeType": "ElementaryTypeName",
3302
- "src": "9731:7:39",
3302
+ "src": "9747:7:39",
3303
3303
  "stateMutability": "nonpayable",
3304
3304
  "typeDescriptions": {
3305
3305
  "typeIdentifier": "t_address",
@@ -3313,10 +3313,10 @@
3313
3313
  "id": 16257,
3314
3314
  "mutability": "mutable",
3315
3315
  "name": "receiver",
3316
- "nameLocation": "9763:8:39",
3316
+ "nameLocation": "9779:8:39",
3317
3317
  "nodeType": "VariableDeclaration",
3318
3318
  "scope": 16268,
3319
- "src": "9755:16:39",
3319
+ "src": "9771:16:39",
3320
3320
  "stateVariable": false,
3321
3321
  "storageLocation": "default",
3322
3322
  "typeDescriptions": {
@@ -3327,7 +3327,7 @@
3327
3327
  "id": 16256,
3328
3328
  "name": "address",
3329
3329
  "nodeType": "ElementaryTypeName",
3330
- "src": "9755:7:39",
3330
+ "src": "9771:7:39",
3331
3331
  "stateMutability": "nonpayable",
3332
3332
  "typeDescriptions": {
3333
3333
  "typeIdentifier": "t_address",
@@ -3337,7 +3337,7 @@
3337
3337
  "visibility": "internal"
3338
3338
  }
3339
3339
  ],
3340
- "src": "9689:88:39"
3340
+ "src": "9705:88:39"
3341
3341
  },
3342
3342
  "returnParameters": {
3343
3343
  "id": 16267,
@@ -3348,10 +3348,10 @@
3348
3348
  "id": 16260,
3349
3349
  "mutability": "mutable",
3350
3350
  "name": "timestamp",
3351
- "nameLocation": "9846:9:39",
3351
+ "nameLocation": "9862:9:39",
3352
3352
  "nodeType": "VariableDeclaration",
3353
3353
  "scope": 16268,
3354
- "src": "9838:17:39",
3354
+ "src": "9854:17:39",
3355
3355
  "stateVariable": false,
3356
3356
  "storageLocation": "default",
3357
3357
  "typeDescriptions": {
@@ -3362,7 +3362,7 @@
3362
3362
  "id": 16259,
3363
3363
  "name": "uint256",
3364
3364
  "nodeType": "ElementaryTypeName",
3365
- "src": "9838:7:39",
3365
+ "src": "9854:7:39",
3366
3366
  "typeDescriptions": {
3367
3367
  "typeIdentifier": "t_uint256",
3368
3368
  "typeString": "uint256"
@@ -3375,10 +3375,10 @@
3375
3375
  "id": 16262,
3376
3376
  "mutability": "mutable",
3377
3377
  "name": "flowRate",
3378
- "nameLocation": "9875:8:39",
3378
+ "nameLocation": "9891:8:39",
3379
3379
  "nodeType": "VariableDeclaration",
3380
3380
  "scope": 16268,
3381
- "src": "9869:14:39",
3381
+ "src": "9885:14:39",
3382
3382
  "stateVariable": false,
3383
3383
  "storageLocation": "default",
3384
3384
  "typeDescriptions": {
@@ -3389,7 +3389,7 @@
3389
3389
  "id": 16261,
3390
3390
  "name": "int96",
3391
3391
  "nodeType": "ElementaryTypeName",
3392
- "src": "9869:5:39",
3392
+ "src": "9885:5:39",
3393
3393
  "typeDescriptions": {
3394
3394
  "typeIdentifier": "t_int96",
3395
3395
  "typeString": "int96"
@@ -3402,10 +3402,10 @@
3402
3402
  "id": 16264,
3403
3403
  "mutability": "mutable",
3404
3404
  "name": "deposit",
3405
- "nameLocation": "9905:7:39",
3405
+ "nameLocation": "9921:7:39",
3406
3406
  "nodeType": "VariableDeclaration",
3407
3407
  "scope": 16268,
3408
- "src": "9897:15:39",
3408
+ "src": "9913:15:39",
3409
3409
  "stateVariable": false,
3410
3410
  "storageLocation": "default",
3411
3411
  "typeDescriptions": {
@@ -3416,7 +3416,7 @@
3416
3416
  "id": 16263,
3417
3417
  "name": "uint256",
3418
3418
  "nodeType": "ElementaryTypeName",
3419
- "src": "9897:7:39",
3419
+ "src": "9913:7:39",
3420
3420
  "typeDescriptions": {
3421
3421
  "typeIdentifier": "t_uint256",
3422
3422
  "typeString": "uint256"
@@ -3429,10 +3429,10 @@
3429
3429
  "id": 16266,
3430
3430
  "mutability": "mutable",
3431
3431
  "name": "owedDeposit",
3432
- "nameLocation": "9934:11:39",
3432
+ "nameLocation": "9950:11:39",
3433
3433
  "nodeType": "VariableDeclaration",
3434
3434
  "scope": 16268,
3435
- "src": "9926:19:39",
3435
+ "src": "9942:19:39",
3436
3436
  "stateVariable": false,
3437
3437
  "storageLocation": "default",
3438
3438
  "typeDescriptions": {
@@ -3443,7 +3443,7 @@
3443
3443
  "id": 16265,
3444
3444
  "name": "uint256",
3445
3445
  "nodeType": "ElementaryTypeName",
3446
- "src": "9926:7:39",
3446
+ "src": "9942:7:39",
3447
3447
  "typeDescriptions": {
3448
3448
  "typeIdentifier": "t_uint256",
3449
3449
  "typeString": "uint256"
@@ -3452,10 +3452,10 @@
3452
3452
  "visibility": "internal"
3453
3453
  }
3454
3454
  ],
3455
- "src": "9824:131:39"
3455
+ "src": "9840:131:39"
3456
3456
  },
3457
3457
  "scope": 16383,
3458
- "src": "9673:283:39",
3458
+ "src": "9689:283:39",
3459
3459
  "stateMutability": "view",
3460
3460
  "virtual": true,
3461
3461
  "visibility": "external"
@@ -3464,7 +3464,7 @@
3464
3464
  "documentation": {
3465
3465
  "id": 16269,
3466
3466
  "nodeType": "StructuredDocumentation",
3467
- "src": "9962:445:39",
3467
+ "src": "9978:445:39",
3468
3468
  "text": " @notice Get flow data using agreementId\n @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n @param token Super token address\n @param agreementId The agreement ID\n @return timestamp Timestamp of when the flow is updated\n @return flowRate The flow rate\n @return deposit The deposit amount of the flow\n @return owedDeposit The owed deposit amount of the flow"
3469
3469
  },
3470
3470
  "functionSelector": "aabd2668",
@@ -3473,7 +3473,7 @@
3473
3473
  "kind": "function",
3474
3474
  "modifiers": [],
3475
3475
  "name": "getFlowByID",
3476
- "nameLocation": "10421:11:39",
3476
+ "nameLocation": "10437:11:39",
3477
3477
  "nodeType": "FunctionDefinition",
3478
3478
  "parameters": {
3479
3479
  "id": 16275,
@@ -3484,10 +3484,10 @@
3484
3484
  "id": 16272,
3485
3485
  "mutability": "mutable",
3486
3486
  "name": "token",
3487
- "nameLocation": "10458:5:39",
3487
+ "nameLocation": "10474:5:39",
3488
3488
  "nodeType": "VariableDeclaration",
3489
3489
  "scope": 16285,
3490
- "src": "10441:22:39",
3490
+ "src": "10457:22:39",
3491
3491
  "stateVariable": false,
3492
3492
  "storageLocation": "default",
3493
3493
  "typeDescriptions": {
@@ -3502,10 +3502,10 @@
3502
3502
  "name": "ISuperfluidToken",
3503
3503
  "nodeType": "IdentifierPath",
3504
3504
  "referencedDeclaration": 18721,
3505
- "src": "10441:16:39"
3505
+ "src": "10457:16:39"
3506
3506
  },
3507
3507
  "referencedDeclaration": 18721,
3508
- "src": "10441:16:39",
3508
+ "src": "10457:16:39",
3509
3509
  "typeDescriptions": {
3510
3510
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3511
3511
  "typeString": "contract ISuperfluidToken"
@@ -3518,10 +3518,10 @@
3518
3518
  "id": 16274,
3519
3519
  "mutability": "mutable",
3520
3520
  "name": "agreementId",
3521
- "nameLocation": "10480:11:39",
3521
+ "nameLocation": "10496:11:39",
3522
3522
  "nodeType": "VariableDeclaration",
3523
3523
  "scope": 16285,
3524
- "src": "10472:19:39",
3524
+ "src": "10488:19:39",
3525
3525
  "stateVariable": false,
3526
3526
  "storageLocation": "default",
3527
3527
  "typeDescriptions": {
@@ -3532,7 +3532,7 @@
3532
3532
  "id": 16273,
3533
3533
  "name": "bytes32",
3534
3534
  "nodeType": "ElementaryTypeName",
3535
- "src": "10472:7:39",
3535
+ "src": "10488:7:39",
3536
3536
  "typeDescriptions": {
3537
3537
  "typeIdentifier": "t_bytes32",
3538
3538
  "typeString": "bytes32"
@@ -3541,7 +3541,7 @@
3541
3541
  "visibility": "internal"
3542
3542
  }
3543
3543
  ],
3544
- "src": "10432:65:39"
3544
+ "src": "10448:65:39"
3545
3545
  },
3546
3546
  "returnParameters": {
3547
3547
  "id": 16284,
@@ -3552,10 +3552,10 @@
3552
3552
  "id": 16277,
3553
3553
  "mutability": "mutable",
3554
3554
  "name": "timestamp",
3555
- "nameLocation": "10566:9:39",
3555
+ "nameLocation": "10582:9:39",
3556
3556
  "nodeType": "VariableDeclaration",
3557
3557
  "scope": 16285,
3558
- "src": "10558:17:39",
3558
+ "src": "10574:17:39",
3559
3559
  "stateVariable": false,
3560
3560
  "storageLocation": "default",
3561
3561
  "typeDescriptions": {
@@ -3566,7 +3566,7 @@
3566
3566
  "id": 16276,
3567
3567
  "name": "uint256",
3568
3568
  "nodeType": "ElementaryTypeName",
3569
- "src": "10558:7:39",
3569
+ "src": "10574:7:39",
3570
3570
  "typeDescriptions": {
3571
3571
  "typeIdentifier": "t_uint256",
3572
3572
  "typeString": "uint256"
@@ -3579,10 +3579,10 @@
3579
3579
  "id": 16279,
3580
3580
  "mutability": "mutable",
3581
3581
  "name": "flowRate",
3582
- "nameLocation": "10595:8:39",
3582
+ "nameLocation": "10611:8:39",
3583
3583
  "nodeType": "VariableDeclaration",
3584
3584
  "scope": 16285,
3585
- "src": "10589:14:39",
3585
+ "src": "10605:14:39",
3586
3586
  "stateVariable": false,
3587
3587
  "storageLocation": "default",
3588
3588
  "typeDescriptions": {
@@ -3593,7 +3593,7 @@
3593
3593
  "id": 16278,
3594
3594
  "name": "int96",
3595
3595
  "nodeType": "ElementaryTypeName",
3596
- "src": "10589:5:39",
3596
+ "src": "10605:5:39",
3597
3597
  "typeDescriptions": {
3598
3598
  "typeIdentifier": "t_int96",
3599
3599
  "typeString": "int96"
@@ -3606,10 +3606,10 @@
3606
3606
  "id": 16281,
3607
3607
  "mutability": "mutable",
3608
3608
  "name": "deposit",
3609
- "nameLocation": "10625:7:39",
3609
+ "nameLocation": "10641:7:39",
3610
3610
  "nodeType": "VariableDeclaration",
3611
3611
  "scope": 16285,
3612
- "src": "10617:15:39",
3612
+ "src": "10633:15:39",
3613
3613
  "stateVariable": false,
3614
3614
  "storageLocation": "default",
3615
3615
  "typeDescriptions": {
@@ -3620,7 +3620,7 @@
3620
3620
  "id": 16280,
3621
3621
  "name": "uint256",
3622
3622
  "nodeType": "ElementaryTypeName",
3623
- "src": "10617:7:39",
3623
+ "src": "10633:7:39",
3624
3624
  "typeDescriptions": {
3625
3625
  "typeIdentifier": "t_uint256",
3626
3626
  "typeString": "uint256"
@@ -3633,10 +3633,10 @@
3633
3633
  "id": 16283,
3634
3634
  "mutability": "mutable",
3635
3635
  "name": "owedDeposit",
3636
- "nameLocation": "10654:11:39",
3636
+ "nameLocation": "10670:11:39",
3637
3637
  "nodeType": "VariableDeclaration",
3638
3638
  "scope": 16285,
3639
- "src": "10646:19:39",
3639
+ "src": "10662:19:39",
3640
3640
  "stateVariable": false,
3641
3641
  "storageLocation": "default",
3642
3642
  "typeDescriptions": {
@@ -3647,7 +3647,7 @@
3647
3647
  "id": 16282,
3648
3648
  "name": "uint256",
3649
3649
  "nodeType": "ElementaryTypeName",
3650
- "src": "10646:7:39",
3650
+ "src": "10662:7:39",
3651
3651
  "typeDescriptions": {
3652
3652
  "typeIdentifier": "t_uint256",
3653
3653
  "typeString": "uint256"
@@ -3656,10 +3656,10 @@
3656
3656
  "visibility": "internal"
3657
3657
  }
3658
3658
  ],
3659
- "src": "10544:131:39"
3659
+ "src": "10560:131:39"
3660
3660
  },
3661
3661
  "scope": 16383,
3662
- "src": "10412:264:39",
3662
+ "src": "10428:264:39",
3663
3663
  "stateMutability": "view",
3664
3664
  "virtual": true,
3665
3665
  "visibility": "external"
@@ -3668,7 +3668,7 @@
3668
3668
  "documentation": {
3669
3669
  "id": 16286,
3670
3670
  "nodeType": "StructuredDocumentation",
3671
- "src": "10682:436:39",
3671
+ "src": "10698:436:39",
3672
3672
  "text": " @dev Get the aggregated flow info of the account\n @param token Super token address\n @param account Account for the query\n @return timestamp Timestamp of when a flow was last updated for account\n @return flowRate The net flow rate of token for account\n @return deposit The sum of all deposits for account's flows\n @return owedDeposit The sum of all owed deposits for account's flows"
3673
3673
  },
3674
3674
  "functionSelector": "0f1ac495",
@@ -3677,7 +3677,7 @@
3677
3677
  "kind": "function",
3678
3678
  "modifiers": [],
3679
3679
  "name": "getAccountFlowInfo",
3680
- "nameLocation": "11132:18:39",
3680
+ "nameLocation": "11148:18:39",
3681
3681
  "nodeType": "FunctionDefinition",
3682
3682
  "parameters": {
3683
3683
  "id": 16292,
@@ -3688,10 +3688,10 @@
3688
3688
  "id": 16289,
3689
3689
  "mutability": "mutable",
3690
3690
  "name": "token",
3691
- "nameLocation": "11177:5:39",
3691
+ "nameLocation": "11193:5:39",
3692
3692
  "nodeType": "VariableDeclaration",
3693
3693
  "scope": 16302,
3694
- "src": "11160:22:39",
3694
+ "src": "11176:22:39",
3695
3695
  "stateVariable": false,
3696
3696
  "storageLocation": "default",
3697
3697
  "typeDescriptions": {
@@ -3706,10 +3706,10 @@
3706
3706
  "name": "ISuperfluidToken",
3707
3707
  "nodeType": "IdentifierPath",
3708
3708
  "referencedDeclaration": 18721,
3709
- "src": "11160:16:39"
3709
+ "src": "11176:16:39"
3710
3710
  },
3711
3711
  "referencedDeclaration": 18721,
3712
- "src": "11160:16:39",
3712
+ "src": "11176:16:39",
3713
3713
  "typeDescriptions": {
3714
3714
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3715
3715
  "typeString": "contract ISuperfluidToken"
@@ -3722,10 +3722,10 @@
3722
3722
  "id": 16291,
3723
3723
  "mutability": "mutable",
3724
3724
  "name": "account",
3725
- "nameLocation": "11200:7:39",
3725
+ "nameLocation": "11216:7:39",
3726
3726
  "nodeType": "VariableDeclaration",
3727
3727
  "scope": 16302,
3728
- "src": "11192:15:39",
3728
+ "src": "11208:15:39",
3729
3729
  "stateVariable": false,
3730
3730
  "storageLocation": "default",
3731
3731
  "typeDescriptions": {
@@ -3736,7 +3736,7 @@
3736
3736
  "id": 16290,
3737
3737
  "name": "address",
3738
3738
  "nodeType": "ElementaryTypeName",
3739
- "src": "11192:7:39",
3739
+ "src": "11208:7:39",
3740
3740
  "stateMutability": "nonpayable",
3741
3741
  "typeDescriptions": {
3742
3742
  "typeIdentifier": "t_address",
@@ -3746,7 +3746,7 @@
3746
3746
  "visibility": "internal"
3747
3747
  }
3748
3748
  ],
3749
- "src": "11150:63:39"
3749
+ "src": "11166:63:39"
3750
3750
  },
3751
3751
  "returnParameters": {
3752
3752
  "id": 16301,
@@ -3757,10 +3757,10 @@
3757
3757
  "id": 16294,
3758
3758
  "mutability": "mutable",
3759
3759
  "name": "timestamp",
3760
- "nameLocation": "11282:9:39",
3760
+ "nameLocation": "11298:9:39",
3761
3761
  "nodeType": "VariableDeclaration",
3762
3762
  "scope": 16302,
3763
- "src": "11274:17:39",
3763
+ "src": "11290:17:39",
3764
3764
  "stateVariable": false,
3765
3765
  "storageLocation": "default",
3766
3766
  "typeDescriptions": {
@@ -3771,7 +3771,7 @@
3771
3771
  "id": 16293,
3772
3772
  "name": "uint256",
3773
3773
  "nodeType": "ElementaryTypeName",
3774
- "src": "11274:7:39",
3774
+ "src": "11290:7:39",
3775
3775
  "typeDescriptions": {
3776
3776
  "typeIdentifier": "t_uint256",
3777
3777
  "typeString": "uint256"
@@ -3784,10 +3784,10 @@
3784
3784
  "id": 16296,
3785
3785
  "mutability": "mutable",
3786
3786
  "name": "flowRate",
3787
- "nameLocation": "11311:8:39",
3787
+ "nameLocation": "11327:8:39",
3788
3788
  "nodeType": "VariableDeclaration",
3789
3789
  "scope": 16302,
3790
- "src": "11305:14:39",
3790
+ "src": "11321:14:39",
3791
3791
  "stateVariable": false,
3792
3792
  "storageLocation": "default",
3793
3793
  "typeDescriptions": {
@@ -3798,7 +3798,7 @@
3798
3798
  "id": 16295,
3799
3799
  "name": "int96",
3800
3800
  "nodeType": "ElementaryTypeName",
3801
- "src": "11305:5:39",
3801
+ "src": "11321:5:39",
3802
3802
  "typeDescriptions": {
3803
3803
  "typeIdentifier": "t_int96",
3804
3804
  "typeString": "int96"
@@ -3811,10 +3811,10 @@
3811
3811
  "id": 16298,
3812
3812
  "mutability": "mutable",
3813
3813
  "name": "deposit",
3814
- "nameLocation": "11341:7:39",
3814
+ "nameLocation": "11357:7:39",
3815
3815
  "nodeType": "VariableDeclaration",
3816
3816
  "scope": 16302,
3817
- "src": "11333:15:39",
3817
+ "src": "11349:15:39",
3818
3818
  "stateVariable": false,
3819
3819
  "storageLocation": "default",
3820
3820
  "typeDescriptions": {
@@ -3825,7 +3825,7 @@
3825
3825
  "id": 16297,
3826
3826
  "name": "uint256",
3827
3827
  "nodeType": "ElementaryTypeName",
3828
- "src": "11333:7:39",
3828
+ "src": "11349:7:39",
3829
3829
  "typeDescriptions": {
3830
3830
  "typeIdentifier": "t_uint256",
3831
3831
  "typeString": "uint256"
@@ -3838,10 +3838,10 @@
3838
3838
  "id": 16300,
3839
3839
  "mutability": "mutable",
3840
3840
  "name": "owedDeposit",
3841
- "nameLocation": "11370:11:39",
3841
+ "nameLocation": "11386:11:39",
3842
3842
  "nodeType": "VariableDeclaration",
3843
3843
  "scope": 16302,
3844
- "src": "11362:19:39",
3844
+ "src": "11378:19:39",
3845
3845
  "stateVariable": false,
3846
3846
  "storageLocation": "default",
3847
3847
  "typeDescriptions": {
@@ -3852,7 +3852,7 @@
3852
3852
  "id": 16299,
3853
3853
  "name": "uint256",
3854
3854
  "nodeType": "ElementaryTypeName",
3855
- "src": "11362:7:39",
3855
+ "src": "11378:7:39",
3856
3856
  "typeDescriptions": {
3857
3857
  "typeIdentifier": "t_uint256",
3858
3858
  "typeString": "uint256"
@@ -3861,10 +3861,10 @@
3861
3861
  "visibility": "internal"
3862
3862
  }
3863
3863
  ],
3864
- "src": "11260:122:39"
3864
+ "src": "11276:122:39"
3865
3865
  },
3866
3866
  "scope": 16383,
3867
- "src": "11123:260:39",
3867
+ "src": "11139:260:39",
3868
3868
  "stateMutability": "view",
3869
3869
  "virtual": true,
3870
3870
  "visibility": "external"
@@ -3873,7 +3873,7 @@
3873
3873
  "documentation": {
3874
3874
  "id": 16303,
3875
3875
  "nodeType": "StructuredDocumentation",
3876
- "src": "11389:182:39",
3876
+ "src": "11405:182:39",
3877
3877
  "text": " @dev Get the net flow rate of the account\n @param token Super token address\n @param account Account for the query\n @return flowRate Net flow rate"
3878
3878
  },
3879
3879
  "functionSelector": "e8e7e2d1",
@@ -3882,7 +3882,7 @@
3882
3882
  "kind": "function",
3883
3883
  "modifiers": [],
3884
3884
  "name": "getNetFlow",
3885
- "nameLocation": "11585:10:39",
3885
+ "nameLocation": "11601:10:39",
3886
3886
  "nodeType": "FunctionDefinition",
3887
3887
  "parameters": {
3888
3888
  "id": 16309,
@@ -3893,10 +3893,10 @@
3893
3893
  "id": 16306,
3894
3894
  "mutability": "mutable",
3895
3895
  "name": "token",
3896
- "nameLocation": "11622:5:39",
3896
+ "nameLocation": "11638:5:39",
3897
3897
  "nodeType": "VariableDeclaration",
3898
3898
  "scope": 16313,
3899
- "src": "11605:22:39",
3899
+ "src": "11621:22:39",
3900
3900
  "stateVariable": false,
3901
3901
  "storageLocation": "default",
3902
3902
  "typeDescriptions": {
@@ -3911,10 +3911,10 @@
3911
3911
  "name": "ISuperfluidToken",
3912
3912
  "nodeType": "IdentifierPath",
3913
3913
  "referencedDeclaration": 18721,
3914
- "src": "11605:16:39"
3914
+ "src": "11621:16:39"
3915
3915
  },
3916
3916
  "referencedDeclaration": 18721,
3917
- "src": "11605:16:39",
3917
+ "src": "11621:16:39",
3918
3918
  "typeDescriptions": {
3919
3919
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3920
3920
  "typeString": "contract ISuperfluidToken"
@@ -3927,10 +3927,10 @@
3927
3927
  "id": 16308,
3928
3928
  "mutability": "mutable",
3929
3929
  "name": "account",
3930
- "nameLocation": "11645:7:39",
3930
+ "nameLocation": "11661:7:39",
3931
3931
  "nodeType": "VariableDeclaration",
3932
3932
  "scope": 16313,
3933
- "src": "11637:15:39",
3933
+ "src": "11653:15:39",
3934
3934
  "stateVariable": false,
3935
3935
  "storageLocation": "default",
3936
3936
  "typeDescriptions": {
@@ -3941,7 +3941,7 @@
3941
3941
  "id": 16307,
3942
3942
  "name": "address",
3943
3943
  "nodeType": "ElementaryTypeName",
3944
- "src": "11637:7:39",
3944
+ "src": "11653:7:39",
3945
3945
  "stateMutability": "nonpayable",
3946
3946
  "typeDescriptions": {
3947
3947
  "typeIdentifier": "t_address",
@@ -3951,7 +3951,7 @@
3951
3951
  "visibility": "internal"
3952
3952
  }
3953
3953
  ],
3954
- "src": "11595:63:39"
3954
+ "src": "11611:63:39"
3955
3955
  },
3956
3956
  "returnParameters": {
3957
3957
  "id": 16312,
@@ -3962,10 +3962,10 @@
3962
3962
  "id": 16311,
3963
3963
  "mutability": "mutable",
3964
3964
  "name": "flowRate",
3965
- "nameLocation": "11712:8:39",
3965
+ "nameLocation": "11728:8:39",
3966
3966
  "nodeType": "VariableDeclaration",
3967
3967
  "scope": 16313,
3968
- "src": "11706:14:39",
3968
+ "src": "11722:14:39",
3969
3969
  "stateVariable": false,
3970
3970
  "storageLocation": "default",
3971
3971
  "typeDescriptions": {
@@ -3976,7 +3976,7 @@
3976
3976
  "id": 16310,
3977
3977
  "name": "int96",
3978
3978
  "nodeType": "ElementaryTypeName",
3979
- "src": "11706:5:39",
3979
+ "src": "11722:5:39",
3980
3980
  "typeDescriptions": {
3981
3981
  "typeIdentifier": "t_int96",
3982
3982
  "typeString": "int96"
@@ -3985,10 +3985,10 @@
3985
3985
  "visibility": "internal"
3986
3986
  }
3987
3987
  ],
3988
- "src": "11705:16:39"
3988
+ "src": "11721:16:39"
3989
3989
  },
3990
3990
  "scope": 16383,
3991
- "src": "11576:146:39",
3991
+ "src": "11592:146:39",
3992
3992
  "stateMutability": "view",
3993
3993
  "virtual": true,
3994
3994
  "visibility": "external"
@@ -3997,8 +3997,8 @@
3997
3997
  "documentation": {
3998
3998
  "id": 16314,
3999
3999
  "nodeType": "StructuredDocumentation",
4000
- "src": "11728:759:39",
4001
- "text": " @notice Delete the flow between sender and receiver\n @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n @param token Super token address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @param receiver Flow receiver address\n # App callbacks\n - AgreementTerminated\n - agreementId - can be used in getFlowByID\n - agreementData - abi.encode(address flowSender, address flowReceiver)\n NOTE:\n - Both flow sender and receiver may delete the flow\n - If Sender account is insolvent or in critical state, a solvency agent may\n also terminate the agreement\n - Gas fee may be returned to the sender"
4000
+ "src": "11744:763:39",
4001
+ "text": " @notice Delete the flow between sender and receiver\n @dev flowId (agreementId) is the keccak256 hash of encoded sender and receiver\n @param token Super token address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @param receiver Flow receiver address\n @custom:callbacks \n - AgreementTerminated\n - agreementId - can be used in getFlowByID\n - agreementData - abi.encode(address flowSender, address flowReceiver)\n @custom:note \n - Both flow sender and receiver may delete the flow\n - If Sender account is insolvent or in critical state, a solvency agent may\n also terminate the agreement\n - Gas fee may be returned to the sender"
4002
4002
  },
4003
4003
  "functionSelector": "b4b333c6",
4004
4004
  "id": 16328,
@@ -4006,7 +4006,7 @@
4006
4006
  "kind": "function",
4007
4007
  "modifiers": [],
4008
4008
  "name": "deleteFlow",
4009
- "nameLocation": "12501:10:39",
4009
+ "nameLocation": "12521:10:39",
4010
4010
  "nodeType": "FunctionDefinition",
4011
4011
  "parameters": {
4012
4012
  "id": 16324,
@@ -4017,10 +4017,10 @@
4017
4017
  "id": 16317,
4018
4018
  "mutability": "mutable",
4019
4019
  "name": "token",
4020
- "nameLocation": "12538:5:39",
4020
+ "nameLocation": "12558:5:39",
4021
4021
  "nodeType": "VariableDeclaration",
4022
4022
  "scope": 16328,
4023
- "src": "12521:22:39",
4023
+ "src": "12541:22:39",
4024
4024
  "stateVariable": false,
4025
4025
  "storageLocation": "default",
4026
4026
  "typeDescriptions": {
@@ -4035,10 +4035,10 @@
4035
4035
  "name": "ISuperfluidToken",
4036
4036
  "nodeType": "IdentifierPath",
4037
4037
  "referencedDeclaration": 18721,
4038
- "src": "12521:16:39"
4038
+ "src": "12541:16:39"
4039
4039
  },
4040
4040
  "referencedDeclaration": 18721,
4041
- "src": "12521:16:39",
4041
+ "src": "12541:16:39",
4042
4042
  "typeDescriptions": {
4043
4043
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4044
4044
  "typeString": "contract ISuperfluidToken"
@@ -4051,10 +4051,10 @@
4051
4051
  "id": 16319,
4052
4052
  "mutability": "mutable",
4053
4053
  "name": "sender",
4054
- "nameLocation": "12561:6:39",
4054
+ "nameLocation": "12581:6:39",
4055
4055
  "nodeType": "VariableDeclaration",
4056
4056
  "scope": 16328,
4057
- "src": "12553:14:39",
4057
+ "src": "12573:14:39",
4058
4058
  "stateVariable": false,
4059
4059
  "storageLocation": "default",
4060
4060
  "typeDescriptions": {
@@ -4065,7 +4065,7 @@
4065
4065
  "id": 16318,
4066
4066
  "name": "address",
4067
4067
  "nodeType": "ElementaryTypeName",
4068
- "src": "12553:7:39",
4068
+ "src": "12573:7:39",
4069
4069
  "stateMutability": "nonpayable",
4070
4070
  "typeDescriptions": {
4071
4071
  "typeIdentifier": "t_address",
@@ -4079,10 +4079,10 @@
4079
4079
  "id": 16321,
4080
4080
  "mutability": "mutable",
4081
4081
  "name": "receiver",
4082
- "nameLocation": "12585:8:39",
4082
+ "nameLocation": "12605:8:39",
4083
4083
  "nodeType": "VariableDeclaration",
4084
4084
  "scope": 16328,
4085
- "src": "12577:16:39",
4085
+ "src": "12597:16:39",
4086
4086
  "stateVariable": false,
4087
4087
  "storageLocation": "default",
4088
4088
  "typeDescriptions": {
@@ -4093,7 +4093,7 @@
4093
4093
  "id": 16320,
4094
4094
  "name": "address",
4095
4095
  "nodeType": "ElementaryTypeName",
4096
- "src": "12577:7:39",
4096
+ "src": "12597:7:39",
4097
4097
  "stateMutability": "nonpayable",
4098
4098
  "typeDescriptions": {
4099
4099
  "typeIdentifier": "t_address",
@@ -4107,10 +4107,10 @@
4107
4107
  "id": 16323,
4108
4108
  "mutability": "mutable",
4109
4109
  "name": "ctx",
4110
- "nameLocation": "12618:3:39",
4110
+ "nameLocation": "12638:3:39",
4111
4111
  "nodeType": "VariableDeclaration",
4112
4112
  "scope": 16328,
4113
- "src": "12603:18:39",
4113
+ "src": "12623:18:39",
4114
4114
  "stateVariable": false,
4115
4115
  "storageLocation": "calldata",
4116
4116
  "typeDescriptions": {
@@ -4121,7 +4121,7 @@
4121
4121
  "id": 16322,
4122
4122
  "name": "bytes",
4123
4123
  "nodeType": "ElementaryTypeName",
4124
- "src": "12603:5:39",
4124
+ "src": "12623:5:39",
4125
4125
  "typeDescriptions": {
4126
4126
  "typeIdentifier": "t_bytes_storage_ptr",
4127
4127
  "typeString": "bytes"
@@ -4130,7 +4130,7 @@
4130
4130
  "visibility": "internal"
4131
4131
  }
4132
4132
  ],
4133
- "src": "12511:116:39"
4133
+ "src": "12531:116:39"
4134
4134
  },
4135
4135
  "returnParameters": {
4136
4136
  "id": 16327,
@@ -4141,10 +4141,10 @@
4141
4141
  "id": 16326,
4142
4142
  "mutability": "mutable",
4143
4143
  "name": "newCtx",
4144
- "nameLocation": "12682:6:39",
4144
+ "nameLocation": "12702:6:39",
4145
4145
  "nodeType": "VariableDeclaration",
4146
4146
  "scope": 16328,
4147
- "src": "12669:19:39",
4147
+ "src": "12689:19:39",
4148
4148
  "stateVariable": false,
4149
4149
  "storageLocation": "memory",
4150
4150
  "typeDescriptions": {
@@ -4155,7 +4155,7 @@
4155
4155
  "id": 16325,
4156
4156
  "name": "bytes",
4157
4157
  "nodeType": "ElementaryTypeName",
4158
- "src": "12669:5:39",
4158
+ "src": "12689:5:39",
4159
4159
  "typeDescriptions": {
4160
4160
  "typeIdentifier": "t_bytes_storage_ptr",
4161
4161
  "typeString": "bytes"
@@ -4164,10 +4164,10 @@
4164
4164
  "visibility": "internal"
4165
4165
  }
4166
4166
  ],
4167
- "src": "12668:21:39"
4167
+ "src": "12688:21:39"
4168
4168
  },
4169
4169
  "scope": 16383,
4170
- "src": "12492:198:39",
4170
+ "src": "12512:198:39",
4171
4171
  "stateMutability": "nonpayable",
4172
4172
  "virtual": true,
4173
4173
  "visibility": "external"
@@ -4176,7 +4176,7 @@
4176
4176
  "documentation": {
4177
4177
  "id": 16329,
4178
4178
  "nodeType": "StructuredDocumentation",
4179
- "src": "12696:321:39",
4179
+ "src": "12716:321:39",
4180
4180
  "text": " @notice Delete the flow between sender and receiver\n @dev A flow deleted by an approved flow operator (see above for details on callbacks)\n @param token Super token address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @param receiver Flow receiver address"
4181
4181
  },
4182
4182
  "functionSelector": "4c8b181f",
@@ -4185,7 +4185,7 @@
4185
4185
  "kind": "function",
4186
4186
  "modifiers": [],
4187
4187
  "name": "deleteFlowByOperator",
4188
- "nameLocation": "13031:20:39",
4188
+ "nameLocation": "13051:20:39",
4189
4189
  "nodeType": "FunctionDefinition",
4190
4190
  "parameters": {
4191
4191
  "id": 16339,
@@ -4196,10 +4196,10 @@
4196
4196
  "id": 16332,
4197
4197
  "mutability": "mutable",
4198
4198
  "name": "token",
4199
- "nameLocation": "13078:5:39",
4199
+ "nameLocation": "13098:5:39",
4200
4200
  "nodeType": "VariableDeclaration",
4201
4201
  "scope": 16343,
4202
- "src": "13061:22:39",
4202
+ "src": "13081:22:39",
4203
4203
  "stateVariable": false,
4204
4204
  "storageLocation": "default",
4205
4205
  "typeDescriptions": {
@@ -4214,10 +4214,10 @@
4214
4214
  "name": "ISuperfluidToken",
4215
4215
  "nodeType": "IdentifierPath",
4216
4216
  "referencedDeclaration": 18721,
4217
- "src": "13061:16:39"
4217
+ "src": "13081:16:39"
4218
4218
  },
4219
4219
  "referencedDeclaration": 18721,
4220
- "src": "13061:16:39",
4220
+ "src": "13081:16:39",
4221
4221
  "typeDescriptions": {
4222
4222
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4223
4223
  "typeString": "contract ISuperfluidToken"
@@ -4230,10 +4230,10 @@
4230
4230
  "id": 16334,
4231
4231
  "mutability": "mutable",
4232
4232
  "name": "sender",
4233
- "nameLocation": "13101:6:39",
4233
+ "nameLocation": "13121:6:39",
4234
4234
  "nodeType": "VariableDeclaration",
4235
4235
  "scope": 16343,
4236
- "src": "13093:14:39",
4236
+ "src": "13113:14:39",
4237
4237
  "stateVariable": false,
4238
4238
  "storageLocation": "default",
4239
4239
  "typeDescriptions": {
@@ -4244,7 +4244,7 @@
4244
4244
  "id": 16333,
4245
4245
  "name": "address",
4246
4246
  "nodeType": "ElementaryTypeName",
4247
- "src": "13093:7:39",
4247
+ "src": "13113:7:39",
4248
4248
  "stateMutability": "nonpayable",
4249
4249
  "typeDescriptions": {
4250
4250
  "typeIdentifier": "t_address",
@@ -4258,10 +4258,10 @@
4258
4258
  "id": 16336,
4259
4259
  "mutability": "mutable",
4260
4260
  "name": "receiver",
4261
- "nameLocation": "13125:8:39",
4261
+ "nameLocation": "13145:8:39",
4262
4262
  "nodeType": "VariableDeclaration",
4263
4263
  "scope": 16343,
4264
- "src": "13117:16:39",
4264
+ "src": "13137:16:39",
4265
4265
  "stateVariable": false,
4266
4266
  "storageLocation": "default",
4267
4267
  "typeDescriptions": {
@@ -4272,7 +4272,7 @@
4272
4272
  "id": 16335,
4273
4273
  "name": "address",
4274
4274
  "nodeType": "ElementaryTypeName",
4275
- "src": "13117:7:39",
4275
+ "src": "13137:7:39",
4276
4276
  "stateMutability": "nonpayable",
4277
4277
  "typeDescriptions": {
4278
4278
  "typeIdentifier": "t_address",
@@ -4286,10 +4286,10 @@
4286
4286
  "id": 16338,
4287
4287
  "mutability": "mutable",
4288
4288
  "name": "ctx",
4289
- "nameLocation": "13158:3:39",
4289
+ "nameLocation": "13178:3:39",
4290
4290
  "nodeType": "VariableDeclaration",
4291
4291
  "scope": 16343,
4292
- "src": "13143:18:39",
4292
+ "src": "13163:18:39",
4293
4293
  "stateVariable": false,
4294
4294
  "storageLocation": "calldata",
4295
4295
  "typeDescriptions": {
@@ -4300,7 +4300,7 @@
4300
4300
  "id": 16337,
4301
4301
  "name": "bytes",
4302
4302
  "nodeType": "ElementaryTypeName",
4303
- "src": "13143:5:39",
4303
+ "src": "13163:5:39",
4304
4304
  "typeDescriptions": {
4305
4305
  "typeIdentifier": "t_bytes_storage_ptr",
4306
4306
  "typeString": "bytes"
@@ -4309,7 +4309,7 @@
4309
4309
  "visibility": "internal"
4310
4310
  }
4311
4311
  ],
4312
- "src": "13051:116:39"
4312
+ "src": "13071:116:39"
4313
4313
  },
4314
4314
  "returnParameters": {
4315
4315
  "id": 16342,
@@ -4320,10 +4320,10 @@
4320
4320
  "id": 16341,
4321
4321
  "mutability": "mutable",
4322
4322
  "name": "newCtx",
4323
- "nameLocation": "13222:6:39",
4323
+ "nameLocation": "13242:6:39",
4324
4324
  "nodeType": "VariableDeclaration",
4325
4325
  "scope": 16343,
4326
- "src": "13209:19:39",
4326
+ "src": "13229:19:39",
4327
4327
  "stateVariable": false,
4328
4328
  "storageLocation": "memory",
4329
4329
  "typeDescriptions": {
@@ -4334,7 +4334,7 @@
4334
4334
  "id": 16340,
4335
4335
  "name": "bytes",
4336
4336
  "nodeType": "ElementaryTypeName",
4337
- "src": "13209:5:39",
4337
+ "src": "13229:5:39",
4338
4338
  "typeDescriptions": {
4339
4339
  "typeIdentifier": "t_bytes_storage_ptr",
4340
4340
  "typeString": "bytes"
@@ -4343,10 +4343,10 @@
4343
4343
  "visibility": "internal"
4344
4344
  }
4345
4345
  ],
4346
- "src": "13208:21:39"
4346
+ "src": "13228:21:39"
4347
4347
  },
4348
4348
  "scope": 16383,
4349
- "src": "13022:208:39",
4349
+ "src": "13042:208:39",
4350
4350
  "stateMutability": "nonpayable",
4351
4351
  "virtual": true,
4352
4352
  "visibility": "external"
@@ -4356,13 +4356,13 @@
4356
4356
  "documentation": {
4357
4357
  "id": 16344,
4358
4358
  "nodeType": "StructuredDocumentation",
4359
- "src": "13241:353:39",
4359
+ "src": "13261:353:39",
4360
4360
  "text": " @dev Flow operator updated event\n @param token Super token address\n @param sender Flow sender address\n @param flowOperator Flow operator address\n @param permissions Octo bitmask representation of permissions\n @param flowRateAllowance The flow rate allowance the `flowOperator` is granted (only goes down)"
4361
4361
  },
4362
4362
  "eventSelector": "c0d5d3a6ac18cc1769788c925e6e7fc89cd47e4270a42884736fa9b3ec09f3a8",
4363
4363
  "id": 16357,
4364
4364
  "name": "FlowOperatorUpdated",
4365
- "nameLocation": "13605:19:39",
4365
+ "nameLocation": "13625:19:39",
4366
4366
  "nodeType": "EventDefinition",
4367
4367
  "parameters": {
4368
4368
  "id": 16356,
@@ -4374,10 +4374,10 @@
4374
4374
  "indexed": true,
4375
4375
  "mutability": "mutable",
4376
4376
  "name": "token",
4377
- "nameLocation": "13659:5:39",
4377
+ "nameLocation": "13679:5:39",
4378
4378
  "nodeType": "VariableDeclaration",
4379
4379
  "scope": 16357,
4380
- "src": "13634:30:39",
4380
+ "src": "13654:30:39",
4381
4381
  "stateVariable": false,
4382
4382
  "storageLocation": "default",
4383
4383
  "typeDescriptions": {
@@ -4392,10 +4392,10 @@
4392
4392
  "name": "ISuperfluidToken",
4393
4393
  "nodeType": "IdentifierPath",
4394
4394
  "referencedDeclaration": 18721,
4395
- "src": "13634:16:39"
4395
+ "src": "13654:16:39"
4396
4396
  },
4397
4397
  "referencedDeclaration": 18721,
4398
- "src": "13634:16:39",
4398
+ "src": "13654:16:39",
4399
4399
  "typeDescriptions": {
4400
4400
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4401
4401
  "typeString": "contract ISuperfluidToken"
@@ -4409,10 +4409,10 @@
4409
4409
  "indexed": true,
4410
4410
  "mutability": "mutable",
4411
4411
  "name": "sender",
4412
- "nameLocation": "13690:6:39",
4412
+ "nameLocation": "13710:6:39",
4413
4413
  "nodeType": "VariableDeclaration",
4414
4414
  "scope": 16357,
4415
- "src": "13674:22:39",
4415
+ "src": "13694:22:39",
4416
4416
  "stateVariable": false,
4417
4417
  "storageLocation": "default",
4418
4418
  "typeDescriptions": {
@@ -4423,7 +4423,7 @@
4423
4423
  "id": 16348,
4424
4424
  "name": "address",
4425
4425
  "nodeType": "ElementaryTypeName",
4426
- "src": "13674:7:39",
4426
+ "src": "13694:7:39",
4427
4427
  "stateMutability": "nonpayable",
4428
4428
  "typeDescriptions": {
4429
4429
  "typeIdentifier": "t_address",
@@ -4438,10 +4438,10 @@
4438
4438
  "indexed": true,
4439
4439
  "mutability": "mutable",
4440
4440
  "name": "flowOperator",
4441
- "nameLocation": "13722:12:39",
4441
+ "nameLocation": "13742:12:39",
4442
4442
  "nodeType": "VariableDeclaration",
4443
4443
  "scope": 16357,
4444
- "src": "13706:28:39",
4444
+ "src": "13726:28:39",
4445
4445
  "stateVariable": false,
4446
4446
  "storageLocation": "default",
4447
4447
  "typeDescriptions": {
@@ -4452,7 +4452,7 @@
4452
4452
  "id": 16350,
4453
4453
  "name": "address",
4454
4454
  "nodeType": "ElementaryTypeName",
4455
- "src": "13706:7:39",
4455
+ "src": "13726:7:39",
4456
4456
  "stateMutability": "nonpayable",
4457
4457
  "typeDescriptions": {
4458
4458
  "typeIdentifier": "t_address",
@@ -4467,10 +4467,10 @@
4467
4467
  "indexed": false,
4468
4468
  "mutability": "mutable",
4469
4469
  "name": "permissions",
4470
- "nameLocation": "13750:11:39",
4470
+ "nameLocation": "13770:11:39",
4471
4471
  "nodeType": "VariableDeclaration",
4472
4472
  "scope": 16357,
4473
- "src": "13744:17:39",
4473
+ "src": "13764:17:39",
4474
4474
  "stateVariable": false,
4475
4475
  "storageLocation": "default",
4476
4476
  "typeDescriptions": {
@@ -4481,7 +4481,7 @@
4481
4481
  "id": 16352,
4482
4482
  "name": "uint8",
4483
4483
  "nodeType": "ElementaryTypeName",
4484
- "src": "13744:5:39",
4484
+ "src": "13764:5:39",
4485
4485
  "typeDescriptions": {
4486
4486
  "typeIdentifier": "t_uint8",
4487
4487
  "typeString": "uint8"
@@ -4495,10 +4495,10 @@
4495
4495
  "indexed": false,
4496
4496
  "mutability": "mutable",
4497
4497
  "name": "flowRateAllowance",
4498
- "nameLocation": "13777:17:39",
4498
+ "nameLocation": "13797:17:39",
4499
4499
  "nodeType": "VariableDeclaration",
4500
4500
  "scope": 16357,
4501
- "src": "13771:23:39",
4501
+ "src": "13791:23:39",
4502
4502
  "stateVariable": false,
4503
4503
  "storageLocation": "default",
4504
4504
  "typeDescriptions": {
@@ -4509,7 +4509,7 @@
4509
4509
  "id": 16354,
4510
4510
  "name": "int96",
4511
4511
  "nodeType": "ElementaryTypeName",
4512
- "src": "13771:5:39",
4512
+ "src": "13791:5:39",
4513
4513
  "typeDescriptions": {
4514
4514
  "typeIdentifier": "t_int96",
4515
4515
  "typeString": "int96"
@@ -4518,22 +4518,22 @@
4518
4518
  "visibility": "internal"
4519
4519
  }
4520
4520
  ],
4521
- "src": "13624:176:39"
4521
+ "src": "13644:176:39"
4522
4522
  },
4523
- "src": "13599:202:39"
4523
+ "src": "13619:202:39"
4524
4524
  },
4525
4525
  {
4526
4526
  "anonymous": false,
4527
4527
  "documentation": {
4528
4528
  "id": 16358,
4529
4529
  "nodeType": "StructuredDocumentation",
4530
- "src": "13807:466:39",
4530
+ "src": "13827:466:39",
4531
4531
  "text": " @dev Flow updated event\n @param token Super token address\n @param sender Flow sender address\n @param receiver Flow recipient address\n @param flowRate Flow rate in amount per second for this flow\n @param totalSenderFlowRate Total flow rate in amount per second for the sender\n @param totalReceiverFlowRate Total flow rate in amount per second for the receiver\n @param userData The user provided data"
4532
4532
  },
4533
4533
  "eventSelector": "57269d2ebcccecdcc0d9d2c0a0b80ead95f344e28ec20f50f709811f209d4e0e",
4534
4534
  "id": 16375,
4535
4535
  "name": "FlowUpdated",
4536
- "nameLocation": "14284:11:39",
4536
+ "nameLocation": "14304:11:39",
4537
4537
  "nodeType": "EventDefinition",
4538
4538
  "parameters": {
4539
4539
  "id": 16374,
@@ -4545,10 +4545,10 @@
4545
4545
  "indexed": true,
4546
4546
  "mutability": "mutable",
4547
4547
  "name": "token",
4548
- "nameLocation": "14330:5:39",
4548
+ "nameLocation": "14350:5:39",
4549
4549
  "nodeType": "VariableDeclaration",
4550
4550
  "scope": 16375,
4551
- "src": "14305:30:39",
4551
+ "src": "14325:30:39",
4552
4552
  "stateVariable": false,
4553
4553
  "storageLocation": "default",
4554
4554
  "typeDescriptions": {
@@ -4563,10 +4563,10 @@
4563
4563
  "name": "ISuperfluidToken",
4564
4564
  "nodeType": "IdentifierPath",
4565
4565
  "referencedDeclaration": 18721,
4566
- "src": "14305:16:39"
4566
+ "src": "14325:16:39"
4567
4567
  },
4568
4568
  "referencedDeclaration": 18721,
4569
- "src": "14305:16:39",
4569
+ "src": "14325:16:39",
4570
4570
  "typeDescriptions": {
4571
4571
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4572
4572
  "typeString": "contract ISuperfluidToken"
@@ -4580,10 +4580,10 @@
4580
4580
  "indexed": true,
4581
4581
  "mutability": "mutable",
4582
4582
  "name": "sender",
4583
- "nameLocation": "14361:6:39",
4583
+ "nameLocation": "14381:6:39",
4584
4584
  "nodeType": "VariableDeclaration",
4585
4585
  "scope": 16375,
4586
- "src": "14345:22:39",
4586
+ "src": "14365:22:39",
4587
4587
  "stateVariable": false,
4588
4588
  "storageLocation": "default",
4589
4589
  "typeDescriptions": {
@@ -4594,7 +4594,7 @@
4594
4594
  "id": 16362,
4595
4595
  "name": "address",
4596
4596
  "nodeType": "ElementaryTypeName",
4597
- "src": "14345:7:39",
4597
+ "src": "14365:7:39",
4598
4598
  "stateMutability": "nonpayable",
4599
4599
  "typeDescriptions": {
4600
4600
  "typeIdentifier": "t_address",
@@ -4609,10 +4609,10 @@
4609
4609
  "indexed": true,
4610
4610
  "mutability": "mutable",
4611
4611
  "name": "receiver",
4612
- "nameLocation": "14393:8:39",
4612
+ "nameLocation": "14413:8:39",
4613
4613
  "nodeType": "VariableDeclaration",
4614
4614
  "scope": 16375,
4615
- "src": "14377:24:39",
4615
+ "src": "14397:24:39",
4616
4616
  "stateVariable": false,
4617
4617
  "storageLocation": "default",
4618
4618
  "typeDescriptions": {
@@ -4623,7 +4623,7 @@
4623
4623
  "id": 16364,
4624
4624
  "name": "address",
4625
4625
  "nodeType": "ElementaryTypeName",
4626
- "src": "14377:7:39",
4626
+ "src": "14397:7:39",
4627
4627
  "stateMutability": "nonpayable",
4628
4628
  "typeDescriptions": {
4629
4629
  "typeIdentifier": "t_address",
@@ -4638,10 +4638,10 @@
4638
4638
  "indexed": false,
4639
4639
  "mutability": "mutable",
4640
4640
  "name": "flowRate",
4641
- "nameLocation": "14417:8:39",
4641
+ "nameLocation": "14437:8:39",
4642
4642
  "nodeType": "VariableDeclaration",
4643
4643
  "scope": 16375,
4644
- "src": "14411:14:39",
4644
+ "src": "14431:14:39",
4645
4645
  "stateVariable": false,
4646
4646
  "storageLocation": "default",
4647
4647
  "typeDescriptions": {
@@ -4652,7 +4652,7 @@
4652
4652
  "id": 16366,
4653
4653
  "name": "int96",
4654
4654
  "nodeType": "ElementaryTypeName",
4655
- "src": "14411:5:39",
4655
+ "src": "14431:5:39",
4656
4656
  "typeDescriptions": {
4657
4657
  "typeIdentifier": "t_int96",
4658
4658
  "typeString": "int96"
@@ -4666,10 +4666,10 @@
4666
4666
  "indexed": false,
4667
4667
  "mutability": "mutable",
4668
4668
  "name": "totalSenderFlowRate",
4669
- "nameLocation": "14442:19:39",
4669
+ "nameLocation": "14462:19:39",
4670
4670
  "nodeType": "VariableDeclaration",
4671
4671
  "scope": 16375,
4672
- "src": "14435:26:39",
4672
+ "src": "14455:26:39",
4673
4673
  "stateVariable": false,
4674
4674
  "storageLocation": "default",
4675
4675
  "typeDescriptions": {
@@ -4680,7 +4680,7 @@
4680
4680
  "id": 16368,
4681
4681
  "name": "int256",
4682
4682
  "nodeType": "ElementaryTypeName",
4683
- "src": "14435:6:39",
4683
+ "src": "14455:6:39",
4684
4684
  "typeDescriptions": {
4685
4685
  "typeIdentifier": "t_int256",
4686
4686
  "typeString": "int256"
@@ -4694,10 +4694,10 @@
4694
4694
  "indexed": false,
4695
4695
  "mutability": "mutable",
4696
4696
  "name": "totalReceiverFlowRate",
4697
- "nameLocation": "14478:21:39",
4697
+ "nameLocation": "14498:21:39",
4698
4698
  "nodeType": "VariableDeclaration",
4699
4699
  "scope": 16375,
4700
- "src": "14471:28:39",
4700
+ "src": "14491:28:39",
4701
4701
  "stateVariable": false,
4702
4702
  "storageLocation": "default",
4703
4703
  "typeDescriptions": {
@@ -4708,7 +4708,7 @@
4708
4708
  "id": 16370,
4709
4709
  "name": "int256",
4710
4710
  "nodeType": "ElementaryTypeName",
4711
- "src": "14471:6:39",
4711
+ "src": "14491:6:39",
4712
4712
  "typeDescriptions": {
4713
4713
  "typeIdentifier": "t_int256",
4714
4714
  "typeString": "int256"
@@ -4722,10 +4722,10 @@
4722
4722
  "indexed": false,
4723
4723
  "mutability": "mutable",
4724
4724
  "name": "userData",
4725
- "nameLocation": "14515:8:39",
4725
+ "nameLocation": "14535:8:39",
4726
4726
  "nodeType": "VariableDeclaration",
4727
4727
  "scope": 16375,
4728
- "src": "14509:14:39",
4728
+ "src": "14529:14:39",
4729
4729
  "stateVariable": false,
4730
4730
  "storageLocation": "default",
4731
4731
  "typeDescriptions": {
@@ -4736,7 +4736,7 @@
4736
4736
  "id": 16372,
4737
4737
  "name": "bytes",
4738
4738
  "nodeType": "ElementaryTypeName",
4739
- "src": "14509:5:39",
4739
+ "src": "14529:5:39",
4740
4740
  "typeDescriptions": {
4741
4741
  "typeIdentifier": "t_bytes_storage_ptr",
4742
4742
  "typeString": "bytes"
@@ -4745,22 +4745,22 @@
4745
4745
  "visibility": "internal"
4746
4746
  }
4747
4747
  ],
4748
- "src": "14295:234:39"
4748
+ "src": "14315:234:39"
4749
4749
  },
4750
- "src": "14278:252:39"
4750
+ "src": "14298:252:39"
4751
4751
  },
4752
4752
  {
4753
4753
  "anonymous": false,
4754
4754
  "documentation": {
4755
4755
  "id": 16376,
4756
4756
  "nodeType": "StructuredDocumentation",
4757
- "src": "14536:181:39",
4757
+ "src": "14556:181:39",
4758
4758
  "text": " @dev Flow updated extension event\n @param flowOperator Flow operator address - the Context.msgSender\n @param deposit The deposit amount for the stream"
4759
4759
  },
4760
4760
  "eventSelector": "71e0c98e270fc3084227b473f176924d5303ece8c639e679998a2d7dc8e70f74",
4761
4761
  "id": 16382,
4762
4762
  "name": "FlowUpdatedExtension",
4763
- "nameLocation": "14728:20:39",
4763
+ "nameLocation": "14748:20:39",
4764
4764
  "nodeType": "EventDefinition",
4765
4765
  "parameters": {
4766
4766
  "id": 16381,
@@ -4772,10 +4772,10 @@
4772
4772
  "indexed": true,
4773
4773
  "mutability": "mutable",
4774
4774
  "name": "flowOperator",
4775
- "nameLocation": "14774:12:39",
4775
+ "nameLocation": "14794:12:39",
4776
4776
  "nodeType": "VariableDeclaration",
4777
4777
  "scope": 16382,
4778
- "src": "14758:28:39",
4778
+ "src": "14778:28:39",
4779
4779
  "stateVariable": false,
4780
4780
  "storageLocation": "default",
4781
4781
  "typeDescriptions": {
@@ -4786,7 +4786,7 @@
4786
4786
  "id": 16377,
4787
4787
  "name": "address",
4788
4788
  "nodeType": "ElementaryTypeName",
4789
- "src": "14758:7:39",
4789
+ "src": "14778:7:39",
4790
4790
  "stateMutability": "nonpayable",
4791
4791
  "typeDescriptions": {
4792
4792
  "typeIdentifier": "t_address",
@@ -4801,10 +4801,10 @@
4801
4801
  "indexed": false,
4802
4802
  "mutability": "mutable",
4803
4803
  "name": "deposit",
4804
- "nameLocation": "14804:7:39",
4804
+ "nameLocation": "14824:7:39",
4805
4805
  "nodeType": "VariableDeclaration",
4806
4806
  "scope": 16382,
4807
- "src": "14796:15:39",
4807
+ "src": "14816:15:39",
4808
4808
  "stateVariable": false,
4809
4809
  "storageLocation": "default",
4810
4810
  "typeDescriptions": {
@@ -4815,7 +4815,7 @@
4815
4815
  "id": 16379,
4816
4816
  "name": "uint256",
4817
4817
  "nodeType": "ElementaryTypeName",
4818
- "src": "14796:7:39",
4818
+ "src": "14816:7:39",
4819
4819
  "typeDescriptions": {
4820
4820
  "typeIdentifier": "t_uint256",
4821
4821
  "typeString": "uint256"
@@ -4824,25 +4824,25 @@
4824
4824
  "visibility": "internal"
4825
4825
  }
4826
4826
  ],
4827
- "src": "14748:69:39"
4827
+ "src": "14768:69:39"
4828
4828
  },
4829
- "src": "14722:96:39"
4829
+ "src": "14742:96:39"
4830
4830
  }
4831
4831
  ],
4832
4832
  "scope": 16384,
4833
- "src": "278:14542:39",
4833
+ "src": "278:14562:39",
4834
4834
  "usedErrors": []
4835
4835
  }
4836
4836
  ],
4837
- "src": "35:14786:39"
4837
+ "src": "35:14806:39"
4838
4838
  },
4839
4839
  "compiler": {
4840
4840
  "name": "solc",
4841
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
4841
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
4842
4842
  },
4843
4843
  "networks": {},
4844
4844
  "schemaVersion": "3.4.7",
4845
- "updatedAt": "2022-06-03T09:45:13.975Z",
4845
+ "updatedAt": "2022-06-16T09:19:12.145Z",
4846
4846
  "devdoc": {
4847
4847
  "author": "Superfluid",
4848
4848
  "events": {
@@ -4890,9 +4890,11 @@
4890
4890
  }
4891
4891
  },
4892
4892
  "createFlow(address,address,int96,bytes)": {
4893
+ "custom:callbacks": " - AgreementCreated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver)",
4894
+ "custom:note": " - A deposit is taken as safety margin for the solvency agents - A extra gas fee may be taken to pay for solvency agent liquidations",
4893
4895
  "details": "flowId (agreementId) is the keccak256 hash of encoded sender and receiver",
4894
4896
  "params": {
4895
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - AgreementCreated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver) NOTE: - A deposit is taken as safety margin for the solvency agents - A extra gas fee may be taken to pay for solvency agent liquidations",
4897
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
4896
4898
  "flowRate": "New flow rate in amount per second",
4897
4899
  "receiver": "Flow receiver address",
4898
4900
  "token": "Super token address"
@@ -4909,10 +4911,12 @@
4909
4911
  }
4910
4912
  },
4911
4913
  "deleteFlow(address,address,address,bytes)": {
4914
+ "custom:callbacks": " - AgreementTerminated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver)",
4915
+ "custom:note": " - Both flow sender and receiver may delete the flow - If Sender account is insolvent or in critical state, a solvency agent may also terminate the agreement - Gas fee may be returned to the sender",
4912
4916
  "details": "flowId (agreementId) is the keccak256 hash of encoded sender and receiver",
4913
4917
  "params": {
4914
4918
  "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
4915
- "receiver": "Flow receiver address # App callbacks - AgreementTerminated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver) NOTE: - Both flow sender and receiver may delete the flow - If Sender account is insolvent or in critical state, a solvency agent may also terminate the agreement - Gas fee may be returned to the sender",
4919
+ "receiver": "Flow receiver address",
4916
4920
  "token": "Super token address"
4917
4921
  }
4918
4922
  },
@@ -4938,12 +4942,13 @@
4938
4942
  }
4939
4943
  },
4940
4944
  "getDepositRequiredForFlowRate(address,int96)": {
4945
+ "custom:note": " - if calculated deposit (flowRate * liquidationPeriod) is less than the minimum deposit, we use the minimum deposit otherwise we use the calculated deposit",
4941
4946
  "details": "Calculates the deposit based on the liquidationPeriod and flowRate",
4942
4947
  "params": {
4943
4948
  "flowRate": "Flow rate to be tested"
4944
4949
  },
4945
4950
  "returns": {
4946
- "deposit": "The deposit amount based on flowRate and liquidationPeriod NOTE: - if calculated deposit (flowRate * liquidationPeriod) is less than the minimum deposit, we use the minimum deposit otherwise we use the calculated deposit"
4951
+ "deposit": "The deposit amount based on flowRate and liquidationPeriod"
4947
4952
  }
4948
4953
  },
4949
4954
  "getFlow(address,address,address)": {
@@ -5055,9 +5060,11 @@
5055
5060
  }
5056
5061
  },
5057
5062
  "updateFlow(address,address,int96,bytes)": {
5063
+ "custom:callbacks": " - AgreementUpdated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver)",
5064
+ "custom:note": " - Only the flow sender may update the flow rate - Even if the flow rate is zero, the flow is not deleted from the system - Deposit amount will be adjusted accordingly - No new gas fee is charged",
5058
5065
  "details": "flowId (agreementId) is the keccak256 hash of encoded sender and receiver",
5059
5066
  "params": {
5060
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - AgreementUpdated - agreementId - can be used in getFlowByID - agreementData - abi.encode(address flowSender, address flowReceiver) NOTE: - Only the flow sender may update the flow rate - Even if the flow rate is zero, the flow is not deleted from the system - Deposit amount will be adjusted accordingly - No new gas fee is charged",
5067
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5061
5068
  "flowRate": "New flow rate in amount per second",
5062
5069
  "receiver": "Flow receiver address",
5063
5070
  "token": "Super token address"