@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
@@ -940,7 +940,7 @@
940
940
  "type": "function"
941
941
  }
942
942
  ],
943
- "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\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"IndexDistributionClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexSubscribed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexUnitsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexUnsubscribed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"oldIndexValue\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"newIndexValue\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"totalUnitsPending\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"totalUnitsApproved\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"SubscriptionApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SubscriptionDistributionClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"SubscriptionRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"SubscriptionUnitsUpdated\",\"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\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"approveSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calculateDistribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"newIndexValue\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"createIndex\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"deleteSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"}],\"name\":\"getIndex\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"indexValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"totalUnitsApproved\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"totalUnitsPending\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"}],\"name\":\"getSubscription\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"pendingDistribution\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"agreementId\",\"type\":\"bytes32\"}],\"name\":\"getSubscriptionByID\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"pendingDistribution\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"}],\"name\":\"listSubscriptions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"publishers\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"indexIds\",\"type\":\"uint32[]\"},{\"internalType\":\"uint128[]\",\"name\":\"unitsList\",\"type\":\"uint128[]\"}],\"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\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"revokeSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"indexValue\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateIndex\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid Notes: - A publisher can create as many as indices as possibly identifiable with `indexId`. - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision. Despite knowing sha-3 collision is only theoretical. - A publisher can create a subscription to an index for any subscriber. - A subscription consists of: - The index it subscribes to. - Number of units subscribed. - An index consists of: - Current value as `uint128 indexValue`. - Total units of the approved subscriptions as `uint128 totalUnitsApproved`. - Total units of the non approved subscription as `uint128 totalUnitsPending`. - A publisher can update an index with a new value that doesn't decrease. - A publisher can update a subscription with any number of units. - A publisher or a subscriber can delete a subscription and reset its units to zero. - A subscriber must approve the index in order to receive distributions from the publisher each time the index is updated. - The amount distributed is $$\\\\Delta{index} * units$$ - Distributions to a non approved subscription stays in the publisher's deposit until: - the subscriber approves the subscription (side effect), - the publisher updates the subscription (side effect), - the subscriber deletes the subscription even if it is never approved (side effect), - or the subscriber can explicitly claim them.\",\"events\":{\"IndexCreated(address,address,uint32,bytes)\":{\"details\":\"Index created event\",\"params\":{\"indexId\":\"The specified indexId of the newly created index\",\"publisher\":\"Index creator and publisher\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"IndexDistributionClaimed(address,address,uint32,address,uint256)\":{\"details\":\"Index distribution claimed event\",\"params\":{\"amount\":\"The pending amount claimed\",\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\"}},\"IndexSubscribed(address,address,uint32,address,bytes)\":{\"details\":\"Index subscribed event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The approved subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"IndexUnitsUpdated(address,address,uint32,address,uint128,bytes)\":{\"details\":\"Index units updated event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\",\"units\":\"The new units amount\",\"userData\":\"The user provided data\"}},\"IndexUnsubscribed(address,address,uint32,address,bytes)\":{\"details\":\"Index unsubscribed event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The unsubscribed subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"IndexUpdated(address,address,uint32,uint128,uint128,uint128,uint128,bytes)\":{\"details\":\"Index updated event\",\"params\":{\"indexId\":\"The specified indexId of the updated index\",\"newIndexValue\":\"The updated index value\",\"oldIndexValue\":\"The previous index value\",\"publisher\":\"Index updater and publisher\",\"token\":\"Super token address\",\"totalUnitsApproved\":\"The total units approved when the indexValue was updated\",\"totalUnitsPending\":\"The total units pending when the indexValue was updated\",\"userData\":\"The user provided data\"}},\"SubscriptionApproved(address,address,address,uint32,bytes)\":{\"details\":\"Subscription approved event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The approved subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"SubscriptionDistributionClaimed(address,address,address,uint32,uint256)\":{\"details\":\"Subscription distribution claimed event\",\"params\":{\"amount\":\"The pending amount claimed\",\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\"}},\"SubscriptionRevoked(address,address,address,uint32,bytes)\":{\"details\":\"Subscription approved event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The approved subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"SubscriptionUnitsUpdated(address,address,address,uint32,uint128,bytes)\":{\"details\":\"Subscription units updated event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\",\"units\":\"The new units amount\",\"userData\":\"The user provided data\"}}},\"kind\":\"dev\",\"methods\":{\"agreementType()\":{\"details\":\"ISuperAgreement.agreementType implementation\"},\"approveSubscription(address,address,uint32,bytes)\":{\"details\":\"Approve the subscription of an index\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - if subscription exist - AgreementCreated callback to the publisher: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the publisher: - agreementId is for the subscription\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"}},\"calculateDistribution(address,address,uint32,uint256)\":{\"details\":\"Calculate actual distribution amount\",\"params\":{\"amount\":\"The amount of tokens desired to be distributed\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"},\"returns\":{\"actualAmount\":\"The amount to be distributed after ensuring no rounding errors\",\"newIndexValue\":\"The index value given the desired amount of tokens to be distributed\"}},\"claim(address,address,uint32,address,bytes)\":{\"details\":\"Claim pending distributions\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) The subscription should not be approved yet # App callbacks - AgreementUpdated callback to the publisher: - agreementId is for the subscription\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"subscriber\":\"The subscriber's address\",\"token\":\"Super token address\"}},\"createIndex(address,uint32,bytes)\":{\"details\":\"Create a new index for the publisher\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks None\",\"indexId\":\"Id of the index\",\"token\":\"Super token address\"}},\"deleteSubscription(address,address,uint32,address,bytes)\":{\"details\":\"Delete the subscription of an user\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - if the subscriber called it - AgreementTerminated callback to the publsiher: - agreementId is for the subscription - if the publisher called it - AgreementTerminated callback to the subscriber: - agreementId is for the subscription\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"subscriber\":\"The subscriber's address\",\"token\":\"Super token address\"}},\"distribute(address,uint32,uint256,bytes)\":{\"details\":\"Distribute tokens through the index\",\"params\":{\"amount\":\"The amount of tokens desired to be distributed\",\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) NOTE: - This is a convenient version of updateIndex. It adds to the index a delta that equals to `amount / totalUnits` - The actual amount distributed could be obtained via `calculateDistribution`. This is due to precision error with index value and units data range # App callbacks None\",\"indexId\":\"Id of the index\",\"token\":\"Super token address\"}},\"getIndex(address,address,uint32)\":{\"details\":\"Query the data of a index\",\"params\":{\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"},\"returns\":{\"exist\":\"Does the index exist\",\"indexValue\":\"Value of the current index\",\"totalUnitsApproved\":\"Total units approved for the index\",\"totalUnitsPending\":\"Total units pending approval for the index\"}},\"getSubscription(address,address,uint32,address)\":{\"details\":\"Get data of a subscription\",\"params\":{\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"subscriber\":\"The subscriber of the index\",\"token\":\"Super token address\"},\"returns\":{\"approved\":\"Is the subscription approved?\",\"exist\":\"Does the subscription exist?\",\"pendingDistribution\":\"Pending amount of tokens to be distributed for unapproved subscription\",\"units\":\"Units of the suscription\"}},\"getSubscriptionByID(address,bytes32)\":{\"details\":\"indexId (agreementId) is the keccak256 hash of encodePacked(\\\"publisher\\\", publisher, indexId)\",\"params\":{\"agreementId\":\"The agreement ID\",\"token\":\"Super token address\"},\"returns\":{\"approved\":\"Is the subscription approved?\",\"indexId\":\"Id of the index\",\"pendingDistribution\":\"Pending amount of tokens to be distributed for unapproved subscription\",\"publisher\":\"The publisher of the index\",\"units\":\"Units of the suscription\"}},\"listSubscriptions(address,address)\":{\"details\":\"List subscriptions of an user\",\"params\":{\"subscriber\":\"The subscriber's address\",\"token\":\"Super token address\"},\"returns\":{\"indexIds\":\"Indexes of the subscriptions\",\"publishers\":\"Publishers of the subcriptions\",\"unitsList\":\"Units of the subscriptions\"}},\"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\"}},\"revokeSubscription(address,address,uint32,bytes)\":{\"details\":\"\\\"Unapproves\\\" the subscription and moves approved units to pending\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - AgreementUpdated callback to the publisher: - agreementId is for the subscription\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"}},\"updateIndex(address,uint32,uint128,bytes)\":{\"details\":\"Update index value of an index\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks None\",\"indexId\":\"Id of the index\",\"indexValue\":\"Value of the index\",\"token\":\"Super token address\"}},\"updateSubscription(address,uint32,address,uint128,bytes)\":{\"details\":\"Update the nuber of units of a subscription\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - if subscription exist - AgreementCreated callback to the subscriber: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the subscriber: - agreementId is for the subscription\",\"indexId\":\"Id of the index\",\"subscriber\":\"The subscriber of the index\",\"token\":\"Super token address\",\"units\":\"Number of units of the subscription\"}}},\"title\":\"Instant Distribution Agreement interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSubscriptionByID(address,bytes32)\":{\"notice\":\"Get data of a subscription by agreement ID\"},\"revokeSubscription(address,address,uint32,bytes)\":{\"notice\":\"Revoke the subscription of an index\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol\":\"IInstantDistributionAgreementV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol\":{\"keccak256\":\"0x47948789bc2265e6228f70ddd9eb194be4e35b1c5ce598f5b5a01fcb48def27b\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://d758b5560a735d8ab2175a2b76afe38f99bf170800917c4f0adae1f8862ad785\",\"dweb:/ipfs/QmXZToKtnJXmJq4hBqkwVAj6CYkG2DGbErt9G9T7sW4Zoe\"]},\"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}",
943
+ "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\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"IndexDistributionClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexSubscribed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexUnitsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexUnsubscribed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"oldIndexValue\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"newIndexValue\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"totalUnitsPending\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"totalUnitsApproved\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"IndexUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"SubscriptionApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SubscriptionDistributionClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"SubscriptionRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"}],\"name\":\"SubscriptionUnitsUpdated\",\"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\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"approveSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"calculateDistribution\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"actualAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"newIndexValue\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"createIndex\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"deleteSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"}],\"name\":\"getIndex\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"indexValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"totalUnitsApproved\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"totalUnitsPending\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"}],\"name\":\"getSubscription\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"pendingDistribution\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"agreementId\",\"type\":\"bytes32\"}],\"name\":\"getSubscriptionByID\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"},{\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"pendingDistribution\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"}],\"name\":\"listSubscriptions\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"publishers\",\"type\":\"address[]\"},{\"internalType\":\"uint32[]\",\"name\":\"indexIds\",\"type\":\"uint32[]\"},{\"internalType\":\"uint128[]\",\"name\":\"unitsList\",\"type\":\"uint128[]\"}],\"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\":\"publisher\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"revokeSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"uint128\",\"name\":\"indexValue\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateIndex\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ISuperfluidToken\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"indexId\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"subscriber\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"units\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"ctx\",\"type\":\"bytes\"}],\"name\":\"updateSubscription\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"newCtx\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"events\":{\"IndexCreated(address,address,uint32,bytes)\":{\"details\":\"Index created event\",\"params\":{\"indexId\":\"The specified indexId of the newly created index\",\"publisher\":\"Index creator and publisher\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"IndexDistributionClaimed(address,address,uint32,address,uint256)\":{\"details\":\"Index distribution claimed event\",\"params\":{\"amount\":\"The pending amount claimed\",\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\"}},\"IndexSubscribed(address,address,uint32,address,bytes)\":{\"details\":\"Index subscribed event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The approved subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"IndexUnitsUpdated(address,address,uint32,address,uint128,bytes)\":{\"details\":\"Index units updated event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\",\"units\":\"The new units amount\",\"userData\":\"The user provided data\"}},\"IndexUnsubscribed(address,address,uint32,address,bytes)\":{\"details\":\"Index unsubscribed event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The unsubscribed subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"IndexUpdated(address,address,uint32,uint128,uint128,uint128,uint128,bytes)\":{\"details\":\"Index updated event\",\"params\":{\"indexId\":\"The specified indexId of the updated index\",\"newIndexValue\":\"The updated index value\",\"oldIndexValue\":\"The previous index value\",\"publisher\":\"Index updater and publisher\",\"token\":\"Super token address\",\"totalUnitsApproved\":\"The total units approved when the indexValue was updated\",\"totalUnitsPending\":\"The total units pending when the indexValue was updated\",\"userData\":\"The user provided data\"}},\"SubscriptionApproved(address,address,address,uint32,bytes)\":{\"details\":\"Subscription approved event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The approved subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"SubscriptionDistributionClaimed(address,address,address,uint32,uint256)\":{\"details\":\"Subscription distribution claimed event\",\"params\":{\"amount\":\"The pending amount claimed\",\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\"}},\"SubscriptionRevoked(address,address,address,uint32,bytes)\":{\"details\":\"Subscription approved event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The approved subscriber\",\"token\":\"Super token address\",\"userData\":\"The user provided data\"}},\"SubscriptionUnitsUpdated(address,address,address,uint32,uint128,bytes)\":{\"details\":\"Subscription units updated event\",\"params\":{\"indexId\":\"The specified indexId\",\"publisher\":\"Index publisher\",\"subscriber\":\"The subscriber units updated\",\"token\":\"Super token address\",\"units\":\"The new units amount\",\"userData\":\"The user provided data\"}}},\"kind\":\"dev\",\"methods\":{\"agreementType()\":{\"details\":\"ISuperAgreement.agreementType implementation\"},\"approveSubscription(address,address,uint32,bytes)\":{\"custom:callbacks\":\" - if subscription exist - AgreementCreated callback to the publisher: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the publisher: - agreementId is for the subscription\",\"details\":\"Approve the subscription of an index\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"}},\"calculateDistribution(address,address,uint32,uint256)\":{\"details\":\"Calculate actual distribution amount\",\"params\":{\"amount\":\"The amount of tokens desired to be distributed\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"},\"returns\":{\"actualAmount\":\"The amount to be distributed after ensuring no rounding errors\",\"newIndexValue\":\"The index value given the desired amount of tokens to be distributed\"}},\"claim(address,address,uint32,address,bytes)\":{\"custom:callbacks\":\" - AgreementUpdated callback to the publisher: - agreementId is for the subscription\",\"custom:note\":\"The subscription should not be approved yet\",\"details\":\"Claim pending distributions\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"subscriber\":\"The subscriber's address\",\"token\":\"Super token address\"}},\"createIndex(address,uint32,bytes)\":{\"custom:callbacks\":\" None\",\"details\":\"Create a new index for the publisher\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"token\":\"Super token address\"}},\"deleteSubscription(address,address,uint32,address,bytes)\":{\"custom:callbacks\":\" - if the subscriber called it - AgreementTerminated callback to the publsiher: - agreementId is for the subscription - if the publisher called it - AgreementTerminated callback to the subscriber: - agreementId is for the subscription\",\"details\":\"Delete the subscription of an user\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"subscriber\":\"The subscriber's address\",\"token\":\"Super token address\"}},\"distribute(address,uint32,uint256,bytes)\":{\"custom:callbacks\":\" None\",\"custom:note\":\" - This is a convenient version of updateIndex. It adds to the index a delta that equals to `amount / totalUnits` - The actual amount distributed could be obtained via `calculateDistribution`. This is due to precision error with index value and units data range\",\"details\":\"Distribute tokens through the index\",\"params\":{\"amount\":\"The amount of tokens desired to be distributed\",\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"token\":\"Super token address\"}},\"getIndex(address,address,uint32)\":{\"details\":\"Query the data of a index\",\"params\":{\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"},\"returns\":{\"exist\":\"Does the index exist\",\"indexValue\":\"Value of the current index\",\"totalUnitsApproved\":\"Total units approved for the index\",\"totalUnitsPending\":\"Total units pending approval for the index\"}},\"getSubscription(address,address,uint32,address)\":{\"details\":\"Get data of a subscription\",\"params\":{\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"subscriber\":\"The subscriber of the index\",\"token\":\"Super token address\"},\"returns\":{\"approved\":\"Is the subscription approved?\",\"exist\":\"Does the subscription exist?\",\"pendingDistribution\":\"Pending amount of tokens to be distributed for unapproved subscription\",\"units\":\"Units of the suscription\"}},\"getSubscriptionByID(address,bytes32)\":{\"details\":\"indexId (agreementId) is the keccak256 hash of encodePacked(\\\"publisher\\\", publisher, indexId)\",\"params\":{\"agreementId\":\"The agreement ID\",\"token\":\"Super token address\"},\"returns\":{\"approved\":\"Is the subscription approved?\",\"indexId\":\"Id of the index\",\"pendingDistribution\":\"Pending amount of tokens to be distributed for unapproved subscription\",\"publisher\":\"The publisher of the index\",\"units\":\"Units of the suscription\"}},\"listSubscriptions(address,address)\":{\"details\":\"List subscriptions of an user\",\"params\":{\"subscriber\":\"The subscriber's address\",\"token\":\"Super token address\"},\"returns\":{\"indexIds\":\"Indexes of the subscriptions\",\"publishers\":\"Publishers of the subcriptions\",\"unitsList\":\"Units of the subscriptions\"}},\"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\"}},\"revokeSubscription(address,address,uint32,bytes)\":{\"custom:callbacks\":\" - AgreementUpdated callback to the publisher: - agreementId is for the subscription\",\"details\":\"\\\"Unapproves\\\" the subscription and moves approved units to pending\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"publisher\":\"The publisher of the index\",\"token\":\"Super token address\"}},\"updateIndex(address,uint32,uint128,bytes)\":{\"custom:callbacks\":\" None\",\"details\":\"Update index value of an index\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"indexValue\":\"Value of the index\",\"token\":\"Super token address\"}},\"updateSubscription(address,uint32,address,uint128,bytes)\":{\"custom:callbacks\":\" - if subscription exist - AgreementCreated callback to the subscriber: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the subscriber: - agreementId is for the subscription\",\"details\":\"Update the nuber of units of a subscription\",\"params\":{\"ctx\":\"Context bytes (see ISuperfluid.sol for Context struct)\",\"indexId\":\"Id of the index\",\"subscriber\":\"The subscriber of the index\",\"token\":\"Super token address\",\"units\":\"Number of units of the subscription\"}}},\"title\":\"Instant Distribution Agreement interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getSubscriptionByID(address,bytes32)\":{\"notice\":\"Get data of a subscription by agreement ID\"},\"revokeSubscription(address,address,uint32,bytes)\":{\"notice\":\"Revoke the subscription of an index\"}},\"notice\":\" - A publisher can create as many as indices as possibly identifiable with `indexId`. - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision. Despite knowing sha-3 collision is only theoretical. - A publisher can create a subscription to an index for any subscriber. - A subscription consists of: - The index it subscribes to. - Number of units subscribed. - An index consists of: - Current value as `uint128 indexValue`. - Total units of the approved subscriptions as `uint128 totalUnitsApproved`. - Total units of the non approved subscription as `uint128 totalUnitsPending`. - A publisher can update an index with a new value that doesn't decrease. - A publisher can update a subscription with any number of units. - A publisher or a subscriber can delete a subscription and reset its units to zero. - A subscriber must approve the index in order to receive distributions from the publisher each time the index is updated. - The amount distributed is $$\\\\Delta{index} * units$$ - Distributions to a non approved subscription stays in the publisher's deposit until: - the subscriber approves the subscription (side effect), - the publisher updates the subscription (side effect), - the subscriber deletes the subscription even if it is never approved (side effect), - or the subscriber can explicitly claim them.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol\":\"IInstantDistributionAgreementV1\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol\":{\"keccak256\":\"0x6ef345136a4f7507d08e657ac3f09539353704a2146b8116d9983878d3113d7e\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://360bb0f7e87f787e999c74ddaf2d91dd9e3ed4fc1f9642f4623c5baa4ad28471\",\"dweb:/ipfs/QmfH6a4PtzQQVk6cNAwM6jHLutFVuuW7NANGcWAX1nA4ch\"]},\"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}",
944
944
  "bytecode": "0x",
945
945
  "deployedBytecode": "0x",
946
946
  "immutableReferences": {},
@@ -948,7 +948,7 @@
948
948
  "deployedGeneratedSources": [],
949
949
  "sourceMap": "",
950
950
  "deployedSourceMap": "",
951
- "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 Instant Distribution Agreement interface\n * @author Superfluid\n *\n * Notes:\n * - A publisher can create as many as indices as possibly identifiable with `indexId`.\n * - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision.\n * Despite knowing sha-3 collision is only theoretical.\n * - A publisher can create a subscription to an index for any subscriber.\n * - A subscription consists of:\n * - The index it subscribes to.\n * - Number of units subscribed.\n * - An index consists of:\n * - Current value as `uint128 indexValue`.\n * - Total units of the approved subscriptions as `uint128 totalUnitsApproved`.\n * - Total units of the non approved subscription as `uint128 totalUnitsPending`.\n * - A publisher can update an index with a new value that doesn't decrease.\n * - A publisher can update a subscription with any number of units.\n * - A publisher or a subscriber can delete a subscription and reset its units to zero.\n * - A subscriber must approve the index in order to receive distributions from the publisher\n * each time the index is updated.\n * - The amount distributed is $$\\Delta{index} * units$$\n * - Distributions to a non approved subscription stays in the publisher's deposit until:\n * - the subscriber approves the subscription (side effect),\n * - the publisher updates the subscription (side effect),\n * - the subscriber deletes the subscription even if it is never approved (side effect),\n * - or the subscriber can explicitly claim them.\n */\nabstract contract IInstantDistributionAgreementV1 is ISuperAgreement {\n\n /// @dev ISuperAgreement.agreementType implementation\n function agreementType() external override pure returns (bytes32) {\n return keccak256(\"org.superfluid-finance.agreements.InstantDistributionAgreement.v1\");\n }\n\n /**************************************************************************\n * Index operations\n *************************************************************************/\n\n /**\n * @dev Create a new index for the publisher\n * @param token Super token address\n * @param indexId Id of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n *\n * None\n */\n function createIndex(\n ISuperfluidToken token,\n uint32 indexId,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index created event\n * @param token Super token address\n * @param publisher Index creator and publisher\n * @param indexId The specified indexId of the newly created index\n * @param userData The user provided data\n */\n event IndexCreated(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n bytes userData);\n\n /**\n * @dev Query the data of a index\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @return exist Does the index exist\n * @return indexValue Value of the current index\n * @return totalUnitsApproved Total units approved for the index\n * @return totalUnitsPending Total units pending approval for the index\n */\n function getIndex(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId)\n external\n view\n virtual\n returns(\n bool exist,\n uint128 indexValue,\n uint128 totalUnitsApproved,\n uint128 totalUnitsPending);\n\n /**\n * @dev Calculate actual distribution amount\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param amount The amount of tokens desired to be distributed\n * @return actualAmount The amount to be distributed after ensuring no rounding errors\n * @return newIndexValue The index value given the desired amount of tokens to be distributed\n */\n function calculateDistribution(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n uint256 amount)\n external view\n virtual\n returns(\n uint256 actualAmount,\n uint128 newIndexValue);\n\n /**\n * @dev Update index value of an index\n * @param token Super token address\n * @param indexId Id of the index\n * @param indexValue Value of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n *\n * None\n */\n function updateIndex(\n ISuperfluidToken token,\n uint32 indexId,\n uint128 indexValue,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index updated event\n * @param token Super token address\n * @param publisher Index updater and publisher\n * @param indexId The specified indexId of the updated index\n * @param oldIndexValue The previous index value\n * @param newIndexValue The updated index value\n * @param totalUnitsPending The total units pending when the indexValue was updated\n * @param totalUnitsApproved The total units approved when the indexValue was updated\n * @param userData The user provided data\n */\n event IndexUpdated(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n uint128 oldIndexValue,\n uint128 newIndexValue,\n uint128 totalUnitsPending,\n uint128 totalUnitsApproved,\n bytes userData);\n\n /**\n * @dev Distribute tokens through the index\n * @param token Super token address\n * @param indexId Id of the index\n * @param amount The amount of tokens desired to be distributed\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * NOTE:\n * - This is a convenient version of updateIndex. It adds to the index\n * a delta that equals to `amount / totalUnits`\n * - The actual amount distributed could be obtained via\n * `calculateDistribution`. This is due to precision error with index\n * value and units data range\n *\n * # App callbacks\n *\n * None\n */\n function distribute(\n ISuperfluidToken token,\n uint32 indexId,\n uint256 amount,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n\n\n /**************************************************************************\n * Subscription operations\n *************************************************************************/\n\n /**\n * @dev Approve the subscription of an index\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n *\n * - if subscription exist\n * - AgreementCreated callback to the publisher:\n * - agreementId is for the subscription\n * - if subscription does not exist\n * - AgreementUpdated callback to the publisher:\n * - agreementId is for the subscription\n */\n function approveSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index subscribed event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The approved subscriber\n * @param userData The user provided data\n */\n event IndexSubscribed(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n bytes userData);\n\n /**\n * @dev Subscription approved event\n * @param token Super token address\n * @param subscriber The approved subscriber\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param userData The user provided data\n */\n event SubscriptionApproved(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n bytes userData);\n\n /**\n * @notice Revoke the subscription of an index\n * @dev \"Unapproves\" the subscription and moves approved units to pending\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n * - AgreementUpdated callback to the publisher:\n * - agreementId is for the subscription\n */\n function revokeSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index unsubscribed event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The unsubscribed subscriber\n * @param userData The user provided data\n */\n event IndexUnsubscribed(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n bytes userData);\n \n /**\n * @dev Subscription approved event\n * @param token Super token address\n * @param subscriber The approved subscriber\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param userData The user provided data\n */\n event SubscriptionRevoked(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n bytes userData);\n\n /**\n * @dev Update the nuber of units of a subscription\n * @param token Super token address\n * @param indexId Id of the index\n * @param subscriber The subscriber of the index\n * @param units Number of units of the subscription\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n *\n * - if subscription exist\n * - AgreementCreated callback to the subscriber:\n * - agreementId is for the subscription\n * - if subscription does not exist\n * - AgreementUpdated callback to the subscriber:\n * - agreementId is for the subscription\n */\n function updateSubscription(\n ISuperfluidToken token,\n uint32 indexId,\n address subscriber,\n uint128 units,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev Index units updated event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The subscriber units updated\n * @param units The new units amount\n * @param userData The user provided data\n */\n event IndexUnitsUpdated(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n uint128 units,\n bytes userData);\n \n /**\n * @dev Subscription units updated event\n * @param token Super token address\n * @param subscriber The subscriber units updated\n * @param indexId The specified indexId\n * @param publisher Index publisher\n * @param units The new units amount\n * @param userData The user provided data\n */\n event SubscriptionUnitsUpdated(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n uint128 units,\n bytes userData);\n\n /**\n * @dev Get data of a subscription\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param subscriber The subscriber of the index\n * @return exist Does the subscription exist?\n * @return approved Is the subscription approved?\n * @return units Units of the suscription\n * @return pendingDistribution Pending amount of tokens to be distributed for unapproved subscription\n */\n function getSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n address subscriber)\n external\n view\n virtual\n returns(\n bool exist,\n bool approved,\n uint128 units,\n uint256 pendingDistribution\n );\n\n /**\n * @notice Get data of a subscription by agreement ID\n * @dev indexId (agreementId) is the keccak256 hash of encodePacked(\"publisher\", publisher, indexId)\n * @param token Super token address\n * @param agreementId The agreement ID\n * @return publisher The publisher of the index\n * @return indexId Id of the index\n * @return approved Is the subscription approved?\n * @return units Units of the suscription\n * @return pendingDistribution Pending amount of tokens to be distributed for unapproved subscription\n */\n function getSubscriptionByID(\n ISuperfluidToken token,\n bytes32 agreementId)\n external\n view\n virtual\n returns(\n address publisher,\n uint32 indexId,\n bool approved,\n uint128 units,\n uint256 pendingDistribution\n );\n\n /**\n * @dev List subscriptions of an user\n * @param token Super token address\n * @param subscriber The subscriber's address\n * @return publishers Publishers of the subcriptions\n * @return indexIds Indexes of the subscriptions\n * @return unitsList Units of the subscriptions\n */\n function listSubscriptions(\n ISuperfluidToken token,\n address subscriber)\n external\n view\n virtual\n returns(\n address[] memory publishers,\n uint32[] memory indexIds,\n uint128[] memory unitsList);\n\n /**\n * @dev Delete the subscription of an user\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param subscriber The subscriber's address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * # App callbacks\n *\n * - if the subscriber called it\n * - AgreementTerminated callback to the publsiher:\n * - agreementId is for the subscription\n * - if the publisher called it\n * - AgreementTerminated callback to the subscriber:\n * - agreementId is for the subscription\n */\n function deleteSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n address subscriber,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev Claim pending distributions\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param subscriber The subscriber's address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * The subscription should not be approved yet\n *\n * # App callbacks\n *\n * - AgreementUpdated callback to the publisher:\n * - agreementId is for the subscription\n */\n function claim(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n address subscriber,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n \n /**\n * @dev Index distribution claimed event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The subscriber units updated\n * @param amount The pending amount claimed\n */\n event IndexDistributionClaimed(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n uint256 amount);\n \n /**\n * @dev Subscription distribution claimed event\n * @param token Super token address\n * @param subscriber The subscriber units updated\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param amount The pending amount claimed\n */\n event SubscriptionDistributionClaimed(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n uint256 amount);\n\n}\n",
951
+ "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 Instant Distribution Agreement interface\n * @author Superfluid\n *\n * @notice \n * - A publisher can create as many as indices as possibly identifiable with `indexId`.\n * - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision.\n * Despite knowing sha-3 collision is only theoretical.\n * - A publisher can create a subscription to an index for any subscriber.\n * - A subscription consists of:\n * - The index it subscribes to.\n * - Number of units subscribed.\n * - An index consists of:\n * - Current value as `uint128 indexValue`.\n * - Total units of the approved subscriptions as `uint128 totalUnitsApproved`.\n * - Total units of the non approved subscription as `uint128 totalUnitsPending`.\n * - A publisher can update an index with a new value that doesn't decrease.\n * - A publisher can update a subscription with any number of units.\n * - A publisher or a subscriber can delete a subscription and reset its units to zero.\n * - A subscriber must approve the index in order to receive distributions from the publisher\n * each time the index is updated.\n * - The amount distributed is $$\\Delta{index} * units$$\n * - Distributions to a non approved subscription stays in the publisher's deposit until:\n * - the subscriber approves the subscription (side effect),\n * - the publisher updates the subscription (side effect),\n * - the subscriber deletes the subscription even if it is never approved (side effect),\n * - or the subscriber can explicitly claim them.\n */\nabstract contract IInstantDistributionAgreementV1 is ISuperAgreement {\n\n /// @dev ISuperAgreement.agreementType implementation\n function agreementType() external override pure returns (bytes32) {\n return keccak256(\"org.superfluid-finance.agreements.InstantDistributionAgreement.v1\");\n }\n\n /**************************************************************************\n * Index operations\n *************************************************************************/\n\n /**\n * @dev Create a new index for the publisher\n * @param token Super token address\n * @param indexId Id of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * None\n */\n function createIndex(\n ISuperfluidToken token,\n uint32 indexId,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index created event\n * @param token Super token address\n * @param publisher Index creator and publisher\n * @param indexId The specified indexId of the newly created index\n * @param userData The user provided data\n */\n event IndexCreated(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n bytes userData);\n\n /**\n * @dev Query the data of a index\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @return exist Does the index exist\n * @return indexValue Value of the current index\n * @return totalUnitsApproved Total units approved for the index\n * @return totalUnitsPending Total units pending approval for the index\n */\n function getIndex(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId)\n external\n view\n virtual\n returns(\n bool exist,\n uint128 indexValue,\n uint128 totalUnitsApproved,\n uint128 totalUnitsPending);\n\n /**\n * @dev Calculate actual distribution amount\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param amount The amount of tokens desired to be distributed\n * @return actualAmount The amount to be distributed after ensuring no rounding errors\n * @return newIndexValue The index value given the desired amount of tokens to be distributed\n */\n function calculateDistribution(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n uint256 amount)\n external view\n virtual\n returns(\n uint256 actualAmount,\n uint128 newIndexValue);\n\n /**\n * @dev Update index value of an index\n * @param token Super token address\n * @param indexId Id of the index\n * @param indexValue Value of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * None\n */\n function updateIndex(\n ISuperfluidToken token,\n uint32 indexId,\n uint128 indexValue,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index updated event\n * @param token Super token address\n * @param publisher Index updater and publisher\n * @param indexId The specified indexId of the updated index\n * @param oldIndexValue The previous index value\n * @param newIndexValue The updated index value\n * @param totalUnitsPending The total units pending when the indexValue was updated\n * @param totalUnitsApproved The total units approved when the indexValue was updated\n * @param userData The user provided data\n */\n event IndexUpdated(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n uint128 oldIndexValue,\n uint128 newIndexValue,\n uint128 totalUnitsPending,\n uint128 totalUnitsApproved,\n bytes userData);\n\n /**\n * @dev Distribute tokens through the index\n * @param token Super token address\n * @param indexId Id of the index\n * @param amount The amount of tokens desired to be distributed\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:note \n * - This is a convenient version of updateIndex. It adds to the index\n * a delta that equals to `amount / totalUnits`\n * - The actual amount distributed could be obtained via\n * `calculateDistribution`. This is due to precision error with index\n * value and units data range\n *\n * @custom:callbacks \n * None\n */\n function distribute(\n ISuperfluidToken token,\n uint32 indexId,\n uint256 amount,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n\n\n /**************************************************************************\n * Subscription operations\n *************************************************************************/\n\n /**\n * @dev Approve the subscription of an index\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * - if subscription exist\n * - AgreementCreated callback to the publisher:\n * - agreementId is for the subscription\n * - if subscription does not exist\n * - AgreementUpdated callback to the publisher:\n * - agreementId is for the subscription\n */\n function approveSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index subscribed event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The approved subscriber\n * @param userData The user provided data\n */\n event IndexSubscribed(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n bytes userData);\n\n /**\n * @dev Subscription approved event\n * @param token Super token address\n * @param subscriber The approved subscriber\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param userData The user provided data\n */\n event SubscriptionApproved(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n bytes userData);\n\n /**\n * @notice Revoke the subscription of an index\n * @dev \"Unapproves\" the subscription and moves approved units to pending\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * - AgreementUpdated callback to the publisher:\n * - agreementId is for the subscription\n */\n function revokeSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n /**\n * @dev Index unsubscribed event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The unsubscribed subscriber\n * @param userData The user provided data\n */\n event IndexUnsubscribed(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n bytes userData);\n \n /**\n * @dev Subscription approved event\n * @param token Super token address\n * @param subscriber The approved subscriber\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param userData The user provided data\n */\n event SubscriptionRevoked(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n bytes userData);\n\n /**\n * @dev Update the nuber of units of a subscription\n * @param token Super token address\n * @param indexId Id of the index\n * @param subscriber The subscriber of the index\n * @param units Number of units of the subscription\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * - if subscription exist\n * - AgreementCreated callback to the subscriber:\n * - agreementId is for the subscription\n * - if subscription does not exist\n * - AgreementUpdated callback to the subscriber:\n * - agreementId is for the subscription\n */\n function updateSubscription(\n ISuperfluidToken token,\n uint32 indexId,\n address subscriber,\n uint128 units,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev Index units updated event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The subscriber units updated\n * @param units The new units amount\n * @param userData The user provided data\n */\n event IndexUnitsUpdated(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n uint128 units,\n bytes userData);\n \n /**\n * @dev Subscription units updated event\n * @param token Super token address\n * @param subscriber The subscriber units updated\n * @param indexId The specified indexId\n * @param publisher Index publisher\n * @param units The new units amount\n * @param userData The user provided data\n */\n event SubscriptionUnitsUpdated(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n uint128 units,\n bytes userData);\n\n /**\n * @dev Get data of a subscription\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param subscriber The subscriber of the index\n * @return exist Does the subscription exist?\n * @return approved Is the subscription approved?\n * @return units Units of the suscription\n * @return pendingDistribution Pending amount of tokens to be distributed for unapproved subscription\n */\n function getSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n address subscriber)\n external\n view\n virtual\n returns(\n bool exist,\n bool approved,\n uint128 units,\n uint256 pendingDistribution\n );\n\n /**\n * @notice Get data of a subscription by agreement ID\n * @dev indexId (agreementId) is the keccak256 hash of encodePacked(\"publisher\", publisher, indexId)\n * @param token Super token address\n * @param agreementId The agreement ID\n * @return publisher The publisher of the index\n * @return indexId Id of the index\n * @return approved Is the subscription approved?\n * @return units Units of the suscription\n * @return pendingDistribution Pending amount of tokens to be distributed for unapproved subscription\n */\n function getSubscriptionByID(\n ISuperfluidToken token,\n bytes32 agreementId)\n external\n view\n virtual\n returns(\n address publisher,\n uint32 indexId,\n bool approved,\n uint128 units,\n uint256 pendingDistribution\n );\n\n /**\n * @dev List subscriptions of an user\n * @param token Super token address\n * @param subscriber The subscriber's address\n * @return publishers Publishers of the subcriptions\n * @return indexIds Indexes of the subscriptions\n * @return unitsList Units of the subscriptions\n */\n function listSubscriptions(\n ISuperfluidToken token,\n address subscriber)\n external\n view\n virtual\n returns(\n address[] memory publishers,\n uint32[] memory indexIds,\n uint128[] memory unitsList);\n\n /**\n * @dev Delete the subscription of an user\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param subscriber The subscriber's address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:callbacks \n * - if the subscriber called it\n * - AgreementTerminated callback to the publsiher:\n * - agreementId is for the subscription\n * - if the publisher called it\n * - AgreementTerminated callback to the subscriber:\n * - agreementId is for the subscription\n */\n function deleteSubscription(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n address subscriber,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n\n /**\n * @dev Claim pending distributions\n * @param token Super token address\n * @param publisher The publisher of the index\n * @param indexId Id of the index\n * @param subscriber The subscriber's address\n * @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n *\n * @custom:note The subscription should not be approved yet\n *\n * @custom:callbacks \n * - AgreementUpdated callback to the publisher:\n * - agreementId is for the subscription\n */\n function claim(\n ISuperfluidToken token,\n address publisher,\n uint32 indexId,\n address subscriber,\n bytes calldata ctx)\n external\n virtual\n returns(bytes memory newCtx);\n \n /**\n * @dev Index distribution claimed event\n * @param token Super token address\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param subscriber The subscriber units updated\n * @param amount The pending amount claimed\n */\n event IndexDistributionClaimed(\n ISuperfluidToken indexed token,\n address indexed publisher,\n uint32 indexed indexId,\n address subscriber,\n uint256 amount);\n \n /**\n * @dev Subscription distribution claimed event\n * @param token Super token address\n * @param subscriber The subscriber units updated\n * @param publisher Index publisher\n * @param indexId The specified indexId\n * @param amount The pending amount claimed\n */\n event SubscriptionDistributionClaimed(\n ISuperfluidToken indexed token,\n address indexed subscriber,\n address publisher,\n uint32 indexId,\n uint256 amount);\n\n}\n",
952
952
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol",
953
953
  "ast": {
954
954
  "absolutePath": "project:/contracts/interfaces/agreements/IInstantDistributionAgreementV1.sol",
@@ -1037,11 +1037,11 @@
1037
1037
  "name": "ISuperAgreement",
1038
1038
  "nodeType": "IdentifierPath",
1039
1039
  "referencedDeclaration": 17271,
1040
- "src": "1835:15:40"
1040
+ "src": "1837:15:40"
1041
1041
  },
1042
1042
  "id": 16392,
1043
1043
  "nodeType": "InheritanceSpecifier",
1044
- "src": "1835:15:40"
1044
+ "src": "1837:15:40"
1045
1045
  }
1046
1046
  ],
1047
1047
  "canonicalName": "IInstantDistributionAgreementV1",
@@ -1050,8 +1050,8 @@
1050
1050
  "documentation": {
1051
1051
  "id": 16390,
1052
1052
  "nodeType": "StructuredDocumentation",
1053
- "src": "204:1577:40",
1054
- "text": " @title Instant Distribution Agreement interface\n @author Superfluid\n Notes:\n - A publisher can create as many as indices as possibly identifiable with `indexId`.\n - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision.\n Despite knowing sha-3 collision is only theoretical.\n - A publisher can create a subscription to an index for any subscriber.\n - A subscription consists of:\n - The index it subscribes to.\n - Number of units subscribed.\n - An index consists of:\n - Current value as `uint128 indexValue`.\n - Total units of the approved subscriptions as `uint128 totalUnitsApproved`.\n - Total units of the non approved subscription as `uint128 totalUnitsPending`.\n - A publisher can update an index with a new value that doesn't decrease.\n - A publisher can update a subscription with any number of units.\n - A publisher or a subscriber can delete a subscription and reset its units to zero.\n - A subscriber must approve the index in order to receive distributions from the publisher\n each time the index is updated.\n - The amount distributed is $$\\Delta{index} * units$$\n - Distributions to a non approved subscription stays in the publisher's deposit until:\n - the subscriber approves the subscription (side effect),\n - the publisher updates the subscription (side effect),\n - the subscriber deletes the subscription even if it is never approved (side effect),\n - or the subscriber can explicitly claim them."
1053
+ "src": "204:1579:40",
1054
+ "text": " @title Instant Distribution Agreement interface\n @author Superfluid\n @notice \n - A publisher can create as many as indices as possibly identifiable with `indexId`.\n - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision.\n Despite knowing sha-3 collision is only theoretical.\n - A publisher can create a subscription to an index for any subscriber.\n - A subscription consists of:\n - The index it subscribes to.\n - Number of units subscribed.\n - An index consists of:\n - Current value as `uint128 indexValue`.\n - Total units of the approved subscriptions as `uint128 totalUnitsApproved`.\n - Total units of the non approved subscription as `uint128 totalUnitsPending`.\n - A publisher can update an index with a new value that doesn't decrease.\n - A publisher can update a subscription with any number of units.\n - A publisher or a subscriber can delete a subscription and reset its units to zero.\n - A subscriber must approve the index in order to receive distributions from the publisher\n each time the index is updated.\n - The amount distributed is $$\\Delta{index} * units$$\n - Distributions to a non approved subscription stays in the publisher's deposit until:\n - the subscriber approves the subscription (side effect),\n - the publisher updates the subscription (side effect),\n - the subscriber deletes the subscription even if it is never approved (side effect),\n - or the subscriber can explicitly claim them."
1055
1055
  },
1056
1056
  "fullyImplemented": false,
1057
1057
  "id": 16771,
@@ -1060,7 +1060,7 @@
1060
1060
  17271
1061
1061
  ],
1062
1062
  "name": "IInstantDistributionAgreementV1",
1063
- "nameLocation": "1800:31:40",
1063
+ "nameLocation": "1802:31:40",
1064
1064
  "nodeType": "ContractDefinition",
1065
1065
  "nodes": [
1066
1066
  {
@@ -1070,7 +1070,7 @@
1070
1070
  "body": {
1071
1071
  "id": 16403,
1072
1072
  "nodeType": "Block",
1073
- "src": "1982:102:40",
1073
+ "src": "1984:102:40",
1074
1074
  "statements": [
1075
1075
  {
1076
1076
  "expression": {
@@ -1084,7 +1084,7 @@
1084
1084
  "kind": "string",
1085
1085
  "lValueRequested": false,
1086
1086
  "nodeType": "Literal",
1087
- "src": "2009:67:40",
1087
+ "src": "2011:67:40",
1088
1088
  "typeDescriptions": {
1089
1089
  "typeIdentifier": "t_stringliteral_8aedc3b5d4bf031e11a7e2940f7251c005698405d58e02e1c247fed3b1b3a674",
1090
1090
  "typeString": "literal_string \"org.superfluid-finance.agreements.InstantDistributionAgreement.v1\""
@@ -1104,7 +1104,7 @@
1104
1104
  "nodeType": "Identifier",
1105
1105
  "overloadedDeclarations": [],
1106
1106
  "referencedDeclaration": 4294967288,
1107
- "src": "1999:9:40",
1107
+ "src": "2001:9:40",
1108
1108
  "typeDescriptions": {
1109
1109
  "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
1110
1110
  "typeString": "function (bytes memory) pure returns (bytes32)"
@@ -1118,7 +1118,7 @@
1118
1118
  "lValueRequested": false,
1119
1119
  "names": [],
1120
1120
  "nodeType": "FunctionCall",
1121
- "src": "1999:78:40",
1121
+ "src": "2001:78:40",
1122
1122
  "tryCall": false,
1123
1123
  "typeDescriptions": {
1124
1124
  "typeIdentifier": "t_bytes32",
@@ -1128,14 +1128,14 @@
1128
1128
  "functionReturnParameters": 16398,
1129
1129
  "id": 16402,
1130
1130
  "nodeType": "Return",
1131
- "src": "1992:85:40"
1131
+ "src": "1994:85:40"
1132
1132
  }
1133
1133
  ]
1134
1134
  },
1135
1135
  "documentation": {
1136
1136
  "id": 16393,
1137
1137
  "nodeType": "StructuredDocumentation",
1138
- "src": "1858:53:40",
1138
+ "src": "1860:53:40",
1139
1139
  "text": "@dev ISuperAgreement.agreementType implementation"
1140
1140
  },
1141
1141
  "functionSelector": "7730599e",
@@ -1144,19 +1144,19 @@
1144
1144
  "kind": "function",
1145
1145
  "modifiers": [],
1146
1146
  "name": "agreementType",
1147
- "nameLocation": "1925:13:40",
1147
+ "nameLocation": "1927:13:40",
1148
1148
  "nodeType": "FunctionDefinition",
1149
1149
  "overrides": {
1150
1150
  "id": 16395,
1151
1151
  "nodeType": "OverrideSpecifier",
1152
1152
  "overrides": [],
1153
- "src": "1950:8:40"
1153
+ "src": "1952:8:40"
1154
1154
  },
1155
1155
  "parameters": {
1156
1156
  "id": 16394,
1157
1157
  "nodeType": "ParameterList",
1158
1158
  "parameters": [],
1159
- "src": "1938:2:40"
1159
+ "src": "1940:2:40"
1160
1160
  },
1161
1161
  "returnParameters": {
1162
1162
  "id": 16398,
@@ -1170,7 +1170,7 @@
1170
1170
  "nameLocation": "-1:-1:-1",
1171
1171
  "nodeType": "VariableDeclaration",
1172
1172
  "scope": 16404,
1173
- "src": "1973:7:40",
1173
+ "src": "1975:7:40",
1174
1174
  "stateVariable": false,
1175
1175
  "storageLocation": "default",
1176
1176
  "typeDescriptions": {
@@ -1181,7 +1181,7 @@
1181
1181
  "id": 16396,
1182
1182
  "name": "bytes32",
1183
1183
  "nodeType": "ElementaryTypeName",
1184
- "src": "1973:7:40",
1184
+ "src": "1975:7:40",
1185
1185
  "typeDescriptions": {
1186
1186
  "typeIdentifier": "t_bytes32",
1187
1187
  "typeString": "bytes32"
@@ -1190,10 +1190,10 @@
1190
1190
  "visibility": "internal"
1191
1191
  }
1192
1192
  ],
1193
- "src": "1972:9:40"
1193
+ "src": "1974:9:40"
1194
1194
  },
1195
1195
  "scope": 16771,
1196
- "src": "1916:168:40",
1196
+ "src": "1918:168:40",
1197
1197
  "stateMutability": "pure",
1198
1198
  "virtual": false,
1199
1199
  "visibility": "external"
@@ -1202,8 +1202,8 @@
1202
1202
  "documentation": {
1203
1203
  "id": 16405,
1204
1204
  "nodeType": "StructuredDocumentation",
1205
- "src": "2275:260:40",
1206
- "text": " @dev Create a new index for the publisher\n @param token Super token address\n @param indexId Id of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n None"
1205
+ "src": "2277:256:40",
1206
+ "text": " @dev Create a new index for the publisher\n @param token Super token address\n @param indexId Id of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n None"
1207
1207
  },
1208
1208
  "functionSelector": "d787840a",
1209
1209
  "id": 16417,
@@ -1211,7 +1211,7 @@
1211
1211
  "kind": "function",
1212
1212
  "modifiers": [],
1213
1213
  "name": "createIndex",
1214
- "nameLocation": "2549:11:40",
1214
+ "nameLocation": "2547:11:40",
1215
1215
  "nodeType": "FunctionDefinition",
1216
1216
  "parameters": {
1217
1217
  "id": 16413,
@@ -1222,10 +1222,10 @@
1222
1222
  "id": 16408,
1223
1223
  "mutability": "mutable",
1224
1224
  "name": "token",
1225
- "nameLocation": "2587:5:40",
1225
+ "nameLocation": "2585:5:40",
1226
1226
  "nodeType": "VariableDeclaration",
1227
1227
  "scope": 16417,
1228
- "src": "2570:22:40",
1228
+ "src": "2568:22:40",
1229
1229
  "stateVariable": false,
1230
1230
  "storageLocation": "default",
1231
1231
  "typeDescriptions": {
@@ -1240,10 +1240,10 @@
1240
1240
  "name": "ISuperfluidToken",
1241
1241
  "nodeType": "IdentifierPath",
1242
1242
  "referencedDeclaration": 18721,
1243
- "src": "2570:16:40"
1243
+ "src": "2568:16:40"
1244
1244
  },
1245
1245
  "referencedDeclaration": 18721,
1246
- "src": "2570:16:40",
1246
+ "src": "2568:16:40",
1247
1247
  "typeDescriptions": {
1248
1248
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1249
1249
  "typeString": "contract ISuperfluidToken"
@@ -1256,10 +1256,10 @@
1256
1256
  "id": 16410,
1257
1257
  "mutability": "mutable",
1258
1258
  "name": "indexId",
1259
- "nameLocation": "2609:7:40",
1259
+ "nameLocation": "2607:7:40",
1260
1260
  "nodeType": "VariableDeclaration",
1261
1261
  "scope": 16417,
1262
- "src": "2602:14:40",
1262
+ "src": "2600:14:40",
1263
1263
  "stateVariable": false,
1264
1264
  "storageLocation": "default",
1265
1265
  "typeDescriptions": {
@@ -1270,7 +1270,7 @@
1270
1270
  "id": 16409,
1271
1271
  "name": "uint32",
1272
1272
  "nodeType": "ElementaryTypeName",
1273
- "src": "2602:6:40",
1273
+ "src": "2600:6:40",
1274
1274
  "typeDescriptions": {
1275
1275
  "typeIdentifier": "t_uint32",
1276
1276
  "typeString": "uint32"
@@ -1283,10 +1283,10 @@
1283
1283
  "id": 16412,
1284
1284
  "mutability": "mutable",
1285
1285
  "name": "ctx",
1286
- "nameLocation": "2641:3:40",
1286
+ "nameLocation": "2639:3:40",
1287
1287
  "nodeType": "VariableDeclaration",
1288
1288
  "scope": 16417,
1289
- "src": "2626:18:40",
1289
+ "src": "2624:18:40",
1290
1290
  "stateVariable": false,
1291
1291
  "storageLocation": "calldata",
1292
1292
  "typeDescriptions": {
@@ -1297,7 +1297,7 @@
1297
1297
  "id": 16411,
1298
1298
  "name": "bytes",
1299
1299
  "nodeType": "ElementaryTypeName",
1300
- "src": "2626:5:40",
1300
+ "src": "2624:5:40",
1301
1301
  "typeDescriptions": {
1302
1302
  "typeIdentifier": "t_bytes_storage_ptr",
1303
1303
  "typeString": "bytes"
@@ -1306,7 +1306,7 @@
1306
1306
  "visibility": "internal"
1307
1307
  }
1308
1308
  ],
1309
- "src": "2560:85:40"
1309
+ "src": "2558:85:40"
1310
1310
  },
1311
1311
  "returnParameters": {
1312
1312
  "id": 16416,
@@ -1317,10 +1317,10 @@
1317
1317
  "id": 16415,
1318
1318
  "mutability": "mutable",
1319
1319
  "name": "newCtx",
1320
- "nameLocation": "2720:6:40",
1320
+ "nameLocation": "2718:6:40",
1321
1321
  "nodeType": "VariableDeclaration",
1322
1322
  "scope": 16417,
1323
- "src": "2707:19:40",
1323
+ "src": "2705:19:40",
1324
1324
  "stateVariable": false,
1325
1325
  "storageLocation": "memory",
1326
1326
  "typeDescriptions": {
@@ -1331,7 +1331,7 @@
1331
1331
  "id": 16414,
1332
1332
  "name": "bytes",
1333
1333
  "nodeType": "ElementaryTypeName",
1334
- "src": "2707:5:40",
1334
+ "src": "2705:5:40",
1335
1335
  "typeDescriptions": {
1336
1336
  "typeIdentifier": "t_bytes_storage_ptr",
1337
1337
  "typeString": "bytes"
@@ -1340,10 +1340,10 @@
1340
1340
  "visibility": "internal"
1341
1341
  }
1342
1342
  ],
1343
- "src": "2706:21:40"
1343
+ "src": "2704:21:40"
1344
1344
  },
1345
1345
  "scope": 16771,
1346
- "src": "2540:188:40",
1346
+ "src": "2538:188:40",
1347
1347
  "stateMutability": "nonpayable",
1348
1348
  "virtual": true,
1349
1349
  "visibility": "external"
@@ -1353,13 +1353,13 @@
1353
1353
  "documentation": {
1354
1354
  "id": 16418,
1355
1355
  "nodeType": "StructuredDocumentation",
1356
- "src": "2733:246:40",
1356
+ "src": "2731:246:40",
1357
1357
  "text": " @dev Index created event\n @param token Super token address\n @param publisher Index creator and publisher\n @param indexId The specified indexId of the newly created index\n @param userData The user provided data"
1358
1358
  },
1359
1359
  "eventSelector": "01ab8663165edfb7390d9e5f75d960a66dacf4f01fa9787e3a731c870d0da921",
1360
1360
  "id": 16429,
1361
1361
  "name": "IndexCreated",
1362
- "nameLocation": "2990:12:40",
1362
+ "nameLocation": "2988:12:40",
1363
1363
  "nodeType": "EventDefinition",
1364
1364
  "parameters": {
1365
1365
  "id": 16428,
@@ -1371,10 +1371,10 @@
1371
1371
  "indexed": true,
1372
1372
  "mutability": "mutable",
1373
1373
  "name": "token",
1374
- "nameLocation": "3037:5:40",
1374
+ "nameLocation": "3035:5:40",
1375
1375
  "nodeType": "VariableDeclaration",
1376
1376
  "scope": 16429,
1377
- "src": "3012:30:40",
1377
+ "src": "3010:30:40",
1378
1378
  "stateVariable": false,
1379
1379
  "storageLocation": "default",
1380
1380
  "typeDescriptions": {
@@ -1389,10 +1389,10 @@
1389
1389
  "name": "ISuperfluidToken",
1390
1390
  "nodeType": "IdentifierPath",
1391
1391
  "referencedDeclaration": 18721,
1392
- "src": "3012:16:40"
1392
+ "src": "3010:16:40"
1393
1393
  },
1394
1394
  "referencedDeclaration": 18721,
1395
- "src": "3012:16:40",
1395
+ "src": "3010:16:40",
1396
1396
  "typeDescriptions": {
1397
1397
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1398
1398
  "typeString": "contract ISuperfluidToken"
@@ -1406,10 +1406,10 @@
1406
1406
  "indexed": true,
1407
1407
  "mutability": "mutable",
1408
1408
  "name": "publisher",
1409
- "nameLocation": "3068:9:40",
1409
+ "nameLocation": "3066:9:40",
1410
1410
  "nodeType": "VariableDeclaration",
1411
1411
  "scope": 16429,
1412
- "src": "3052:25:40",
1412
+ "src": "3050:25:40",
1413
1413
  "stateVariable": false,
1414
1414
  "storageLocation": "default",
1415
1415
  "typeDescriptions": {
@@ -1420,7 +1420,7 @@
1420
1420
  "id": 16422,
1421
1421
  "name": "address",
1422
1422
  "nodeType": "ElementaryTypeName",
1423
- "src": "3052:7:40",
1423
+ "src": "3050:7:40",
1424
1424
  "stateMutability": "nonpayable",
1425
1425
  "typeDescriptions": {
1426
1426
  "typeIdentifier": "t_address",
@@ -1435,10 +1435,10 @@
1435
1435
  "indexed": true,
1436
1436
  "mutability": "mutable",
1437
1437
  "name": "indexId",
1438
- "nameLocation": "3102:7:40",
1438
+ "nameLocation": "3100:7:40",
1439
1439
  "nodeType": "VariableDeclaration",
1440
1440
  "scope": 16429,
1441
- "src": "3087:22:40",
1441
+ "src": "3085:22:40",
1442
1442
  "stateVariable": false,
1443
1443
  "storageLocation": "default",
1444
1444
  "typeDescriptions": {
@@ -1449,7 +1449,7 @@
1449
1449
  "id": 16424,
1450
1450
  "name": "uint32",
1451
1451
  "nodeType": "ElementaryTypeName",
1452
- "src": "3087:6:40",
1452
+ "src": "3085:6:40",
1453
1453
  "typeDescriptions": {
1454
1454
  "typeIdentifier": "t_uint32",
1455
1455
  "typeString": "uint32"
@@ -1463,10 +1463,10 @@
1463
1463
  "indexed": false,
1464
1464
  "mutability": "mutable",
1465
1465
  "name": "userData",
1466
- "nameLocation": "3125:8:40",
1466
+ "nameLocation": "3123:8:40",
1467
1467
  "nodeType": "VariableDeclaration",
1468
1468
  "scope": 16429,
1469
- "src": "3119:14:40",
1469
+ "src": "3117:14:40",
1470
1470
  "stateVariable": false,
1471
1471
  "storageLocation": "default",
1472
1472
  "typeDescriptions": {
@@ -1477,7 +1477,7 @@
1477
1477
  "id": 16426,
1478
1478
  "name": "bytes",
1479
1479
  "nodeType": "ElementaryTypeName",
1480
- "src": "3119:5:40",
1480
+ "src": "3117:5:40",
1481
1481
  "typeDescriptions": {
1482
1482
  "typeIdentifier": "t_bytes_storage_ptr",
1483
1483
  "typeString": "bytes"
@@ -1486,15 +1486,15 @@
1486
1486
  "visibility": "internal"
1487
1487
  }
1488
1488
  ],
1489
- "src": "3002:132:40"
1489
+ "src": "3000:132:40"
1490
1490
  },
1491
- "src": "2984:151:40"
1491
+ "src": "2982:151:40"
1492
1492
  },
1493
1493
  {
1494
1494
  "documentation": {
1495
1495
  "id": 16430,
1496
1496
  "nodeType": "StructuredDocumentation",
1497
- "src": "3141:418:40",
1497
+ "src": "3139:418:40",
1498
1498
  "text": " @dev Query the data of a index\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @return exist Does the index exist\n @return indexValue Value of the current index\n @return totalUnitsApproved Total units approved for the index\n @return totalUnitsPending Total units pending approval for the index"
1499
1499
  },
1500
1500
  "functionSelector": "23fc23f3",
@@ -1503,7 +1503,7 @@
1503
1503
  "kind": "function",
1504
1504
  "modifiers": [],
1505
1505
  "name": "getIndex",
1506
- "nameLocation": "3573:8:40",
1506
+ "nameLocation": "3571:8:40",
1507
1507
  "nodeType": "FunctionDefinition",
1508
1508
  "parameters": {
1509
1509
  "id": 16438,
@@ -1514,10 +1514,10 @@
1514
1514
  "id": 16433,
1515
1515
  "mutability": "mutable",
1516
1516
  "name": "token",
1517
- "nameLocation": "3608:5:40",
1517
+ "nameLocation": "3606:5:40",
1518
1518
  "nodeType": "VariableDeclaration",
1519
1519
  "scope": 16448,
1520
- "src": "3591:22:40",
1520
+ "src": "3589:22:40",
1521
1521
  "stateVariable": false,
1522
1522
  "storageLocation": "default",
1523
1523
  "typeDescriptions": {
@@ -1532,10 +1532,10 @@
1532
1532
  "name": "ISuperfluidToken",
1533
1533
  "nodeType": "IdentifierPath",
1534
1534
  "referencedDeclaration": 18721,
1535
- "src": "3591:16:40"
1535
+ "src": "3589:16:40"
1536
1536
  },
1537
1537
  "referencedDeclaration": 18721,
1538
- "src": "3591:16:40",
1538
+ "src": "3589:16:40",
1539
1539
  "typeDescriptions": {
1540
1540
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1541
1541
  "typeString": "contract ISuperfluidToken"
@@ -1548,10 +1548,10 @@
1548
1548
  "id": 16435,
1549
1549
  "mutability": "mutable",
1550
1550
  "name": "publisher",
1551
- "nameLocation": "3631:9:40",
1551
+ "nameLocation": "3629:9:40",
1552
1552
  "nodeType": "VariableDeclaration",
1553
1553
  "scope": 16448,
1554
- "src": "3623:17:40",
1554
+ "src": "3621:17:40",
1555
1555
  "stateVariable": false,
1556
1556
  "storageLocation": "default",
1557
1557
  "typeDescriptions": {
@@ -1562,7 +1562,7 @@
1562
1562
  "id": 16434,
1563
1563
  "name": "address",
1564
1564
  "nodeType": "ElementaryTypeName",
1565
- "src": "3623:7:40",
1565
+ "src": "3621:7:40",
1566
1566
  "stateMutability": "nonpayable",
1567
1567
  "typeDescriptions": {
1568
1568
  "typeIdentifier": "t_address",
@@ -1576,10 +1576,10 @@
1576
1576
  "id": 16437,
1577
1577
  "mutability": "mutable",
1578
1578
  "name": "indexId",
1579
- "nameLocation": "3657:7:40",
1579
+ "nameLocation": "3655:7:40",
1580
1580
  "nodeType": "VariableDeclaration",
1581
1581
  "scope": 16448,
1582
- "src": "3650:14:40",
1582
+ "src": "3648:14:40",
1583
1583
  "stateVariable": false,
1584
1584
  "storageLocation": "default",
1585
1585
  "typeDescriptions": {
@@ -1590,7 +1590,7 @@
1590
1590
  "id": 16436,
1591
1591
  "name": "uint32",
1592
1592
  "nodeType": "ElementaryTypeName",
1593
- "src": "3650:6:40",
1593
+ "src": "3648:6:40",
1594
1594
  "typeDescriptions": {
1595
1595
  "typeIdentifier": "t_uint32",
1596
1596
  "typeString": "uint32"
@@ -1599,7 +1599,7 @@
1599
1599
  "visibility": "internal"
1600
1600
  }
1601
1601
  ],
1602
- "src": "3581:84:40"
1602
+ "src": "3579:84:40"
1603
1603
  },
1604
1604
  "returnParameters": {
1605
1605
  "id": 16447,
@@ -1610,10 +1610,10 @@
1610
1610
  "id": 16440,
1611
1611
  "mutability": "mutable",
1612
1612
  "name": "exist",
1613
- "nameLocation": "3766:5:40",
1613
+ "nameLocation": "3764:5:40",
1614
1614
  "nodeType": "VariableDeclaration",
1615
1615
  "scope": 16448,
1616
- "src": "3761:10:40",
1616
+ "src": "3759:10:40",
1617
1617
  "stateVariable": false,
1618
1618
  "storageLocation": "default",
1619
1619
  "typeDescriptions": {
@@ -1624,7 +1624,7 @@
1624
1624
  "id": 16439,
1625
1625
  "name": "bool",
1626
1626
  "nodeType": "ElementaryTypeName",
1627
- "src": "3761:4:40",
1627
+ "src": "3759:4:40",
1628
1628
  "typeDescriptions": {
1629
1629
  "typeIdentifier": "t_bool",
1630
1630
  "typeString": "bool"
@@ -1637,10 +1637,10 @@
1637
1637
  "id": 16442,
1638
1638
  "mutability": "mutable",
1639
1639
  "name": "indexValue",
1640
- "nameLocation": "3797:10:40",
1640
+ "nameLocation": "3795:10:40",
1641
1641
  "nodeType": "VariableDeclaration",
1642
1642
  "scope": 16448,
1643
- "src": "3789:18:40",
1643
+ "src": "3787:18:40",
1644
1644
  "stateVariable": false,
1645
1645
  "storageLocation": "default",
1646
1646
  "typeDescriptions": {
@@ -1651,7 +1651,7 @@
1651
1651
  "id": 16441,
1652
1652
  "name": "uint128",
1653
1653
  "nodeType": "ElementaryTypeName",
1654
- "src": "3789:7:40",
1654
+ "src": "3787:7:40",
1655
1655
  "typeDescriptions": {
1656
1656
  "typeIdentifier": "t_uint128",
1657
1657
  "typeString": "uint128"
@@ -1664,10 +1664,10 @@
1664
1664
  "id": 16444,
1665
1665
  "mutability": "mutable",
1666
1666
  "name": "totalUnitsApproved",
1667
- "nameLocation": "3833:18:40",
1667
+ "nameLocation": "3831:18:40",
1668
1668
  "nodeType": "VariableDeclaration",
1669
1669
  "scope": 16448,
1670
- "src": "3825:26:40",
1670
+ "src": "3823:26:40",
1671
1671
  "stateVariable": false,
1672
1672
  "storageLocation": "default",
1673
1673
  "typeDescriptions": {
@@ -1678,7 +1678,7 @@
1678
1678
  "id": 16443,
1679
1679
  "name": "uint128",
1680
1680
  "nodeType": "ElementaryTypeName",
1681
- "src": "3825:7:40",
1681
+ "src": "3823:7:40",
1682
1682
  "typeDescriptions": {
1683
1683
  "typeIdentifier": "t_uint128",
1684
1684
  "typeString": "uint128"
@@ -1691,10 +1691,10 @@
1691
1691
  "id": 16446,
1692
1692
  "mutability": "mutable",
1693
1693
  "name": "totalUnitsPending",
1694
- "nameLocation": "3877:17:40",
1694
+ "nameLocation": "3875:17:40",
1695
1695
  "nodeType": "VariableDeclaration",
1696
1696
  "scope": 16448,
1697
- "src": "3869:25:40",
1697
+ "src": "3867:25:40",
1698
1698
  "stateVariable": false,
1699
1699
  "storageLocation": "default",
1700
1700
  "typeDescriptions": {
@@ -1705,7 +1705,7 @@
1705
1705
  "id": 16445,
1706
1706
  "name": "uint128",
1707
1707
  "nodeType": "ElementaryTypeName",
1708
- "src": "3869:7:40",
1708
+ "src": "3867:7:40",
1709
1709
  "typeDescriptions": {
1710
1710
  "typeIdentifier": "t_uint128",
1711
1711
  "typeString": "uint128"
@@ -1714,10 +1714,10 @@
1714
1714
  "visibility": "internal"
1715
1715
  }
1716
1716
  ],
1717
- "src": "3743:152:40"
1717
+ "src": "3741:152:40"
1718
1718
  },
1719
1719
  "scope": 16771,
1720
- "src": "3564:332:40",
1720
+ "src": "3562:332:40",
1721
1721
  "stateMutability": "view",
1722
1722
  "virtual": true,
1723
1723
  "visibility": "external"
@@ -1726,7 +1726,7 @@
1726
1726
  "documentation": {
1727
1727
  "id": 16449,
1728
1728
  "nodeType": "StructuredDocumentation",
1729
- "src": "3902:446:40",
1729
+ "src": "3900:446:40",
1730
1730
  "text": " @dev Calculate actual distribution amount\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param amount The amount of tokens desired to be distributed\n @return actualAmount The amount to be distributed after ensuring no rounding errors\n @return newIndexValue The index value given the desired amount of tokens to be distributed"
1731
1731
  },
1732
1732
  "functionSelector": "899baaec",
@@ -1735,7 +1735,7 @@
1735
1735
  "kind": "function",
1736
1736
  "modifiers": [],
1737
1737
  "name": "calculateDistribution",
1738
- "nameLocation": "4362:21:40",
1738
+ "nameLocation": "4360:21:40",
1739
1739
  "nodeType": "FunctionDefinition",
1740
1740
  "parameters": {
1741
1741
  "id": 16459,
@@ -1746,10 +1746,10 @@
1746
1746
  "id": 16452,
1747
1747
  "mutability": "mutable",
1748
1748
  "name": "token",
1749
- "nameLocation": "4409:5:40",
1749
+ "nameLocation": "4407:5:40",
1750
1750
  "nodeType": "VariableDeclaration",
1751
1751
  "scope": 16465,
1752
- "src": "4392:22:40",
1752
+ "src": "4390:22:40",
1753
1753
  "stateVariable": false,
1754
1754
  "storageLocation": "default",
1755
1755
  "typeDescriptions": {
@@ -1764,10 +1764,10 @@
1764
1764
  "name": "ISuperfluidToken",
1765
1765
  "nodeType": "IdentifierPath",
1766
1766
  "referencedDeclaration": 18721,
1767
- "src": "4392:16:40"
1767
+ "src": "4390:16:40"
1768
1768
  },
1769
1769
  "referencedDeclaration": 18721,
1770
- "src": "4392:16:40",
1770
+ "src": "4390:16:40",
1771
1771
  "typeDescriptions": {
1772
1772
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1773
1773
  "typeString": "contract ISuperfluidToken"
@@ -1780,10 +1780,10 @@
1780
1780
  "id": 16454,
1781
1781
  "mutability": "mutable",
1782
1782
  "name": "publisher",
1783
- "nameLocation": "4431:9:40",
1783
+ "nameLocation": "4429:9:40",
1784
1784
  "nodeType": "VariableDeclaration",
1785
1785
  "scope": 16465,
1786
- "src": "4423:17:40",
1786
+ "src": "4421:17:40",
1787
1787
  "stateVariable": false,
1788
1788
  "storageLocation": "default",
1789
1789
  "typeDescriptions": {
@@ -1794,7 +1794,7 @@
1794
1794
  "id": 16453,
1795
1795
  "name": "address",
1796
1796
  "nodeType": "ElementaryTypeName",
1797
- "src": "4423:7:40",
1797
+ "src": "4421:7:40",
1798
1798
  "stateMutability": "nonpayable",
1799
1799
  "typeDescriptions": {
1800
1800
  "typeIdentifier": "t_address",
@@ -1808,10 +1808,10 @@
1808
1808
  "id": 16456,
1809
1809
  "mutability": "mutable",
1810
1810
  "name": "indexId",
1811
- "nameLocation": "4456:7:40",
1811
+ "nameLocation": "4454:7:40",
1812
1812
  "nodeType": "VariableDeclaration",
1813
1813
  "scope": 16465,
1814
- "src": "4449:14:40",
1814
+ "src": "4447:14:40",
1815
1815
  "stateVariable": false,
1816
1816
  "storageLocation": "default",
1817
1817
  "typeDescriptions": {
@@ -1822,7 +1822,7 @@
1822
1822
  "id": 16455,
1823
1823
  "name": "uint32",
1824
1824
  "nodeType": "ElementaryTypeName",
1825
- "src": "4449:6:40",
1825
+ "src": "4447:6:40",
1826
1826
  "typeDescriptions": {
1827
1827
  "typeIdentifier": "t_uint32",
1828
1828
  "typeString": "uint32"
@@ -1835,10 +1835,10 @@
1835
1835
  "id": 16458,
1836
1836
  "mutability": "mutable",
1837
1837
  "name": "amount",
1838
- "nameLocation": "4480:6:40",
1838
+ "nameLocation": "4478:6:40",
1839
1839
  "nodeType": "VariableDeclaration",
1840
1840
  "scope": 16465,
1841
- "src": "4472:14:40",
1841
+ "src": "4470:14:40",
1842
1842
  "stateVariable": false,
1843
1843
  "storageLocation": "default",
1844
1844
  "typeDescriptions": {
@@ -1849,7 +1849,7 @@
1849
1849
  "id": 16457,
1850
1850
  "name": "uint256",
1851
1851
  "nodeType": "ElementaryTypeName",
1852
- "src": "4472:7:40",
1852
+ "src": "4470:7:40",
1853
1853
  "typeDescriptions": {
1854
1854
  "typeIdentifier": "t_uint256",
1855
1855
  "typeString": "uint256"
@@ -1858,7 +1858,7 @@
1858
1858
  "visibility": "internal"
1859
1859
  }
1860
1860
  ],
1861
- "src": "4383:104:40"
1861
+ "src": "4381:104:40"
1862
1862
  },
1863
1863
  "returnParameters": {
1864
1864
  "id": 16464,
@@ -1869,10 +1869,10 @@
1869
1869
  "id": 16461,
1870
1870
  "mutability": "mutable",
1871
1871
  "name": "actualAmount",
1872
- "nameLocation": "4575:12:40",
1872
+ "nameLocation": "4573:12:40",
1873
1873
  "nodeType": "VariableDeclaration",
1874
1874
  "scope": 16465,
1875
- "src": "4567:20:40",
1875
+ "src": "4565:20:40",
1876
1876
  "stateVariable": false,
1877
1877
  "storageLocation": "default",
1878
1878
  "typeDescriptions": {
@@ -1883,7 +1883,7 @@
1883
1883
  "id": 16460,
1884
1884
  "name": "uint256",
1885
1885
  "nodeType": "ElementaryTypeName",
1886
- "src": "4567:7:40",
1886
+ "src": "4565:7:40",
1887
1887
  "typeDescriptions": {
1888
1888
  "typeIdentifier": "t_uint256",
1889
1889
  "typeString": "uint256"
@@ -1896,10 +1896,10 @@
1896
1896
  "id": 16463,
1897
1897
  "mutability": "mutable",
1898
1898
  "name": "newIndexValue",
1899
- "nameLocation": "4612:13:40",
1899
+ "nameLocation": "4610:13:40",
1900
1900
  "nodeType": "VariableDeclaration",
1901
1901
  "scope": 16465,
1902
- "src": "4604:21:40",
1902
+ "src": "4602:21:40",
1903
1903
  "stateVariable": false,
1904
1904
  "storageLocation": "default",
1905
1905
  "typeDescriptions": {
@@ -1910,7 +1910,7 @@
1910
1910
  "id": 16462,
1911
1911
  "name": "uint128",
1912
1912
  "nodeType": "ElementaryTypeName",
1913
- "src": "4604:7:40",
1913
+ "src": "4602:7:40",
1914
1914
  "typeDescriptions": {
1915
1915
  "typeIdentifier": "t_uint128",
1916
1916
  "typeString": "uint128"
@@ -1919,10 +1919,10 @@
1919
1919
  "visibility": "internal"
1920
1920
  }
1921
1921
  ],
1922
- "src": "4550:76:40"
1922
+ "src": "4548:76:40"
1923
1923
  },
1924
1924
  "scope": 16771,
1925
- "src": "4353:274:40",
1925
+ "src": "4351:274:40",
1926
1926
  "stateMutability": "view",
1927
1927
  "virtual": true,
1928
1928
  "visibility": "external"
@@ -1931,8 +1931,8 @@
1931
1931
  "documentation": {
1932
1932
  "id": 16466,
1933
1933
  "nodeType": "StructuredDocumentation",
1934
- "src": "4633:298:40",
1935
- "text": " @dev Update index value of an index\n @param token Super token address\n @param indexId Id of the index\n @param indexValue Value of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n None"
1934
+ "src": "4631:294:40",
1935
+ "text": " @dev Update index value of an index\n @param token Super token address\n @param indexId Id of the index\n @param indexValue Value of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n None"
1936
1936
  },
1937
1937
  "functionSelector": "7fbc7639",
1938
1938
  "id": 16480,
@@ -1940,7 +1940,7 @@
1940
1940
  "kind": "function",
1941
1941
  "modifiers": [],
1942
1942
  "name": "updateIndex",
1943
- "nameLocation": "4945:11:40",
1943
+ "nameLocation": "4939:11:40",
1944
1944
  "nodeType": "FunctionDefinition",
1945
1945
  "parameters": {
1946
1946
  "id": 16476,
@@ -1951,10 +1951,10 @@
1951
1951
  "id": 16469,
1952
1952
  "mutability": "mutable",
1953
1953
  "name": "token",
1954
- "nameLocation": "4983:5:40",
1954
+ "nameLocation": "4977:5:40",
1955
1955
  "nodeType": "VariableDeclaration",
1956
1956
  "scope": 16480,
1957
- "src": "4966:22:40",
1957
+ "src": "4960:22:40",
1958
1958
  "stateVariable": false,
1959
1959
  "storageLocation": "default",
1960
1960
  "typeDescriptions": {
@@ -1969,10 +1969,10 @@
1969
1969
  "name": "ISuperfluidToken",
1970
1970
  "nodeType": "IdentifierPath",
1971
1971
  "referencedDeclaration": 18721,
1972
- "src": "4966:16:40"
1972
+ "src": "4960:16:40"
1973
1973
  },
1974
1974
  "referencedDeclaration": 18721,
1975
- "src": "4966:16:40",
1975
+ "src": "4960:16:40",
1976
1976
  "typeDescriptions": {
1977
1977
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
1978
1978
  "typeString": "contract ISuperfluidToken"
@@ -1985,10 +1985,10 @@
1985
1985
  "id": 16471,
1986
1986
  "mutability": "mutable",
1987
1987
  "name": "indexId",
1988
- "nameLocation": "5005:7:40",
1988
+ "nameLocation": "4999:7:40",
1989
1989
  "nodeType": "VariableDeclaration",
1990
1990
  "scope": 16480,
1991
- "src": "4998:14:40",
1991
+ "src": "4992:14:40",
1992
1992
  "stateVariable": false,
1993
1993
  "storageLocation": "default",
1994
1994
  "typeDescriptions": {
@@ -1999,7 +1999,7 @@
1999
1999
  "id": 16470,
2000
2000
  "name": "uint32",
2001
2001
  "nodeType": "ElementaryTypeName",
2002
- "src": "4998:6:40",
2002
+ "src": "4992:6:40",
2003
2003
  "typeDescriptions": {
2004
2004
  "typeIdentifier": "t_uint32",
2005
2005
  "typeString": "uint32"
@@ -2012,10 +2012,10 @@
2012
2012
  "id": 16473,
2013
2013
  "mutability": "mutable",
2014
2014
  "name": "indexValue",
2015
- "nameLocation": "5030:10:40",
2015
+ "nameLocation": "5024:10:40",
2016
2016
  "nodeType": "VariableDeclaration",
2017
2017
  "scope": 16480,
2018
- "src": "5022:18:40",
2018
+ "src": "5016:18:40",
2019
2019
  "stateVariable": false,
2020
2020
  "storageLocation": "default",
2021
2021
  "typeDescriptions": {
@@ -2026,7 +2026,7 @@
2026
2026
  "id": 16472,
2027
2027
  "name": "uint128",
2028
2028
  "nodeType": "ElementaryTypeName",
2029
- "src": "5022:7:40",
2029
+ "src": "5016:7:40",
2030
2030
  "typeDescriptions": {
2031
2031
  "typeIdentifier": "t_uint128",
2032
2032
  "typeString": "uint128"
@@ -2039,10 +2039,10 @@
2039
2039
  "id": 16475,
2040
2040
  "mutability": "mutable",
2041
2041
  "name": "ctx",
2042
- "nameLocation": "5065:3:40",
2042
+ "nameLocation": "5059:3:40",
2043
2043
  "nodeType": "VariableDeclaration",
2044
2044
  "scope": 16480,
2045
- "src": "5050:18:40",
2045
+ "src": "5044:18:40",
2046
2046
  "stateVariable": false,
2047
2047
  "storageLocation": "calldata",
2048
2048
  "typeDescriptions": {
@@ -2053,7 +2053,7 @@
2053
2053
  "id": 16474,
2054
2054
  "name": "bytes",
2055
2055
  "nodeType": "ElementaryTypeName",
2056
- "src": "5050:5:40",
2056
+ "src": "5044:5:40",
2057
2057
  "typeDescriptions": {
2058
2058
  "typeIdentifier": "t_bytes_storage_ptr",
2059
2059
  "typeString": "bytes"
@@ -2062,7 +2062,7 @@
2062
2062
  "visibility": "internal"
2063
2063
  }
2064
2064
  ],
2065
- "src": "4956:113:40"
2065
+ "src": "4950:113:40"
2066
2066
  },
2067
2067
  "returnParameters": {
2068
2068
  "id": 16479,
@@ -2073,10 +2073,10 @@
2073
2073
  "id": 16478,
2074
2074
  "mutability": "mutable",
2075
2075
  "name": "newCtx",
2076
- "nameLocation": "5144:6:40",
2076
+ "nameLocation": "5138:6:40",
2077
2077
  "nodeType": "VariableDeclaration",
2078
2078
  "scope": 16480,
2079
- "src": "5131:19:40",
2079
+ "src": "5125:19:40",
2080
2080
  "stateVariable": false,
2081
2081
  "storageLocation": "memory",
2082
2082
  "typeDescriptions": {
@@ -2087,7 +2087,7 @@
2087
2087
  "id": 16477,
2088
2088
  "name": "bytes",
2089
2089
  "nodeType": "ElementaryTypeName",
2090
- "src": "5131:5:40",
2090
+ "src": "5125:5:40",
2091
2091
  "typeDescriptions": {
2092
2092
  "typeIdentifier": "t_bytes_storage_ptr",
2093
2093
  "typeString": "bytes"
@@ -2096,10 +2096,10 @@
2096
2096
  "visibility": "internal"
2097
2097
  }
2098
2098
  ],
2099
- "src": "5130:21:40"
2099
+ "src": "5124:21:40"
2100
2100
  },
2101
2101
  "scope": 16771,
2102
- "src": "4936:216:40",
2102
+ "src": "4930:216:40",
2103
2103
  "stateMutability": "nonpayable",
2104
2104
  "virtual": true,
2105
2105
  "visibility": "external"
@@ -2109,13 +2109,13 @@
2109
2109
  "documentation": {
2110
2110
  "id": 16481,
2111
2111
  "nodeType": "StructuredDocumentation",
2112
- "src": "5157:539:40",
2112
+ "src": "5151:539:40",
2113
2113
  "text": " @dev Index updated event\n @param token Super token address\n @param publisher Index updater and publisher\n @param indexId The specified indexId of the updated index\n @param oldIndexValue The previous index value\n @param newIndexValue The updated index value\n @param totalUnitsPending The total units pending when the indexValue was updated\n @param totalUnitsApproved The total units approved when the indexValue was updated\n @param userData The user provided data"
2114
2114
  },
2115
2115
  "eventSelector": "81e37f3d9f16cbf29a62d6a1c21d79b23ef29b54124ec44af43a50fffb9304f3",
2116
2116
  "id": 16500,
2117
2117
  "name": "IndexUpdated",
2118
- "nameLocation": "5707:12:40",
2118
+ "nameLocation": "5701:12:40",
2119
2119
  "nodeType": "EventDefinition",
2120
2120
  "parameters": {
2121
2121
  "id": 16499,
@@ -2127,10 +2127,10 @@
2127
2127
  "indexed": true,
2128
2128
  "mutability": "mutable",
2129
2129
  "name": "token",
2130
- "nameLocation": "5754:5:40",
2130
+ "nameLocation": "5748:5:40",
2131
2131
  "nodeType": "VariableDeclaration",
2132
2132
  "scope": 16500,
2133
- "src": "5729:30:40",
2133
+ "src": "5723:30:40",
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": "5729:16:40"
2148
+ "src": "5723:16:40"
2149
2149
  },
2150
2150
  "referencedDeclaration": 18721,
2151
- "src": "5729:16:40",
2151
+ "src": "5723:16:40",
2152
2152
  "typeDescriptions": {
2153
2153
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2154
2154
  "typeString": "contract ISuperfluidToken"
@@ -2162,10 +2162,10 @@
2162
2162
  "indexed": true,
2163
2163
  "mutability": "mutable",
2164
2164
  "name": "publisher",
2165
- "nameLocation": "5785:9:40",
2165
+ "nameLocation": "5779:9:40",
2166
2166
  "nodeType": "VariableDeclaration",
2167
2167
  "scope": 16500,
2168
- "src": "5769:25:40",
2168
+ "src": "5763:25:40",
2169
2169
  "stateVariable": false,
2170
2170
  "storageLocation": "default",
2171
2171
  "typeDescriptions": {
@@ -2176,7 +2176,7 @@
2176
2176
  "id": 16485,
2177
2177
  "name": "address",
2178
2178
  "nodeType": "ElementaryTypeName",
2179
- "src": "5769:7:40",
2179
+ "src": "5763:7:40",
2180
2180
  "stateMutability": "nonpayable",
2181
2181
  "typeDescriptions": {
2182
2182
  "typeIdentifier": "t_address",
@@ -2191,10 +2191,10 @@
2191
2191
  "indexed": true,
2192
2192
  "mutability": "mutable",
2193
2193
  "name": "indexId",
2194
- "nameLocation": "5819:7:40",
2194
+ "nameLocation": "5813:7:40",
2195
2195
  "nodeType": "VariableDeclaration",
2196
2196
  "scope": 16500,
2197
- "src": "5804:22:40",
2197
+ "src": "5798:22:40",
2198
2198
  "stateVariable": false,
2199
2199
  "storageLocation": "default",
2200
2200
  "typeDescriptions": {
@@ -2205,7 +2205,7 @@
2205
2205
  "id": 16487,
2206
2206
  "name": "uint32",
2207
2207
  "nodeType": "ElementaryTypeName",
2208
- "src": "5804:6:40",
2208
+ "src": "5798:6:40",
2209
2209
  "typeDescriptions": {
2210
2210
  "typeIdentifier": "t_uint32",
2211
2211
  "typeString": "uint32"
@@ -2219,10 +2219,10 @@
2219
2219
  "indexed": false,
2220
2220
  "mutability": "mutable",
2221
2221
  "name": "oldIndexValue",
2222
- "nameLocation": "5844:13:40",
2222
+ "nameLocation": "5838:13:40",
2223
2223
  "nodeType": "VariableDeclaration",
2224
2224
  "scope": 16500,
2225
- "src": "5836:21:40",
2225
+ "src": "5830:21:40",
2226
2226
  "stateVariable": false,
2227
2227
  "storageLocation": "default",
2228
2228
  "typeDescriptions": {
@@ -2233,7 +2233,7 @@
2233
2233
  "id": 16489,
2234
2234
  "name": "uint128",
2235
2235
  "nodeType": "ElementaryTypeName",
2236
- "src": "5836:7:40",
2236
+ "src": "5830:7:40",
2237
2237
  "typeDescriptions": {
2238
2238
  "typeIdentifier": "t_uint128",
2239
2239
  "typeString": "uint128"
@@ -2247,10 +2247,10 @@
2247
2247
  "indexed": false,
2248
2248
  "mutability": "mutable",
2249
2249
  "name": "newIndexValue",
2250
- "nameLocation": "5875:13:40",
2250
+ "nameLocation": "5869:13:40",
2251
2251
  "nodeType": "VariableDeclaration",
2252
2252
  "scope": 16500,
2253
- "src": "5867:21:40",
2253
+ "src": "5861:21:40",
2254
2254
  "stateVariable": false,
2255
2255
  "storageLocation": "default",
2256
2256
  "typeDescriptions": {
@@ -2261,7 +2261,7 @@
2261
2261
  "id": 16491,
2262
2262
  "name": "uint128",
2263
2263
  "nodeType": "ElementaryTypeName",
2264
- "src": "5867:7:40",
2264
+ "src": "5861:7:40",
2265
2265
  "typeDescriptions": {
2266
2266
  "typeIdentifier": "t_uint128",
2267
2267
  "typeString": "uint128"
@@ -2275,10 +2275,10 @@
2275
2275
  "indexed": false,
2276
2276
  "mutability": "mutable",
2277
2277
  "name": "totalUnitsPending",
2278
- "nameLocation": "5906:17:40",
2278
+ "nameLocation": "5900:17:40",
2279
2279
  "nodeType": "VariableDeclaration",
2280
2280
  "scope": 16500,
2281
- "src": "5898:25:40",
2281
+ "src": "5892:25:40",
2282
2282
  "stateVariable": false,
2283
2283
  "storageLocation": "default",
2284
2284
  "typeDescriptions": {
@@ -2289,7 +2289,7 @@
2289
2289
  "id": 16493,
2290
2290
  "name": "uint128",
2291
2291
  "nodeType": "ElementaryTypeName",
2292
- "src": "5898:7:40",
2292
+ "src": "5892:7:40",
2293
2293
  "typeDescriptions": {
2294
2294
  "typeIdentifier": "t_uint128",
2295
2295
  "typeString": "uint128"
@@ -2303,10 +2303,10 @@
2303
2303
  "indexed": false,
2304
2304
  "mutability": "mutable",
2305
2305
  "name": "totalUnitsApproved",
2306
- "nameLocation": "5941:18:40",
2306
+ "nameLocation": "5935:18:40",
2307
2307
  "nodeType": "VariableDeclaration",
2308
2308
  "scope": 16500,
2309
- "src": "5933:26:40",
2309
+ "src": "5927:26:40",
2310
2310
  "stateVariable": false,
2311
2311
  "storageLocation": "default",
2312
2312
  "typeDescriptions": {
@@ -2317,7 +2317,7 @@
2317
2317
  "id": 16495,
2318
2318
  "name": "uint128",
2319
2319
  "nodeType": "ElementaryTypeName",
2320
- "src": "5933:7:40",
2320
+ "src": "5927:7:40",
2321
2321
  "typeDescriptions": {
2322
2322
  "typeIdentifier": "t_uint128",
2323
2323
  "typeString": "uint128"
@@ -2331,10 +2331,10 @@
2331
2331
  "indexed": false,
2332
2332
  "mutability": "mutable",
2333
2333
  "name": "userData",
2334
- "nameLocation": "5975:8:40",
2334
+ "nameLocation": "5969:8:40",
2335
2335
  "nodeType": "VariableDeclaration",
2336
2336
  "scope": 16500,
2337
- "src": "5969:14:40",
2337
+ "src": "5963:14:40",
2338
2338
  "stateVariable": false,
2339
2339
  "storageLocation": "default",
2340
2340
  "typeDescriptions": {
@@ -2345,7 +2345,7 @@
2345
2345
  "id": 16497,
2346
2346
  "name": "bytes",
2347
2347
  "nodeType": "ElementaryTypeName",
2348
- "src": "5969:5:40",
2348
+ "src": "5963:5:40",
2349
2349
  "typeDescriptions": {
2350
2350
  "typeIdentifier": "t_bytes_storage_ptr",
2351
2351
  "typeString": "bytes"
@@ -2354,16 +2354,16 @@
2354
2354
  "visibility": "internal"
2355
2355
  }
2356
2356
  ],
2357
- "src": "5719:265:40"
2357
+ "src": "5713:265:40"
2358
2358
  },
2359
- "src": "5701:284:40"
2359
+ "src": "5695:284:40"
2360
2360
  },
2361
2361
  {
2362
2362
  "documentation": {
2363
2363
  "id": 16501,
2364
2364
  "nodeType": "StructuredDocumentation",
2365
- "src": "5991:649:40",
2366
- "text": " @dev Distribute tokens through the index\n @param token Super token address\n @param indexId Id of the index\n @param amount The amount of tokens desired to be distributed\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n NOTE:\n - This is a convenient version of updateIndex. It adds to the index\n a delta that equals to `amount / totalUnits`\n - The actual amount distributed could be obtained via\n `calculateDistribution`. This is due to precision error with index\n value and units data range\n # App callbacks\n None"
2365
+ "src": "5985:653:40",
2366
+ "text": " @dev Distribute tokens through the index\n @param token Super token address\n @param indexId Id of the index\n @param amount The amount of tokens desired to be distributed\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:note \n - This is a convenient version of updateIndex. It adds to the index\n a delta that equals to `amount / totalUnits`\n - The actual amount distributed could be obtained via\n `calculateDistribution`. This is due to precision error with index\n value and units data range\n @custom:callbacks \n None"
2367
2367
  },
2368
2368
  "functionSelector": "b96731c2",
2369
2369
  "id": 16515,
@@ -2371,7 +2371,7 @@
2371
2371
  "kind": "function",
2372
2372
  "modifiers": [],
2373
2373
  "name": "distribute",
2374
- "nameLocation": "6654:10:40",
2374
+ "nameLocation": "6652:10:40",
2375
2375
  "nodeType": "FunctionDefinition",
2376
2376
  "parameters": {
2377
2377
  "id": 16511,
@@ -2382,10 +2382,10 @@
2382
2382
  "id": 16504,
2383
2383
  "mutability": "mutable",
2384
2384
  "name": "token",
2385
- "nameLocation": "6691:5:40",
2385
+ "nameLocation": "6689:5:40",
2386
2386
  "nodeType": "VariableDeclaration",
2387
2387
  "scope": 16515,
2388
- "src": "6674:22:40",
2388
+ "src": "6672:22:40",
2389
2389
  "stateVariable": false,
2390
2390
  "storageLocation": "default",
2391
2391
  "typeDescriptions": {
@@ -2400,10 +2400,10 @@
2400
2400
  "name": "ISuperfluidToken",
2401
2401
  "nodeType": "IdentifierPath",
2402
2402
  "referencedDeclaration": 18721,
2403
- "src": "6674:16:40"
2403
+ "src": "6672:16:40"
2404
2404
  },
2405
2405
  "referencedDeclaration": 18721,
2406
- "src": "6674:16:40",
2406
+ "src": "6672:16:40",
2407
2407
  "typeDescriptions": {
2408
2408
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2409
2409
  "typeString": "contract ISuperfluidToken"
@@ -2416,10 +2416,10 @@
2416
2416
  "id": 16506,
2417
2417
  "mutability": "mutable",
2418
2418
  "name": "indexId",
2419
- "nameLocation": "6713:7:40",
2419
+ "nameLocation": "6711:7:40",
2420
2420
  "nodeType": "VariableDeclaration",
2421
2421
  "scope": 16515,
2422
- "src": "6706:14:40",
2422
+ "src": "6704:14:40",
2423
2423
  "stateVariable": false,
2424
2424
  "storageLocation": "default",
2425
2425
  "typeDescriptions": {
@@ -2430,7 +2430,7 @@
2430
2430
  "id": 16505,
2431
2431
  "name": "uint32",
2432
2432
  "nodeType": "ElementaryTypeName",
2433
- "src": "6706:6:40",
2433
+ "src": "6704:6:40",
2434
2434
  "typeDescriptions": {
2435
2435
  "typeIdentifier": "t_uint32",
2436
2436
  "typeString": "uint32"
@@ -2443,10 +2443,10 @@
2443
2443
  "id": 16508,
2444
2444
  "mutability": "mutable",
2445
2445
  "name": "amount",
2446
- "nameLocation": "6738:6:40",
2446
+ "nameLocation": "6736:6:40",
2447
2447
  "nodeType": "VariableDeclaration",
2448
2448
  "scope": 16515,
2449
- "src": "6730:14:40",
2449
+ "src": "6728:14:40",
2450
2450
  "stateVariable": false,
2451
2451
  "storageLocation": "default",
2452
2452
  "typeDescriptions": {
@@ -2457,7 +2457,7 @@
2457
2457
  "id": 16507,
2458
2458
  "name": "uint256",
2459
2459
  "nodeType": "ElementaryTypeName",
2460
- "src": "6730:7:40",
2460
+ "src": "6728:7:40",
2461
2461
  "typeDescriptions": {
2462
2462
  "typeIdentifier": "t_uint256",
2463
2463
  "typeString": "uint256"
@@ -2470,10 +2470,10 @@
2470
2470
  "id": 16510,
2471
2471
  "mutability": "mutable",
2472
2472
  "name": "ctx",
2473
- "nameLocation": "6769:3:40",
2473
+ "nameLocation": "6767:3:40",
2474
2474
  "nodeType": "VariableDeclaration",
2475
2475
  "scope": 16515,
2476
- "src": "6754:18:40",
2476
+ "src": "6752:18:40",
2477
2477
  "stateVariable": false,
2478
2478
  "storageLocation": "calldata",
2479
2479
  "typeDescriptions": {
@@ -2484,7 +2484,7 @@
2484
2484
  "id": 16509,
2485
2485
  "name": "bytes",
2486
2486
  "nodeType": "ElementaryTypeName",
2487
- "src": "6754:5:40",
2487
+ "src": "6752:5:40",
2488
2488
  "typeDescriptions": {
2489
2489
  "typeIdentifier": "t_bytes_storage_ptr",
2490
2490
  "typeString": "bytes"
@@ -2493,7 +2493,7 @@
2493
2493
  "visibility": "internal"
2494
2494
  }
2495
2495
  ],
2496
- "src": "6664:109:40"
2496
+ "src": "6662:109:40"
2497
2497
  },
2498
2498
  "returnParameters": {
2499
2499
  "id": 16514,
@@ -2504,10 +2504,10 @@
2504
2504
  "id": 16513,
2505
2505
  "mutability": "mutable",
2506
2506
  "name": "newCtx",
2507
- "nameLocation": "6848:6:40",
2507
+ "nameLocation": "6846:6:40",
2508
2508
  "nodeType": "VariableDeclaration",
2509
2509
  "scope": 16515,
2510
- "src": "6835:19:40",
2510
+ "src": "6833:19:40",
2511
2511
  "stateVariable": false,
2512
2512
  "storageLocation": "memory",
2513
2513
  "typeDescriptions": {
@@ -2518,7 +2518,7 @@
2518
2518
  "id": 16512,
2519
2519
  "name": "bytes",
2520
2520
  "nodeType": "ElementaryTypeName",
2521
- "src": "6835:5:40",
2521
+ "src": "6833:5:40",
2522
2522
  "typeDescriptions": {
2523
2523
  "typeIdentifier": "t_bytes_storage_ptr",
2524
2524
  "typeString": "bytes"
@@ -2527,10 +2527,10 @@
2527
2527
  "visibility": "internal"
2528
2528
  }
2529
2529
  ],
2530
- "src": "6834:21:40"
2530
+ "src": "6832:21:40"
2531
2531
  },
2532
2532
  "scope": 16771,
2533
- "src": "6645:211:40",
2533
+ "src": "6643:211:40",
2534
2534
  "stateMutability": "nonpayable",
2535
2535
  "virtual": true,
2536
2536
  "visibility": "external"
@@ -2539,8 +2539,8 @@
2539
2539
  "documentation": {
2540
2540
  "id": 16516,
2541
2541
  "nodeType": "StructuredDocumentation",
2542
- "src": "7055:580:40",
2543
- "text": " @dev Approve the subscription of an index\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n - if subscription exist\n - AgreementCreated callback to the publisher:\n - agreementId is for the subscription\n - if subscription does not exist\n - AgreementUpdated callback to the publisher:\n - agreementId is for the subscription"
2542
+ "src": "7053:576:40",
2543
+ "text": " @dev Approve the subscription of an index\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n - if subscription exist\n - AgreementCreated callback to the publisher:\n - agreementId is for the subscription\n - if subscription does not exist\n - AgreementUpdated callback to the publisher:\n - agreementId is for the subscription"
2544
2544
  },
2545
2545
  "functionSelector": "acf4a6c2",
2546
2546
  "id": 16530,
@@ -2548,7 +2548,7 @@
2548
2548
  "kind": "function",
2549
2549
  "modifiers": [],
2550
2550
  "name": "approveSubscription",
2551
- "nameLocation": "7649:19:40",
2551
+ "nameLocation": "7643:19:40",
2552
2552
  "nodeType": "FunctionDefinition",
2553
2553
  "parameters": {
2554
2554
  "id": 16526,
@@ -2559,10 +2559,10 @@
2559
2559
  "id": 16519,
2560
2560
  "mutability": "mutable",
2561
2561
  "name": "token",
2562
- "nameLocation": "7695:5:40",
2562
+ "nameLocation": "7689:5:40",
2563
2563
  "nodeType": "VariableDeclaration",
2564
2564
  "scope": 16530,
2565
- "src": "7678:22:40",
2565
+ "src": "7672:22:40",
2566
2566
  "stateVariable": false,
2567
2567
  "storageLocation": "default",
2568
2568
  "typeDescriptions": {
@@ -2577,10 +2577,10 @@
2577
2577
  "name": "ISuperfluidToken",
2578
2578
  "nodeType": "IdentifierPath",
2579
2579
  "referencedDeclaration": 18721,
2580
- "src": "7678:16:40"
2580
+ "src": "7672:16:40"
2581
2581
  },
2582
2582
  "referencedDeclaration": 18721,
2583
- "src": "7678:16:40",
2583
+ "src": "7672:16:40",
2584
2584
  "typeDescriptions": {
2585
2585
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2586
2586
  "typeString": "contract ISuperfluidToken"
@@ -2593,10 +2593,10 @@
2593
2593
  "id": 16521,
2594
2594
  "mutability": "mutable",
2595
2595
  "name": "publisher",
2596
- "nameLocation": "7718:9:40",
2596
+ "nameLocation": "7712:9:40",
2597
2597
  "nodeType": "VariableDeclaration",
2598
2598
  "scope": 16530,
2599
- "src": "7710:17:40",
2599
+ "src": "7704:17:40",
2600
2600
  "stateVariable": false,
2601
2601
  "storageLocation": "default",
2602
2602
  "typeDescriptions": {
@@ -2607,7 +2607,7 @@
2607
2607
  "id": 16520,
2608
2608
  "name": "address",
2609
2609
  "nodeType": "ElementaryTypeName",
2610
- "src": "7710:7:40",
2610
+ "src": "7704:7:40",
2611
2611
  "stateMutability": "nonpayable",
2612
2612
  "typeDescriptions": {
2613
2613
  "typeIdentifier": "t_address",
@@ -2621,10 +2621,10 @@
2621
2621
  "id": 16523,
2622
2622
  "mutability": "mutable",
2623
2623
  "name": "indexId",
2624
- "nameLocation": "7744:7:40",
2624
+ "nameLocation": "7738:7:40",
2625
2625
  "nodeType": "VariableDeclaration",
2626
2626
  "scope": 16530,
2627
- "src": "7737:14:40",
2627
+ "src": "7731:14:40",
2628
2628
  "stateVariable": false,
2629
2629
  "storageLocation": "default",
2630
2630
  "typeDescriptions": {
@@ -2635,7 +2635,7 @@
2635
2635
  "id": 16522,
2636
2636
  "name": "uint32",
2637
2637
  "nodeType": "ElementaryTypeName",
2638
- "src": "7737:6:40",
2638
+ "src": "7731:6:40",
2639
2639
  "typeDescriptions": {
2640
2640
  "typeIdentifier": "t_uint32",
2641
2641
  "typeString": "uint32"
@@ -2648,10 +2648,10 @@
2648
2648
  "id": 16525,
2649
2649
  "mutability": "mutable",
2650
2650
  "name": "ctx",
2651
- "nameLocation": "7776:3:40",
2651
+ "nameLocation": "7770:3:40",
2652
2652
  "nodeType": "VariableDeclaration",
2653
2653
  "scope": 16530,
2654
- "src": "7761:18:40",
2654
+ "src": "7755:18:40",
2655
2655
  "stateVariable": false,
2656
2656
  "storageLocation": "calldata",
2657
2657
  "typeDescriptions": {
@@ -2662,7 +2662,7 @@
2662
2662
  "id": 16524,
2663
2663
  "name": "bytes",
2664
2664
  "nodeType": "ElementaryTypeName",
2665
- "src": "7761:5:40",
2665
+ "src": "7755:5:40",
2666
2666
  "typeDescriptions": {
2667
2667
  "typeIdentifier": "t_bytes_storage_ptr",
2668
2668
  "typeString": "bytes"
@@ -2671,7 +2671,7 @@
2671
2671
  "visibility": "internal"
2672
2672
  }
2673
2673
  ],
2674
- "src": "7668:112:40"
2674
+ "src": "7662:112:40"
2675
2675
  },
2676
2676
  "returnParameters": {
2677
2677
  "id": 16529,
@@ -2682,10 +2682,10 @@
2682
2682
  "id": 16528,
2683
2683
  "mutability": "mutable",
2684
2684
  "name": "newCtx",
2685
- "nameLocation": "7855:6:40",
2685
+ "nameLocation": "7849:6:40",
2686
2686
  "nodeType": "VariableDeclaration",
2687
2687
  "scope": 16530,
2688
- "src": "7842:19:40",
2688
+ "src": "7836:19:40",
2689
2689
  "stateVariable": false,
2690
2690
  "storageLocation": "memory",
2691
2691
  "typeDescriptions": {
@@ -2696,7 +2696,7 @@
2696
2696
  "id": 16527,
2697
2697
  "name": "bytes",
2698
2698
  "nodeType": "ElementaryTypeName",
2699
- "src": "7842:5:40",
2699
+ "src": "7836:5:40",
2700
2700
  "typeDescriptions": {
2701
2701
  "typeIdentifier": "t_bytes_storage_ptr",
2702
2702
  "typeString": "bytes"
@@ -2705,10 +2705,10 @@
2705
2705
  "visibility": "internal"
2706
2706
  }
2707
2707
  ],
2708
- "src": "7841:21:40"
2708
+ "src": "7835:21:40"
2709
2709
  },
2710
2710
  "scope": 16771,
2711
- "src": "7640:223:40",
2711
+ "src": "7634:223:40",
2712
2712
  "stateMutability": "nonpayable",
2713
2713
  "virtual": true,
2714
2714
  "visibility": "external"
@@ -2718,13 +2718,13 @@
2718
2718
  "documentation": {
2719
2719
  "id": 16531,
2720
2720
  "nodeType": "StructuredDocumentation",
2721
- "src": "7868:272:40",
2721
+ "src": "7862:272:40",
2722
2722
  "text": " @dev Index subscribed event\n @param token Super token address\n @param publisher Index publisher\n @param indexId The specified indexId\n @param subscriber The approved subscriber\n @param userData The user provided data"
2723
2723
  },
2724
2724
  "eventSelector": "492d2641617cfaf24ac7328f85bc5bdf5113537d78dc7671afa4f49a73f053c2",
2725
2725
  "id": 16544,
2726
2726
  "name": "IndexSubscribed",
2727
- "nameLocation": "8151:15:40",
2727
+ "nameLocation": "8145:15:40",
2728
2728
  "nodeType": "EventDefinition",
2729
2729
  "parameters": {
2730
2730
  "id": 16543,
@@ -2736,10 +2736,10 @@
2736
2736
  "indexed": true,
2737
2737
  "mutability": "mutable",
2738
2738
  "name": "token",
2739
- "nameLocation": "8201:5:40",
2739
+ "nameLocation": "8195:5:40",
2740
2740
  "nodeType": "VariableDeclaration",
2741
2741
  "scope": 16544,
2742
- "src": "8176:30:40",
2742
+ "src": "8170:30:40",
2743
2743
  "stateVariable": false,
2744
2744
  "storageLocation": "default",
2745
2745
  "typeDescriptions": {
@@ -2754,10 +2754,10 @@
2754
2754
  "name": "ISuperfluidToken",
2755
2755
  "nodeType": "IdentifierPath",
2756
2756
  "referencedDeclaration": 18721,
2757
- "src": "8176:16:40"
2757
+ "src": "8170:16:40"
2758
2758
  },
2759
2759
  "referencedDeclaration": 18721,
2760
- "src": "8176:16:40",
2760
+ "src": "8170:16:40",
2761
2761
  "typeDescriptions": {
2762
2762
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2763
2763
  "typeString": "contract ISuperfluidToken"
@@ -2771,10 +2771,10 @@
2771
2771
  "indexed": true,
2772
2772
  "mutability": "mutable",
2773
2773
  "name": "publisher",
2774
- "nameLocation": "8232:9:40",
2774
+ "nameLocation": "8226:9:40",
2775
2775
  "nodeType": "VariableDeclaration",
2776
2776
  "scope": 16544,
2777
- "src": "8216:25:40",
2777
+ "src": "8210:25:40",
2778
2778
  "stateVariable": false,
2779
2779
  "storageLocation": "default",
2780
2780
  "typeDescriptions": {
@@ -2785,7 +2785,7 @@
2785
2785
  "id": 16535,
2786
2786
  "name": "address",
2787
2787
  "nodeType": "ElementaryTypeName",
2788
- "src": "8216:7:40",
2788
+ "src": "8210:7:40",
2789
2789
  "stateMutability": "nonpayable",
2790
2790
  "typeDescriptions": {
2791
2791
  "typeIdentifier": "t_address",
@@ -2800,10 +2800,10 @@
2800
2800
  "indexed": true,
2801
2801
  "mutability": "mutable",
2802
2802
  "name": "indexId",
2803
- "nameLocation": "8266:7:40",
2803
+ "nameLocation": "8260:7:40",
2804
2804
  "nodeType": "VariableDeclaration",
2805
2805
  "scope": 16544,
2806
- "src": "8251:22:40",
2806
+ "src": "8245:22:40",
2807
2807
  "stateVariable": false,
2808
2808
  "storageLocation": "default",
2809
2809
  "typeDescriptions": {
@@ -2814,7 +2814,7 @@
2814
2814
  "id": 16537,
2815
2815
  "name": "uint32",
2816
2816
  "nodeType": "ElementaryTypeName",
2817
- "src": "8251:6:40",
2817
+ "src": "8245:6:40",
2818
2818
  "typeDescriptions": {
2819
2819
  "typeIdentifier": "t_uint32",
2820
2820
  "typeString": "uint32"
@@ -2828,10 +2828,10 @@
2828
2828
  "indexed": false,
2829
2829
  "mutability": "mutable",
2830
2830
  "name": "subscriber",
2831
- "nameLocation": "8291:10:40",
2831
+ "nameLocation": "8285:10:40",
2832
2832
  "nodeType": "VariableDeclaration",
2833
2833
  "scope": 16544,
2834
- "src": "8283:18:40",
2834
+ "src": "8277:18:40",
2835
2835
  "stateVariable": false,
2836
2836
  "storageLocation": "default",
2837
2837
  "typeDescriptions": {
@@ -2842,7 +2842,7 @@
2842
2842
  "id": 16539,
2843
2843
  "name": "address",
2844
2844
  "nodeType": "ElementaryTypeName",
2845
- "src": "8283:7:40",
2845
+ "src": "8277:7:40",
2846
2846
  "stateMutability": "nonpayable",
2847
2847
  "typeDescriptions": {
2848
2848
  "typeIdentifier": "t_address",
@@ -2857,10 +2857,10 @@
2857
2857
  "indexed": false,
2858
2858
  "mutability": "mutable",
2859
2859
  "name": "userData",
2860
- "nameLocation": "8317:8:40",
2860
+ "nameLocation": "8311:8:40",
2861
2861
  "nodeType": "VariableDeclaration",
2862
2862
  "scope": 16544,
2863
- "src": "8311:14:40",
2863
+ "src": "8305:14:40",
2864
2864
  "stateVariable": false,
2865
2865
  "storageLocation": "default",
2866
2866
  "typeDescriptions": {
@@ -2871,7 +2871,7 @@
2871
2871
  "id": 16541,
2872
2872
  "name": "bytes",
2873
2873
  "nodeType": "ElementaryTypeName",
2874
- "src": "8311:5:40",
2874
+ "src": "8305:5:40",
2875
2875
  "typeDescriptions": {
2876
2876
  "typeIdentifier": "t_bytes_storage_ptr",
2877
2877
  "typeString": "bytes"
@@ -2880,22 +2880,22 @@
2880
2880
  "visibility": "internal"
2881
2881
  }
2882
2882
  ],
2883
- "src": "8166:160:40"
2883
+ "src": "8160:160:40"
2884
2884
  },
2885
- "src": "8145:182:40"
2885
+ "src": "8139:182:40"
2886
2886
  },
2887
2887
  {
2888
2888
  "anonymous": false,
2889
2889
  "documentation": {
2890
2890
  "id": 16545,
2891
2891
  "nodeType": "StructuredDocumentation",
2892
- "src": "8333:277:40",
2892
+ "src": "8327:277:40",
2893
2893
  "text": " @dev Subscription approved event\n @param token Super token address\n @param subscriber The approved subscriber\n @param publisher Index publisher\n @param indexId The specified indexId\n @param userData The user provided data"
2894
2894
  },
2895
2895
  "eventSelector": "c0b8396b655615cdb85fe462a9a1792480816f909cd46d9517a940b386dfbf6b",
2896
2896
  "id": 16558,
2897
2897
  "name": "SubscriptionApproved",
2898
- "nameLocation": "8621:20:40",
2898
+ "nameLocation": "8615:20:40",
2899
2899
  "nodeType": "EventDefinition",
2900
2900
  "parameters": {
2901
2901
  "id": 16557,
@@ -2907,10 +2907,10 @@
2907
2907
  "indexed": true,
2908
2908
  "mutability": "mutable",
2909
2909
  "name": "token",
2910
- "nameLocation": "8676:5:40",
2910
+ "nameLocation": "8670:5:40",
2911
2911
  "nodeType": "VariableDeclaration",
2912
2912
  "scope": 16558,
2913
- "src": "8651:30:40",
2913
+ "src": "8645:30:40",
2914
2914
  "stateVariable": false,
2915
2915
  "storageLocation": "default",
2916
2916
  "typeDescriptions": {
@@ -2925,10 +2925,10 @@
2925
2925
  "name": "ISuperfluidToken",
2926
2926
  "nodeType": "IdentifierPath",
2927
2927
  "referencedDeclaration": 18721,
2928
- "src": "8651:16:40"
2928
+ "src": "8645:16:40"
2929
2929
  },
2930
2930
  "referencedDeclaration": 18721,
2931
- "src": "8651:16:40",
2931
+ "src": "8645:16:40",
2932
2932
  "typeDescriptions": {
2933
2933
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
2934
2934
  "typeString": "contract ISuperfluidToken"
@@ -2942,10 +2942,10 @@
2942
2942
  "indexed": true,
2943
2943
  "mutability": "mutable",
2944
2944
  "name": "subscriber",
2945
- "nameLocation": "8707:10:40",
2945
+ "nameLocation": "8701:10:40",
2946
2946
  "nodeType": "VariableDeclaration",
2947
2947
  "scope": 16558,
2948
- "src": "8691:26:40",
2948
+ "src": "8685:26:40",
2949
2949
  "stateVariable": false,
2950
2950
  "storageLocation": "default",
2951
2951
  "typeDescriptions": {
@@ -2956,7 +2956,7 @@
2956
2956
  "id": 16549,
2957
2957
  "name": "address",
2958
2958
  "nodeType": "ElementaryTypeName",
2959
- "src": "8691:7:40",
2959
+ "src": "8685:7:40",
2960
2960
  "stateMutability": "nonpayable",
2961
2961
  "typeDescriptions": {
2962
2962
  "typeIdentifier": "t_address",
@@ -2971,10 +2971,10 @@
2971
2971
  "indexed": false,
2972
2972
  "mutability": "mutable",
2973
2973
  "name": "publisher",
2974
- "nameLocation": "8735:9:40",
2974
+ "nameLocation": "8729:9:40",
2975
2975
  "nodeType": "VariableDeclaration",
2976
2976
  "scope": 16558,
2977
- "src": "8727:17:40",
2977
+ "src": "8721:17:40",
2978
2978
  "stateVariable": false,
2979
2979
  "storageLocation": "default",
2980
2980
  "typeDescriptions": {
@@ -2985,7 +2985,7 @@
2985
2985
  "id": 16551,
2986
2986
  "name": "address",
2987
2987
  "nodeType": "ElementaryTypeName",
2988
- "src": "8727:7:40",
2988
+ "src": "8721:7:40",
2989
2989
  "stateMutability": "nonpayable",
2990
2990
  "typeDescriptions": {
2991
2991
  "typeIdentifier": "t_address",
@@ -3000,10 +3000,10 @@
3000
3000
  "indexed": false,
3001
3001
  "mutability": "mutable",
3002
3002
  "name": "indexId",
3003
- "nameLocation": "8761:7:40",
3003
+ "nameLocation": "8755:7:40",
3004
3004
  "nodeType": "VariableDeclaration",
3005
3005
  "scope": 16558,
3006
- "src": "8754:14:40",
3006
+ "src": "8748:14:40",
3007
3007
  "stateVariable": false,
3008
3008
  "storageLocation": "default",
3009
3009
  "typeDescriptions": {
@@ -3014,7 +3014,7 @@
3014
3014
  "id": 16553,
3015
3015
  "name": "uint32",
3016
3016
  "nodeType": "ElementaryTypeName",
3017
- "src": "8754:6:40",
3017
+ "src": "8748:6:40",
3018
3018
  "typeDescriptions": {
3019
3019
  "typeIdentifier": "t_uint32",
3020
3020
  "typeString": "uint32"
@@ -3028,10 +3028,10 @@
3028
3028
  "indexed": false,
3029
3029
  "mutability": "mutable",
3030
3030
  "name": "userData",
3031
- "nameLocation": "8784:8:40",
3031
+ "nameLocation": "8778:8:40",
3032
3032
  "nodeType": "VariableDeclaration",
3033
3033
  "scope": 16558,
3034
- "src": "8778:14:40",
3034
+ "src": "8772:14:40",
3035
3035
  "stateVariable": false,
3036
3036
  "storageLocation": "default",
3037
3037
  "typeDescriptions": {
@@ -3042,7 +3042,7 @@
3042
3042
  "id": 16555,
3043
3043
  "name": "bytes",
3044
3044
  "nodeType": "ElementaryTypeName",
3045
- "src": "8778:5:40",
3045
+ "src": "8772:5:40",
3046
3046
  "typeDescriptions": {
3047
3047
  "typeIdentifier": "t_bytes_storage_ptr",
3048
3048
  "typeString": "bytes"
@@ -3051,16 +3051,16 @@
3051
3051
  "visibility": "internal"
3052
3052
  }
3053
3053
  ],
3054
- "src": "8641:152:40"
3054
+ "src": "8635:152:40"
3055
3055
  },
3056
- "src": "8615:179:40"
3056
+ "src": "8609:179:40"
3057
3057
  },
3058
3058
  {
3059
3059
  "documentation": {
3060
3060
  "id": 16559,
3061
3061
  "nodeType": "StructuredDocumentation",
3062
- "src": "8800:462:40",
3063
- "text": " @notice Revoke the subscription of an index\n @dev \"Unapproves\" the subscription and moves approved units to pending\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n - AgreementUpdated callback to the publisher:\n - agreementId is for the subscription"
3062
+ "src": "8794:465:40",
3063
+ "text": " @notice Revoke the subscription of an index\n @dev \"Unapproves\" the subscription and moves approved units to pending\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n - AgreementUpdated callback to the publisher:\n - agreementId is for the subscription"
3064
3064
  },
3065
3065
  "functionSelector": "6041ae96",
3066
3066
  "id": 16573,
@@ -3068,7 +3068,7 @@
3068
3068
  "kind": "function",
3069
3069
  "modifiers": [],
3070
3070
  "name": "revokeSubscription",
3071
- "nameLocation": "9276:18:40",
3071
+ "nameLocation": "9273:18:40",
3072
3072
  "nodeType": "FunctionDefinition",
3073
3073
  "parameters": {
3074
3074
  "id": 16569,
@@ -3079,10 +3079,10 @@
3079
3079
  "id": 16562,
3080
3080
  "mutability": "mutable",
3081
3081
  "name": "token",
3082
- "nameLocation": "9321:5:40",
3082
+ "nameLocation": "9318:5:40",
3083
3083
  "nodeType": "VariableDeclaration",
3084
3084
  "scope": 16573,
3085
- "src": "9304:22:40",
3085
+ "src": "9301:22:40",
3086
3086
  "stateVariable": false,
3087
3087
  "storageLocation": "default",
3088
3088
  "typeDescriptions": {
@@ -3097,10 +3097,10 @@
3097
3097
  "name": "ISuperfluidToken",
3098
3098
  "nodeType": "IdentifierPath",
3099
3099
  "referencedDeclaration": 18721,
3100
- "src": "9304:16:40"
3100
+ "src": "9301:16:40"
3101
3101
  },
3102
3102
  "referencedDeclaration": 18721,
3103
- "src": "9304:16:40",
3103
+ "src": "9301:16:40",
3104
3104
  "typeDescriptions": {
3105
3105
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3106
3106
  "typeString": "contract ISuperfluidToken"
@@ -3113,10 +3113,10 @@
3113
3113
  "id": 16564,
3114
3114
  "mutability": "mutable",
3115
3115
  "name": "publisher",
3116
- "nameLocation": "9344:9:40",
3116
+ "nameLocation": "9341:9:40",
3117
3117
  "nodeType": "VariableDeclaration",
3118
3118
  "scope": 16573,
3119
- "src": "9336:17:40",
3119
+ "src": "9333:17:40",
3120
3120
  "stateVariable": false,
3121
3121
  "storageLocation": "default",
3122
3122
  "typeDescriptions": {
@@ -3127,7 +3127,7 @@
3127
3127
  "id": 16563,
3128
3128
  "name": "address",
3129
3129
  "nodeType": "ElementaryTypeName",
3130
- "src": "9336:7:40",
3130
+ "src": "9333:7:40",
3131
3131
  "stateMutability": "nonpayable",
3132
3132
  "typeDescriptions": {
3133
3133
  "typeIdentifier": "t_address",
@@ -3141,10 +3141,10 @@
3141
3141
  "id": 16566,
3142
3142
  "mutability": "mutable",
3143
3143
  "name": "indexId",
3144
- "nameLocation": "9370:7:40",
3144
+ "nameLocation": "9367:7:40",
3145
3145
  "nodeType": "VariableDeclaration",
3146
3146
  "scope": 16573,
3147
- "src": "9363:14:40",
3147
+ "src": "9360:14:40",
3148
3148
  "stateVariable": false,
3149
3149
  "storageLocation": "default",
3150
3150
  "typeDescriptions": {
@@ -3155,7 +3155,7 @@
3155
3155
  "id": 16565,
3156
3156
  "name": "uint32",
3157
3157
  "nodeType": "ElementaryTypeName",
3158
- "src": "9363:6:40",
3158
+ "src": "9360:6:40",
3159
3159
  "typeDescriptions": {
3160
3160
  "typeIdentifier": "t_uint32",
3161
3161
  "typeString": "uint32"
@@ -3168,10 +3168,10 @@
3168
3168
  "id": 16568,
3169
3169
  "mutability": "mutable",
3170
3170
  "name": "ctx",
3171
- "nameLocation": "9402:3:40",
3171
+ "nameLocation": "9399:3:40",
3172
3172
  "nodeType": "VariableDeclaration",
3173
3173
  "scope": 16573,
3174
- "src": "9387:18:40",
3174
+ "src": "9384:18:40",
3175
3175
  "stateVariable": false,
3176
3176
  "storageLocation": "calldata",
3177
3177
  "typeDescriptions": {
@@ -3182,7 +3182,7 @@
3182
3182
  "id": 16567,
3183
3183
  "name": "bytes",
3184
3184
  "nodeType": "ElementaryTypeName",
3185
- "src": "9387:5:40",
3185
+ "src": "9384:5:40",
3186
3186
  "typeDescriptions": {
3187
3187
  "typeIdentifier": "t_bytes_storage_ptr",
3188
3188
  "typeString": "bytes"
@@ -3191,7 +3191,7 @@
3191
3191
  "visibility": "internal"
3192
3192
  }
3193
3193
  ],
3194
- "src": "9294:112:40"
3194
+ "src": "9291:112:40"
3195
3195
  },
3196
3196
  "returnParameters": {
3197
3197
  "id": 16572,
@@ -3202,10 +3202,10 @@
3202
3202
  "id": 16571,
3203
3203
  "mutability": "mutable",
3204
3204
  "name": "newCtx",
3205
- "nameLocation": "9472:6:40",
3205
+ "nameLocation": "9469:6:40",
3206
3206
  "nodeType": "VariableDeclaration",
3207
3207
  "scope": 16573,
3208
- "src": "9459:19:40",
3208
+ "src": "9456:19:40",
3209
3209
  "stateVariable": false,
3210
3210
  "storageLocation": "memory",
3211
3211
  "typeDescriptions": {
@@ -3216,7 +3216,7 @@
3216
3216
  "id": 16570,
3217
3217
  "name": "bytes",
3218
3218
  "nodeType": "ElementaryTypeName",
3219
- "src": "9459:5:40",
3219
+ "src": "9456:5:40",
3220
3220
  "typeDescriptions": {
3221
3221
  "typeIdentifier": "t_bytes_storage_ptr",
3222
3222
  "typeString": "bytes"
@@ -3225,10 +3225,10 @@
3225
3225
  "visibility": "internal"
3226
3226
  }
3227
3227
  ],
3228
- "src": "9458:21:40"
3228
+ "src": "9455:21:40"
3229
3229
  },
3230
3230
  "scope": 16771,
3231
- "src": "9267:213:40",
3231
+ "src": "9264:213:40",
3232
3232
  "stateMutability": "nonpayable",
3233
3233
  "virtual": true,
3234
3234
  "visibility": "external"
@@ -3238,13 +3238,13 @@
3238
3238
  "documentation": {
3239
3239
  "id": 16574,
3240
3240
  "nodeType": "StructuredDocumentation",
3241
- "src": "9485:278:40",
3241
+ "src": "9482:278:40",
3242
3242
  "text": " @dev Index unsubscribed event\n @param token Super token address\n @param publisher Index publisher\n @param indexId The specified indexId\n @param subscriber The unsubscribed subscriber\n @param userData The user provided data"
3243
3243
  },
3244
3244
  "eventSelector": "e1f8e9cd8061e5b251769965bda6ca9ef1674bc6541fb9131039fa53f024d142",
3245
3245
  "id": 16587,
3246
3246
  "name": "IndexUnsubscribed",
3247
- "nameLocation": "9774:17:40",
3247
+ "nameLocation": "9771:17:40",
3248
3248
  "nodeType": "EventDefinition",
3249
3249
  "parameters": {
3250
3250
  "id": 16586,
@@ -3256,10 +3256,10 @@
3256
3256
  "indexed": true,
3257
3257
  "mutability": "mutable",
3258
3258
  "name": "token",
3259
- "nameLocation": "9826:5:40",
3259
+ "nameLocation": "9823:5:40",
3260
3260
  "nodeType": "VariableDeclaration",
3261
3261
  "scope": 16587,
3262
- "src": "9801:30:40",
3262
+ "src": "9798:30:40",
3263
3263
  "stateVariable": false,
3264
3264
  "storageLocation": "default",
3265
3265
  "typeDescriptions": {
@@ -3274,10 +3274,10 @@
3274
3274
  "name": "ISuperfluidToken",
3275
3275
  "nodeType": "IdentifierPath",
3276
3276
  "referencedDeclaration": 18721,
3277
- "src": "9801:16:40"
3277
+ "src": "9798:16:40"
3278
3278
  },
3279
3279
  "referencedDeclaration": 18721,
3280
- "src": "9801:16:40",
3280
+ "src": "9798:16:40",
3281
3281
  "typeDescriptions": {
3282
3282
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3283
3283
  "typeString": "contract ISuperfluidToken"
@@ -3291,10 +3291,10 @@
3291
3291
  "indexed": true,
3292
3292
  "mutability": "mutable",
3293
3293
  "name": "publisher",
3294
- "nameLocation": "9857:9:40",
3294
+ "nameLocation": "9854:9:40",
3295
3295
  "nodeType": "VariableDeclaration",
3296
3296
  "scope": 16587,
3297
- "src": "9841:25:40",
3297
+ "src": "9838:25:40",
3298
3298
  "stateVariable": false,
3299
3299
  "storageLocation": "default",
3300
3300
  "typeDescriptions": {
@@ -3305,7 +3305,7 @@
3305
3305
  "id": 16578,
3306
3306
  "name": "address",
3307
3307
  "nodeType": "ElementaryTypeName",
3308
- "src": "9841:7:40",
3308
+ "src": "9838:7:40",
3309
3309
  "stateMutability": "nonpayable",
3310
3310
  "typeDescriptions": {
3311
3311
  "typeIdentifier": "t_address",
@@ -3320,10 +3320,10 @@
3320
3320
  "indexed": true,
3321
3321
  "mutability": "mutable",
3322
3322
  "name": "indexId",
3323
- "nameLocation": "9891:7:40",
3323
+ "nameLocation": "9888:7:40",
3324
3324
  "nodeType": "VariableDeclaration",
3325
3325
  "scope": 16587,
3326
- "src": "9876:22:40",
3326
+ "src": "9873:22:40",
3327
3327
  "stateVariable": false,
3328
3328
  "storageLocation": "default",
3329
3329
  "typeDescriptions": {
@@ -3334,7 +3334,7 @@
3334
3334
  "id": 16580,
3335
3335
  "name": "uint32",
3336
3336
  "nodeType": "ElementaryTypeName",
3337
- "src": "9876:6:40",
3337
+ "src": "9873:6:40",
3338
3338
  "typeDescriptions": {
3339
3339
  "typeIdentifier": "t_uint32",
3340
3340
  "typeString": "uint32"
@@ -3348,10 +3348,10 @@
3348
3348
  "indexed": false,
3349
3349
  "mutability": "mutable",
3350
3350
  "name": "subscriber",
3351
- "nameLocation": "9916:10:40",
3351
+ "nameLocation": "9913:10:40",
3352
3352
  "nodeType": "VariableDeclaration",
3353
3353
  "scope": 16587,
3354
- "src": "9908:18:40",
3354
+ "src": "9905:18:40",
3355
3355
  "stateVariable": false,
3356
3356
  "storageLocation": "default",
3357
3357
  "typeDescriptions": {
@@ -3362,7 +3362,7 @@
3362
3362
  "id": 16582,
3363
3363
  "name": "address",
3364
3364
  "nodeType": "ElementaryTypeName",
3365
- "src": "9908:7:40",
3365
+ "src": "9905:7:40",
3366
3366
  "stateMutability": "nonpayable",
3367
3367
  "typeDescriptions": {
3368
3368
  "typeIdentifier": "t_address",
@@ -3377,10 +3377,10 @@
3377
3377
  "indexed": false,
3378
3378
  "mutability": "mutable",
3379
3379
  "name": "userData",
3380
- "nameLocation": "9942:8:40",
3380
+ "nameLocation": "9939:8:40",
3381
3381
  "nodeType": "VariableDeclaration",
3382
3382
  "scope": 16587,
3383
- "src": "9936:14:40",
3383
+ "src": "9933:14:40",
3384
3384
  "stateVariable": false,
3385
3385
  "storageLocation": "default",
3386
3386
  "typeDescriptions": {
@@ -3391,7 +3391,7 @@
3391
3391
  "id": 16584,
3392
3392
  "name": "bytes",
3393
3393
  "nodeType": "ElementaryTypeName",
3394
- "src": "9936:5:40",
3394
+ "src": "9933:5:40",
3395
3395
  "typeDescriptions": {
3396
3396
  "typeIdentifier": "t_bytes_storage_ptr",
3397
3397
  "typeString": "bytes"
@@ -3400,22 +3400,22 @@
3400
3400
  "visibility": "internal"
3401
3401
  }
3402
3402
  ],
3403
- "src": "9791:160:40"
3403
+ "src": "9788:160:40"
3404
3404
  },
3405
- "src": "9768:184:40"
3405
+ "src": "9765:184:40"
3406
3406
  },
3407
3407
  {
3408
3408
  "anonymous": false,
3409
3409
  "documentation": {
3410
3410
  "id": 16588,
3411
3411
  "nodeType": "StructuredDocumentation",
3412
- "src": "9962:277:40",
3412
+ "src": "9959:277:40",
3413
3413
  "text": " @dev Subscription approved event\n @param token Super token address\n @param subscriber The approved subscriber\n @param publisher Index publisher\n @param indexId The specified indexId\n @param userData The user provided data"
3414
3414
  },
3415
3415
  "eventSelector": "9e02127550b99adc8cc6ee332a36f31338facdbc396cebefce9a047247cd0455",
3416
3416
  "id": 16601,
3417
3417
  "name": "SubscriptionRevoked",
3418
- "nameLocation": "10250:19:40",
3418
+ "nameLocation": "10247:19:40",
3419
3419
  "nodeType": "EventDefinition",
3420
3420
  "parameters": {
3421
3421
  "id": 16600,
@@ -3427,10 +3427,10 @@
3427
3427
  "indexed": true,
3428
3428
  "mutability": "mutable",
3429
3429
  "name": "token",
3430
- "nameLocation": "10304:5:40",
3430
+ "nameLocation": "10301:5:40",
3431
3431
  "nodeType": "VariableDeclaration",
3432
3432
  "scope": 16601,
3433
- "src": "10279:30:40",
3433
+ "src": "10276:30:40",
3434
3434
  "stateVariable": false,
3435
3435
  "storageLocation": "default",
3436
3436
  "typeDescriptions": {
@@ -3445,10 +3445,10 @@
3445
3445
  "name": "ISuperfluidToken",
3446
3446
  "nodeType": "IdentifierPath",
3447
3447
  "referencedDeclaration": 18721,
3448
- "src": "10279:16:40"
3448
+ "src": "10276:16:40"
3449
3449
  },
3450
3450
  "referencedDeclaration": 18721,
3451
- "src": "10279:16:40",
3451
+ "src": "10276:16:40",
3452
3452
  "typeDescriptions": {
3453
3453
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3454
3454
  "typeString": "contract ISuperfluidToken"
@@ -3462,10 +3462,10 @@
3462
3462
  "indexed": true,
3463
3463
  "mutability": "mutable",
3464
3464
  "name": "subscriber",
3465
- "nameLocation": "10335:10:40",
3465
+ "nameLocation": "10332:10:40",
3466
3466
  "nodeType": "VariableDeclaration",
3467
3467
  "scope": 16601,
3468
- "src": "10319:26:40",
3468
+ "src": "10316:26:40",
3469
3469
  "stateVariable": false,
3470
3470
  "storageLocation": "default",
3471
3471
  "typeDescriptions": {
@@ -3476,7 +3476,7 @@
3476
3476
  "id": 16592,
3477
3477
  "name": "address",
3478
3478
  "nodeType": "ElementaryTypeName",
3479
- "src": "10319:7:40",
3479
+ "src": "10316:7:40",
3480
3480
  "stateMutability": "nonpayable",
3481
3481
  "typeDescriptions": {
3482
3482
  "typeIdentifier": "t_address",
@@ -3491,10 +3491,10 @@
3491
3491
  "indexed": false,
3492
3492
  "mutability": "mutable",
3493
3493
  "name": "publisher",
3494
- "nameLocation": "10363:9:40",
3494
+ "nameLocation": "10360:9:40",
3495
3495
  "nodeType": "VariableDeclaration",
3496
3496
  "scope": 16601,
3497
- "src": "10355:17:40",
3497
+ "src": "10352:17:40",
3498
3498
  "stateVariable": false,
3499
3499
  "storageLocation": "default",
3500
3500
  "typeDescriptions": {
@@ -3505,7 +3505,7 @@
3505
3505
  "id": 16594,
3506
3506
  "name": "address",
3507
3507
  "nodeType": "ElementaryTypeName",
3508
- "src": "10355:7:40",
3508
+ "src": "10352:7:40",
3509
3509
  "stateMutability": "nonpayable",
3510
3510
  "typeDescriptions": {
3511
3511
  "typeIdentifier": "t_address",
@@ -3520,10 +3520,10 @@
3520
3520
  "indexed": false,
3521
3521
  "mutability": "mutable",
3522
3522
  "name": "indexId",
3523
- "nameLocation": "10389:7:40",
3523
+ "nameLocation": "10386:7:40",
3524
3524
  "nodeType": "VariableDeclaration",
3525
3525
  "scope": 16601,
3526
- "src": "10382:14:40",
3526
+ "src": "10379:14:40",
3527
3527
  "stateVariable": false,
3528
3528
  "storageLocation": "default",
3529
3529
  "typeDescriptions": {
@@ -3534,7 +3534,7 @@
3534
3534
  "id": 16596,
3535
3535
  "name": "uint32",
3536
3536
  "nodeType": "ElementaryTypeName",
3537
- "src": "10382:6:40",
3537
+ "src": "10379:6:40",
3538
3538
  "typeDescriptions": {
3539
3539
  "typeIdentifier": "t_uint32",
3540
3540
  "typeString": "uint32"
@@ -3548,10 +3548,10 @@
3548
3548
  "indexed": false,
3549
3549
  "mutability": "mutable",
3550
3550
  "name": "userData",
3551
- "nameLocation": "10412:8:40",
3551
+ "nameLocation": "10409:8:40",
3552
3552
  "nodeType": "VariableDeclaration",
3553
3553
  "scope": 16601,
3554
- "src": "10406:14:40",
3554
+ "src": "10403:14:40",
3555
3555
  "stateVariable": false,
3556
3556
  "storageLocation": "default",
3557
3557
  "typeDescriptions": {
@@ -3562,7 +3562,7 @@
3562
3562
  "id": 16598,
3563
3563
  "name": "bytes",
3564
3564
  "nodeType": "ElementaryTypeName",
3565
- "src": "10406:5:40",
3565
+ "src": "10403:5:40",
3566
3566
  "typeDescriptions": {
3567
3567
  "typeIdentifier": "t_bytes_storage_ptr",
3568
3568
  "typeString": "bytes"
@@ -3571,16 +3571,16 @@
3571
3571
  "visibility": "internal"
3572
3572
  }
3573
3573
  ],
3574
- "src": "10269:152:40"
3574
+ "src": "10266:152:40"
3575
3575
  },
3576
- "src": "10244:178:40"
3576
+ "src": "10241:178:40"
3577
3577
  },
3578
3578
  {
3579
3579
  "documentation": {
3580
3580
  "id": 16602,
3581
3581
  "nodeType": "StructuredDocumentation",
3582
- "src": "10428:647:40",
3583
- "text": " @dev Update the nuber of units of a subscription\n @param token Super token address\n @param indexId Id of the index\n @param subscriber The subscriber of the index\n @param units Number of units of the subscription\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n - if subscription exist\n - AgreementCreated callback to the subscriber:\n - agreementId is for the subscription\n - if subscription does not exist\n - AgreementUpdated callback to the subscriber:\n - agreementId is for the subscription"
3582
+ "src": "10425:643:40",
3583
+ "text": " @dev Update the nuber of units of a subscription\n @param token Super token address\n @param indexId Id of the index\n @param subscriber The subscriber of the index\n @param units Number of units of the subscription\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n - if subscription exist\n - AgreementCreated callback to the subscriber:\n - agreementId is for the subscription\n - if subscription does not exist\n - AgreementUpdated callback to the subscriber:\n - agreementId is for the subscription"
3584
3584
  },
3585
3585
  "functionSelector": "232d2b58",
3586
3586
  "id": 16618,
@@ -3588,7 +3588,7 @@
3588
3588
  "kind": "function",
3589
3589
  "modifiers": [],
3590
3590
  "name": "updateSubscription",
3591
- "nameLocation": "11089:18:40",
3591
+ "nameLocation": "11082:18:40",
3592
3592
  "nodeType": "FunctionDefinition",
3593
3593
  "parameters": {
3594
3594
  "id": 16614,
@@ -3599,10 +3599,10 @@
3599
3599
  "id": 16605,
3600
3600
  "mutability": "mutable",
3601
3601
  "name": "token",
3602
- "nameLocation": "11134:5:40",
3602
+ "nameLocation": "11127:5:40",
3603
3603
  "nodeType": "VariableDeclaration",
3604
3604
  "scope": 16618,
3605
- "src": "11117:22:40",
3605
+ "src": "11110:22:40",
3606
3606
  "stateVariable": false,
3607
3607
  "storageLocation": "default",
3608
3608
  "typeDescriptions": {
@@ -3617,10 +3617,10 @@
3617
3617
  "name": "ISuperfluidToken",
3618
3618
  "nodeType": "IdentifierPath",
3619
3619
  "referencedDeclaration": 18721,
3620
- "src": "11117:16:40"
3620
+ "src": "11110:16:40"
3621
3621
  },
3622
3622
  "referencedDeclaration": 18721,
3623
- "src": "11117:16:40",
3623
+ "src": "11110:16:40",
3624
3624
  "typeDescriptions": {
3625
3625
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3626
3626
  "typeString": "contract ISuperfluidToken"
@@ -3633,10 +3633,10 @@
3633
3633
  "id": 16607,
3634
3634
  "mutability": "mutable",
3635
3635
  "name": "indexId",
3636
- "nameLocation": "11156:7:40",
3636
+ "nameLocation": "11149:7:40",
3637
3637
  "nodeType": "VariableDeclaration",
3638
3638
  "scope": 16618,
3639
- "src": "11149:14:40",
3639
+ "src": "11142:14:40",
3640
3640
  "stateVariable": false,
3641
3641
  "storageLocation": "default",
3642
3642
  "typeDescriptions": {
@@ -3647,7 +3647,7 @@
3647
3647
  "id": 16606,
3648
3648
  "name": "uint32",
3649
3649
  "nodeType": "ElementaryTypeName",
3650
- "src": "11149:6:40",
3650
+ "src": "11142:6:40",
3651
3651
  "typeDescriptions": {
3652
3652
  "typeIdentifier": "t_uint32",
3653
3653
  "typeString": "uint32"
@@ -3660,10 +3660,10 @@
3660
3660
  "id": 16609,
3661
3661
  "mutability": "mutable",
3662
3662
  "name": "subscriber",
3663
- "nameLocation": "11181:10:40",
3663
+ "nameLocation": "11174:10:40",
3664
3664
  "nodeType": "VariableDeclaration",
3665
3665
  "scope": 16618,
3666
- "src": "11173:18:40",
3666
+ "src": "11166:18:40",
3667
3667
  "stateVariable": false,
3668
3668
  "storageLocation": "default",
3669
3669
  "typeDescriptions": {
@@ -3674,7 +3674,7 @@
3674
3674
  "id": 16608,
3675
3675
  "name": "address",
3676
3676
  "nodeType": "ElementaryTypeName",
3677
- "src": "11173:7:40",
3677
+ "src": "11166:7:40",
3678
3678
  "stateMutability": "nonpayable",
3679
3679
  "typeDescriptions": {
3680
3680
  "typeIdentifier": "t_address",
@@ -3688,10 +3688,10 @@
3688
3688
  "id": 16611,
3689
3689
  "mutability": "mutable",
3690
3690
  "name": "units",
3691
- "nameLocation": "11209:5:40",
3691
+ "nameLocation": "11202:5:40",
3692
3692
  "nodeType": "VariableDeclaration",
3693
3693
  "scope": 16618,
3694
- "src": "11201:13:40",
3694
+ "src": "11194:13:40",
3695
3695
  "stateVariable": false,
3696
3696
  "storageLocation": "default",
3697
3697
  "typeDescriptions": {
@@ -3702,7 +3702,7 @@
3702
3702
  "id": 16610,
3703
3703
  "name": "uint128",
3704
3704
  "nodeType": "ElementaryTypeName",
3705
- "src": "11201:7:40",
3705
+ "src": "11194:7:40",
3706
3706
  "typeDescriptions": {
3707
3707
  "typeIdentifier": "t_uint128",
3708
3708
  "typeString": "uint128"
@@ -3715,10 +3715,10 @@
3715
3715
  "id": 16613,
3716
3716
  "mutability": "mutable",
3717
3717
  "name": "ctx",
3718
- "nameLocation": "11239:3:40",
3718
+ "nameLocation": "11232:3:40",
3719
3719
  "nodeType": "VariableDeclaration",
3720
3720
  "scope": 16618,
3721
- "src": "11224:18:40",
3721
+ "src": "11217:18:40",
3722
3722
  "stateVariable": false,
3723
3723
  "storageLocation": "calldata",
3724
3724
  "typeDescriptions": {
@@ -3729,7 +3729,7 @@
3729
3729
  "id": 16612,
3730
3730
  "name": "bytes",
3731
3731
  "nodeType": "ElementaryTypeName",
3732
- "src": "11224:5:40",
3732
+ "src": "11217:5:40",
3733
3733
  "typeDescriptions": {
3734
3734
  "typeIdentifier": "t_bytes_storage_ptr",
3735
3735
  "typeString": "bytes"
@@ -3738,7 +3738,7 @@
3738
3738
  "visibility": "internal"
3739
3739
  }
3740
3740
  ],
3741
- "src": "11107:136:40"
3741
+ "src": "11100:136:40"
3742
3742
  },
3743
3743
  "returnParameters": {
3744
3744
  "id": 16617,
@@ -3749,10 +3749,10 @@
3749
3749
  "id": 16616,
3750
3750
  "mutability": "mutable",
3751
3751
  "name": "newCtx",
3752
- "nameLocation": "11318:6:40",
3752
+ "nameLocation": "11311:6:40",
3753
3753
  "nodeType": "VariableDeclaration",
3754
3754
  "scope": 16618,
3755
- "src": "11305:19:40",
3755
+ "src": "11298:19:40",
3756
3756
  "stateVariable": false,
3757
3757
  "storageLocation": "memory",
3758
3758
  "typeDescriptions": {
@@ -3763,7 +3763,7 @@
3763
3763
  "id": 16615,
3764
3764
  "name": "bytes",
3765
3765
  "nodeType": "ElementaryTypeName",
3766
- "src": "11305:5:40",
3766
+ "src": "11298:5:40",
3767
3767
  "typeDescriptions": {
3768
3768
  "typeIdentifier": "t_bytes_storage_ptr",
3769
3769
  "typeString": "bytes"
@@ -3772,10 +3772,10 @@
3772
3772
  "visibility": "internal"
3773
3773
  }
3774
3774
  ],
3775
- "src": "11304:21:40"
3775
+ "src": "11297:21:40"
3776
3776
  },
3777
3777
  "scope": 16771,
3778
- "src": "11080:246:40",
3778
+ "src": "11073:246:40",
3779
3779
  "stateMutability": "nonpayable",
3780
3780
  "virtual": true,
3781
3781
  "visibility": "external"
@@ -3785,13 +3785,13 @@
3785
3785
  "documentation": {
3786
3786
  "id": 16619,
3787
3787
  "nodeType": "StructuredDocumentation",
3788
- "src": "11332:322:40",
3788
+ "src": "11325:322:40",
3789
3789
  "text": " @dev Index units updated event\n @param token Super token address\n @param publisher Index publisher\n @param indexId The specified indexId\n @param subscriber The subscriber units updated\n @param units The new units amount\n @param userData The user provided data"
3790
3790
  },
3791
3791
  "eventSelector": "0115987243fd19d615b5ea62a80372a06a2b37fec378b148ee7a507c5c4c0a39",
3792
3792
  "id": 16634,
3793
3793
  "name": "IndexUnitsUpdated",
3794
- "nameLocation": "11665:17:40",
3794
+ "nameLocation": "11658:17:40",
3795
3795
  "nodeType": "EventDefinition",
3796
3796
  "parameters": {
3797
3797
  "id": 16633,
@@ -3803,10 +3803,10 @@
3803
3803
  "indexed": true,
3804
3804
  "mutability": "mutable",
3805
3805
  "name": "token",
3806
- "nameLocation": "11717:5:40",
3806
+ "nameLocation": "11710:5:40",
3807
3807
  "nodeType": "VariableDeclaration",
3808
3808
  "scope": 16634,
3809
- "src": "11692:30:40",
3809
+ "src": "11685:30:40",
3810
3810
  "stateVariable": false,
3811
3811
  "storageLocation": "default",
3812
3812
  "typeDescriptions": {
@@ -3821,10 +3821,10 @@
3821
3821
  "name": "ISuperfluidToken",
3822
3822
  "nodeType": "IdentifierPath",
3823
3823
  "referencedDeclaration": 18721,
3824
- "src": "11692:16:40"
3824
+ "src": "11685:16:40"
3825
3825
  },
3826
3826
  "referencedDeclaration": 18721,
3827
- "src": "11692:16:40",
3827
+ "src": "11685:16:40",
3828
3828
  "typeDescriptions": {
3829
3829
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
3830
3830
  "typeString": "contract ISuperfluidToken"
@@ -3838,10 +3838,10 @@
3838
3838
  "indexed": true,
3839
3839
  "mutability": "mutable",
3840
3840
  "name": "publisher",
3841
- "nameLocation": "11748:9:40",
3841
+ "nameLocation": "11741:9:40",
3842
3842
  "nodeType": "VariableDeclaration",
3843
3843
  "scope": 16634,
3844
- "src": "11732:25:40",
3844
+ "src": "11725:25:40",
3845
3845
  "stateVariable": false,
3846
3846
  "storageLocation": "default",
3847
3847
  "typeDescriptions": {
@@ -3852,7 +3852,7 @@
3852
3852
  "id": 16623,
3853
3853
  "name": "address",
3854
3854
  "nodeType": "ElementaryTypeName",
3855
- "src": "11732:7:40",
3855
+ "src": "11725:7:40",
3856
3856
  "stateMutability": "nonpayable",
3857
3857
  "typeDescriptions": {
3858
3858
  "typeIdentifier": "t_address",
@@ -3867,10 +3867,10 @@
3867
3867
  "indexed": true,
3868
3868
  "mutability": "mutable",
3869
3869
  "name": "indexId",
3870
- "nameLocation": "11782:7:40",
3870
+ "nameLocation": "11775:7:40",
3871
3871
  "nodeType": "VariableDeclaration",
3872
3872
  "scope": 16634,
3873
- "src": "11767:22:40",
3873
+ "src": "11760:22:40",
3874
3874
  "stateVariable": false,
3875
3875
  "storageLocation": "default",
3876
3876
  "typeDescriptions": {
@@ -3881,7 +3881,7 @@
3881
3881
  "id": 16625,
3882
3882
  "name": "uint32",
3883
3883
  "nodeType": "ElementaryTypeName",
3884
- "src": "11767:6:40",
3884
+ "src": "11760:6:40",
3885
3885
  "typeDescriptions": {
3886
3886
  "typeIdentifier": "t_uint32",
3887
3887
  "typeString": "uint32"
@@ -3895,10 +3895,10 @@
3895
3895
  "indexed": false,
3896
3896
  "mutability": "mutable",
3897
3897
  "name": "subscriber",
3898
- "nameLocation": "11807:10:40",
3898
+ "nameLocation": "11800:10:40",
3899
3899
  "nodeType": "VariableDeclaration",
3900
3900
  "scope": 16634,
3901
- "src": "11799:18:40",
3901
+ "src": "11792:18:40",
3902
3902
  "stateVariable": false,
3903
3903
  "storageLocation": "default",
3904
3904
  "typeDescriptions": {
@@ -3909,7 +3909,7 @@
3909
3909
  "id": 16627,
3910
3910
  "name": "address",
3911
3911
  "nodeType": "ElementaryTypeName",
3912
- "src": "11799:7:40",
3912
+ "src": "11792:7:40",
3913
3913
  "stateMutability": "nonpayable",
3914
3914
  "typeDescriptions": {
3915
3915
  "typeIdentifier": "t_address",
@@ -3924,10 +3924,10 @@
3924
3924
  "indexed": false,
3925
3925
  "mutability": "mutable",
3926
3926
  "name": "units",
3927
- "nameLocation": "11835:5:40",
3927
+ "nameLocation": "11828:5:40",
3928
3928
  "nodeType": "VariableDeclaration",
3929
3929
  "scope": 16634,
3930
- "src": "11827:13:40",
3930
+ "src": "11820:13:40",
3931
3931
  "stateVariable": false,
3932
3932
  "storageLocation": "default",
3933
3933
  "typeDescriptions": {
@@ -3938,7 +3938,7 @@
3938
3938
  "id": 16629,
3939
3939
  "name": "uint128",
3940
3940
  "nodeType": "ElementaryTypeName",
3941
- "src": "11827:7:40",
3941
+ "src": "11820:7:40",
3942
3942
  "typeDescriptions": {
3943
3943
  "typeIdentifier": "t_uint128",
3944
3944
  "typeString": "uint128"
@@ -3952,10 +3952,10 @@
3952
3952
  "indexed": false,
3953
3953
  "mutability": "mutable",
3954
3954
  "name": "userData",
3955
- "nameLocation": "11856:8:40",
3955
+ "nameLocation": "11849:8:40",
3956
3956
  "nodeType": "VariableDeclaration",
3957
3957
  "scope": 16634,
3958
- "src": "11850:14:40",
3958
+ "src": "11843:14:40",
3959
3959
  "stateVariable": false,
3960
3960
  "storageLocation": "default",
3961
3961
  "typeDescriptions": {
@@ -3966,7 +3966,7 @@
3966
3966
  "id": 16631,
3967
3967
  "name": "bytes",
3968
3968
  "nodeType": "ElementaryTypeName",
3969
- "src": "11850:5:40",
3969
+ "src": "11843:5:40",
3970
3970
  "typeDescriptions": {
3971
3971
  "typeIdentifier": "t_bytes_storage_ptr",
3972
3972
  "typeString": "bytes"
@@ -3975,22 +3975,22 @@
3975
3975
  "visibility": "internal"
3976
3976
  }
3977
3977
  ],
3978
- "src": "11682:183:40"
3978
+ "src": "11675:183:40"
3979
3979
  },
3980
- "src": "11659:207:40"
3980
+ "src": "11652:207:40"
3981
3981
  },
3982
3982
  {
3983
3983
  "anonymous": false,
3984
3984
  "documentation": {
3985
3985
  "id": 16635,
3986
3986
  "nodeType": "StructuredDocumentation",
3987
- "src": "11876:329:40",
3987
+ "src": "11869:329:40",
3988
3988
  "text": " @dev Subscription units updated event\n @param token Super token address\n @param subscriber The subscriber units updated\n @param indexId The specified indexId\n @param publisher Index publisher\n @param units The new units amount\n @param userData The user provided data"
3989
3989
  },
3990
3990
  "eventSelector": "e0707ac7efb8b59c22189af8d004ed17dc9e4379e71b9066119b62c182524977",
3991
3991
  "id": 16650,
3992
3992
  "name": "SubscriptionUnitsUpdated",
3993
- "nameLocation": "12216:24:40",
3993
+ "nameLocation": "12209:24:40",
3994
3994
  "nodeType": "EventDefinition",
3995
3995
  "parameters": {
3996
3996
  "id": 16649,
@@ -4002,10 +4002,10 @@
4002
4002
  "indexed": true,
4003
4003
  "mutability": "mutable",
4004
4004
  "name": "token",
4005
- "nameLocation": "12275:5:40",
4005
+ "nameLocation": "12268:5:40",
4006
4006
  "nodeType": "VariableDeclaration",
4007
4007
  "scope": 16650,
4008
- "src": "12250:30:40",
4008
+ "src": "12243:30:40",
4009
4009
  "stateVariable": false,
4010
4010
  "storageLocation": "default",
4011
4011
  "typeDescriptions": {
@@ -4020,10 +4020,10 @@
4020
4020
  "name": "ISuperfluidToken",
4021
4021
  "nodeType": "IdentifierPath",
4022
4022
  "referencedDeclaration": 18721,
4023
- "src": "12250:16:40"
4023
+ "src": "12243:16:40"
4024
4024
  },
4025
4025
  "referencedDeclaration": 18721,
4026
- "src": "12250:16:40",
4026
+ "src": "12243:16:40",
4027
4027
  "typeDescriptions": {
4028
4028
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4029
4029
  "typeString": "contract ISuperfluidToken"
@@ -4037,10 +4037,10 @@
4037
4037
  "indexed": true,
4038
4038
  "mutability": "mutable",
4039
4039
  "name": "subscriber",
4040
- "nameLocation": "12306:10:40",
4040
+ "nameLocation": "12299:10:40",
4041
4041
  "nodeType": "VariableDeclaration",
4042
4042
  "scope": 16650,
4043
- "src": "12290:26:40",
4043
+ "src": "12283:26:40",
4044
4044
  "stateVariable": false,
4045
4045
  "storageLocation": "default",
4046
4046
  "typeDescriptions": {
@@ -4051,7 +4051,7 @@
4051
4051
  "id": 16639,
4052
4052
  "name": "address",
4053
4053
  "nodeType": "ElementaryTypeName",
4054
- "src": "12290:7:40",
4054
+ "src": "12283:7:40",
4055
4055
  "stateMutability": "nonpayable",
4056
4056
  "typeDescriptions": {
4057
4057
  "typeIdentifier": "t_address",
@@ -4066,10 +4066,10 @@
4066
4066
  "indexed": false,
4067
4067
  "mutability": "mutable",
4068
4068
  "name": "publisher",
4069
- "nameLocation": "12334:9:40",
4069
+ "nameLocation": "12327:9:40",
4070
4070
  "nodeType": "VariableDeclaration",
4071
4071
  "scope": 16650,
4072
- "src": "12326:17:40",
4072
+ "src": "12319:17:40",
4073
4073
  "stateVariable": false,
4074
4074
  "storageLocation": "default",
4075
4075
  "typeDescriptions": {
@@ -4080,7 +4080,7 @@
4080
4080
  "id": 16641,
4081
4081
  "name": "address",
4082
4082
  "nodeType": "ElementaryTypeName",
4083
- "src": "12326:7:40",
4083
+ "src": "12319:7:40",
4084
4084
  "stateMutability": "nonpayable",
4085
4085
  "typeDescriptions": {
4086
4086
  "typeIdentifier": "t_address",
@@ -4095,10 +4095,10 @@
4095
4095
  "indexed": false,
4096
4096
  "mutability": "mutable",
4097
4097
  "name": "indexId",
4098
- "nameLocation": "12360:7:40",
4098
+ "nameLocation": "12353:7:40",
4099
4099
  "nodeType": "VariableDeclaration",
4100
4100
  "scope": 16650,
4101
- "src": "12353:14:40",
4101
+ "src": "12346:14:40",
4102
4102
  "stateVariable": false,
4103
4103
  "storageLocation": "default",
4104
4104
  "typeDescriptions": {
@@ -4109,7 +4109,7 @@
4109
4109
  "id": 16643,
4110
4110
  "name": "uint32",
4111
4111
  "nodeType": "ElementaryTypeName",
4112
- "src": "12353:6:40",
4112
+ "src": "12346:6:40",
4113
4113
  "typeDescriptions": {
4114
4114
  "typeIdentifier": "t_uint32",
4115
4115
  "typeString": "uint32"
@@ -4123,10 +4123,10 @@
4123
4123
  "indexed": false,
4124
4124
  "mutability": "mutable",
4125
4125
  "name": "units",
4126
- "nameLocation": "12385:5:40",
4126
+ "nameLocation": "12378:5:40",
4127
4127
  "nodeType": "VariableDeclaration",
4128
4128
  "scope": 16650,
4129
- "src": "12377:13:40",
4129
+ "src": "12370:13:40",
4130
4130
  "stateVariable": false,
4131
4131
  "storageLocation": "default",
4132
4132
  "typeDescriptions": {
@@ -4137,7 +4137,7 @@
4137
4137
  "id": 16645,
4138
4138
  "name": "uint128",
4139
4139
  "nodeType": "ElementaryTypeName",
4140
- "src": "12377:7:40",
4140
+ "src": "12370:7:40",
4141
4141
  "typeDescriptions": {
4142
4142
  "typeIdentifier": "t_uint128",
4143
4143
  "typeString": "uint128"
@@ -4151,10 +4151,10 @@
4151
4151
  "indexed": false,
4152
4152
  "mutability": "mutable",
4153
4153
  "name": "userData",
4154
- "nameLocation": "12406:8:40",
4154
+ "nameLocation": "12399:8:40",
4155
4155
  "nodeType": "VariableDeclaration",
4156
4156
  "scope": 16650,
4157
- "src": "12400:14:40",
4157
+ "src": "12393:14:40",
4158
4158
  "stateVariable": false,
4159
4159
  "storageLocation": "default",
4160
4160
  "typeDescriptions": {
@@ -4165,7 +4165,7 @@
4165
4165
  "id": 16647,
4166
4166
  "name": "bytes",
4167
4167
  "nodeType": "ElementaryTypeName",
4168
- "src": "12400:5:40",
4168
+ "src": "12393:5:40",
4169
4169
  "typeDescriptions": {
4170
4170
  "typeIdentifier": "t_bytes_storage_ptr",
4171
4171
  "typeString": "bytes"
@@ -4174,15 +4174,15 @@
4174
4174
  "visibility": "internal"
4175
4175
  }
4176
4176
  ],
4177
- "src": "12240:175:40"
4177
+ "src": "12233:175:40"
4178
4178
  },
4179
- "src": "12210:206:40"
4179
+ "src": "12203:206:40"
4180
4180
  },
4181
4181
  {
4182
4182
  "documentation": {
4183
4183
  "id": 16651,
4184
4184
  "nodeType": "StructuredDocumentation",
4185
- "src": "12422:488:40",
4185
+ "src": "12415:488:40",
4186
4186
  "text": " @dev Get data of a subscription\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param subscriber The subscriber of the index\n @return exist Does the subscription exist?\n @return approved Is the subscription approved?\n @return units Units of the suscription\n @return pendingDistribution Pending amount of tokens to be distributed for unapproved subscription"
4187
4187
  },
4188
4188
  "functionSelector": "5b534051",
@@ -4191,7 +4191,7 @@
4191
4191
  "kind": "function",
4192
4192
  "modifiers": [],
4193
4193
  "name": "getSubscription",
4194
- "nameLocation": "12924:15:40",
4194
+ "nameLocation": "12917:15:40",
4195
4195
  "nodeType": "FunctionDefinition",
4196
4196
  "parameters": {
4197
4197
  "id": 16661,
@@ -4202,10 +4202,10 @@
4202
4202
  "id": 16654,
4203
4203
  "mutability": "mutable",
4204
4204
  "name": "token",
4205
- "nameLocation": "12966:5:40",
4205
+ "nameLocation": "12959:5:40",
4206
4206
  "nodeType": "VariableDeclaration",
4207
4207
  "scope": 16671,
4208
- "src": "12949:22:40",
4208
+ "src": "12942:22:40",
4209
4209
  "stateVariable": false,
4210
4210
  "storageLocation": "default",
4211
4211
  "typeDescriptions": {
@@ -4220,10 +4220,10 @@
4220
4220
  "name": "ISuperfluidToken",
4221
4221
  "nodeType": "IdentifierPath",
4222
4222
  "referencedDeclaration": 18721,
4223
- "src": "12949:16:40"
4223
+ "src": "12942:16:40"
4224
4224
  },
4225
4225
  "referencedDeclaration": 18721,
4226
- "src": "12949:16:40",
4226
+ "src": "12942:16:40",
4227
4227
  "typeDescriptions": {
4228
4228
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4229
4229
  "typeString": "contract ISuperfluidToken"
@@ -4236,10 +4236,10 @@
4236
4236
  "id": 16656,
4237
4237
  "mutability": "mutable",
4238
4238
  "name": "publisher",
4239
- "nameLocation": "12989:9:40",
4239
+ "nameLocation": "12982:9:40",
4240
4240
  "nodeType": "VariableDeclaration",
4241
4241
  "scope": 16671,
4242
- "src": "12981:17:40",
4242
+ "src": "12974:17:40",
4243
4243
  "stateVariable": false,
4244
4244
  "storageLocation": "default",
4245
4245
  "typeDescriptions": {
@@ -4250,7 +4250,7 @@
4250
4250
  "id": 16655,
4251
4251
  "name": "address",
4252
4252
  "nodeType": "ElementaryTypeName",
4253
- "src": "12981:7:40",
4253
+ "src": "12974:7:40",
4254
4254
  "stateMutability": "nonpayable",
4255
4255
  "typeDescriptions": {
4256
4256
  "typeIdentifier": "t_address",
@@ -4264,10 +4264,10 @@
4264
4264
  "id": 16658,
4265
4265
  "mutability": "mutable",
4266
4266
  "name": "indexId",
4267
- "nameLocation": "13015:7:40",
4267
+ "nameLocation": "13008:7:40",
4268
4268
  "nodeType": "VariableDeclaration",
4269
4269
  "scope": 16671,
4270
- "src": "13008:14:40",
4270
+ "src": "13001:14:40",
4271
4271
  "stateVariable": false,
4272
4272
  "storageLocation": "default",
4273
4273
  "typeDescriptions": {
@@ -4278,7 +4278,7 @@
4278
4278
  "id": 16657,
4279
4279
  "name": "uint32",
4280
4280
  "nodeType": "ElementaryTypeName",
4281
- "src": "13008:6:40",
4281
+ "src": "13001:6:40",
4282
4282
  "typeDescriptions": {
4283
4283
  "typeIdentifier": "t_uint32",
4284
4284
  "typeString": "uint32"
@@ -4291,10 +4291,10 @@
4291
4291
  "id": 16660,
4292
4292
  "mutability": "mutable",
4293
4293
  "name": "subscriber",
4294
- "nameLocation": "13040:10:40",
4294
+ "nameLocation": "13033:10:40",
4295
4295
  "nodeType": "VariableDeclaration",
4296
4296
  "scope": 16671,
4297
- "src": "13032:18:40",
4297
+ "src": "13025:18:40",
4298
4298
  "stateVariable": false,
4299
4299
  "storageLocation": "default",
4300
4300
  "typeDescriptions": {
@@ -4305,7 +4305,7 @@
4305
4305
  "id": 16659,
4306
4306
  "name": "address",
4307
4307
  "nodeType": "ElementaryTypeName",
4308
- "src": "13032:7:40",
4308
+ "src": "13025:7:40",
4309
4309
  "stateMutability": "nonpayable",
4310
4310
  "typeDescriptions": {
4311
4311
  "typeIdentifier": "t_address",
@@ -4315,7 +4315,7 @@
4315
4315
  "visibility": "internal"
4316
4316
  }
4317
4317
  ],
4318
- "src": "12939:112:40"
4318
+ "src": "12932:112:40"
4319
4319
  },
4320
4320
  "returnParameters": {
4321
4321
  "id": 16670,
@@ -4326,10 +4326,10 @@
4326
4326
  "id": 16663,
4327
4327
  "mutability": "mutable",
4328
4328
  "name": "exist",
4329
- "nameLocation": "13152:5:40",
4329
+ "nameLocation": "13145:5:40",
4330
4330
  "nodeType": "VariableDeclaration",
4331
4331
  "scope": 16671,
4332
- "src": "13147:10:40",
4332
+ "src": "13140:10:40",
4333
4333
  "stateVariable": false,
4334
4334
  "storageLocation": "default",
4335
4335
  "typeDescriptions": {
@@ -4340,7 +4340,7 @@
4340
4340
  "id": 16662,
4341
4341
  "name": "bool",
4342
4342
  "nodeType": "ElementaryTypeName",
4343
- "src": "13147:4:40",
4343
+ "src": "13140:4:40",
4344
4344
  "typeDescriptions": {
4345
4345
  "typeIdentifier": "t_bool",
4346
4346
  "typeString": "bool"
@@ -4353,10 +4353,10 @@
4353
4353
  "id": 16665,
4354
4354
  "mutability": "mutable",
4355
4355
  "name": "approved",
4356
- "nameLocation": "13180:8:40",
4356
+ "nameLocation": "13173:8:40",
4357
4357
  "nodeType": "VariableDeclaration",
4358
4358
  "scope": 16671,
4359
- "src": "13175:13:40",
4359
+ "src": "13168:13:40",
4360
4360
  "stateVariable": false,
4361
4361
  "storageLocation": "default",
4362
4362
  "typeDescriptions": {
@@ -4367,7 +4367,7 @@
4367
4367
  "id": 16664,
4368
4368
  "name": "bool",
4369
4369
  "nodeType": "ElementaryTypeName",
4370
- "src": "13175:4:40",
4370
+ "src": "13168:4:40",
4371
4371
  "typeDescriptions": {
4372
4372
  "typeIdentifier": "t_bool",
4373
4373
  "typeString": "bool"
@@ -4380,10 +4380,10 @@
4380
4380
  "id": 16667,
4381
4381
  "mutability": "mutable",
4382
4382
  "name": "units",
4383
- "nameLocation": "13214:5:40",
4383
+ "nameLocation": "13207:5:40",
4384
4384
  "nodeType": "VariableDeclaration",
4385
4385
  "scope": 16671,
4386
- "src": "13206:13:40",
4386
+ "src": "13199:13:40",
4387
4387
  "stateVariable": false,
4388
4388
  "storageLocation": "default",
4389
4389
  "typeDescriptions": {
@@ -4394,7 +4394,7 @@
4394
4394
  "id": 16666,
4395
4395
  "name": "uint128",
4396
4396
  "nodeType": "ElementaryTypeName",
4397
- "src": "13206:7:40",
4397
+ "src": "13199:7:40",
4398
4398
  "typeDescriptions": {
4399
4399
  "typeIdentifier": "t_uint128",
4400
4400
  "typeString": "uint128"
@@ -4407,10 +4407,10 @@
4407
4407
  "id": 16669,
4408
4408
  "mutability": "mutable",
4409
4409
  "name": "pendingDistribution",
4410
- "nameLocation": "13245:19:40",
4410
+ "nameLocation": "13238:19:40",
4411
4411
  "nodeType": "VariableDeclaration",
4412
4412
  "scope": 16671,
4413
- "src": "13237:27:40",
4413
+ "src": "13230:27:40",
4414
4414
  "stateVariable": false,
4415
4415
  "storageLocation": "default",
4416
4416
  "typeDescriptions": {
@@ -4421,7 +4421,7 @@
4421
4421
  "id": 16668,
4422
4422
  "name": "uint256",
4423
4423
  "nodeType": "ElementaryTypeName",
4424
- "src": "13237:7:40",
4424
+ "src": "13230:7:40",
4425
4425
  "typeDescriptions": {
4426
4426
  "typeIdentifier": "t_uint256",
4427
4427
  "typeString": "uint256"
@@ -4430,10 +4430,10 @@
4430
4430
  "visibility": "internal"
4431
4431
  }
4432
4432
  ],
4433
- "src": "13129:149:40"
4433
+ "src": "13122:149:40"
4434
4434
  },
4435
4435
  "scope": 16771,
4436
- "src": "12915:364:40",
4436
+ "src": "12908:364:40",
4437
4437
  "stateMutability": "view",
4438
4438
  "virtual": true,
4439
4439
  "visibility": "external"
@@ -4442,7 +4442,7 @@
4442
4442
  "documentation": {
4443
4443
  "id": 16672,
4444
4444
  "nodeType": "StructuredDocumentation",
4445
- "src": "13285:554:40",
4445
+ "src": "13278:554:40",
4446
4446
  "text": " @notice Get data of a subscription by agreement ID\n @dev indexId (agreementId) is the keccak256 hash of encodePacked(\"publisher\", publisher, indexId)\n @param token Super token address\n @param agreementId The agreement ID\n @return publisher The publisher of the index\n @return indexId Id of the index\n @return approved Is the subscription approved?\n @return units Units of the suscription\n @return pendingDistribution Pending amount of tokens to be distributed for unapproved subscription"
4447
4447
  },
4448
4448
  "functionSelector": "cd7245c5",
@@ -4451,7 +4451,7 @@
4451
4451
  "kind": "function",
4452
4452
  "modifiers": [],
4453
4453
  "name": "getSubscriptionByID",
4454
- "nameLocation": "13853:19:40",
4454
+ "nameLocation": "13846:19:40",
4455
4455
  "nodeType": "FunctionDefinition",
4456
4456
  "parameters": {
4457
4457
  "id": 16678,
@@ -4462,10 +4462,10 @@
4462
4462
  "id": 16675,
4463
4463
  "mutability": "mutable",
4464
4464
  "name": "token",
4465
- "nameLocation": "13899:5:40",
4465
+ "nameLocation": "13892:5:40",
4466
4466
  "nodeType": "VariableDeclaration",
4467
4467
  "scope": 16690,
4468
- "src": "13882:22:40",
4468
+ "src": "13875:22:40",
4469
4469
  "stateVariable": false,
4470
4470
  "storageLocation": "default",
4471
4471
  "typeDescriptions": {
@@ -4480,10 +4480,10 @@
4480
4480
  "name": "ISuperfluidToken",
4481
4481
  "nodeType": "IdentifierPath",
4482
4482
  "referencedDeclaration": 18721,
4483
- "src": "13882:16:40"
4483
+ "src": "13875:16:40"
4484
4484
  },
4485
4485
  "referencedDeclaration": 18721,
4486
- "src": "13882:16:40",
4486
+ "src": "13875:16:40",
4487
4487
  "typeDescriptions": {
4488
4488
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4489
4489
  "typeString": "contract ISuperfluidToken"
@@ -4496,10 +4496,10 @@
4496
4496
  "id": 16677,
4497
4497
  "mutability": "mutable",
4498
4498
  "name": "agreementId",
4499
- "nameLocation": "13922:11:40",
4499
+ "nameLocation": "13915:11:40",
4500
4500
  "nodeType": "VariableDeclaration",
4501
4501
  "scope": 16690,
4502
- "src": "13914:19:40",
4502
+ "src": "13907:19:40",
4503
4503
  "stateVariable": false,
4504
4504
  "storageLocation": "default",
4505
4505
  "typeDescriptions": {
@@ -4510,7 +4510,7 @@
4510
4510
  "id": 16676,
4511
4511
  "name": "bytes32",
4512
4512
  "nodeType": "ElementaryTypeName",
4513
- "src": "13914:7:40",
4513
+ "src": "13907:7:40",
4514
4514
  "typeDescriptions": {
4515
4515
  "typeIdentifier": "t_bytes32",
4516
4516
  "typeString": "bytes32"
@@ -4519,7 +4519,7 @@
4519
4519
  "visibility": "internal"
4520
4520
  }
4521
4521
  ],
4522
- "src": "13872:62:40"
4522
+ "src": "13865:62:40"
4523
4523
  },
4524
4524
  "returnParameters": {
4525
4525
  "id": 16689,
@@ -4530,10 +4530,10 @@
4530
4530
  "id": 16680,
4531
4531
  "mutability": "mutable",
4532
4532
  "name": "publisher",
4533
- "nameLocation": "14038:9:40",
4533
+ "nameLocation": "14031:9:40",
4534
4534
  "nodeType": "VariableDeclaration",
4535
4535
  "scope": 16690,
4536
- "src": "14030:17:40",
4536
+ "src": "14023:17:40",
4537
4537
  "stateVariable": false,
4538
4538
  "storageLocation": "default",
4539
4539
  "typeDescriptions": {
@@ -4544,7 +4544,7 @@
4544
4544
  "id": 16679,
4545
4545
  "name": "address",
4546
4546
  "nodeType": "ElementaryTypeName",
4547
- "src": "14030:7:40",
4547
+ "src": "14023:7:40",
4548
4548
  "stateMutability": "nonpayable",
4549
4549
  "typeDescriptions": {
4550
4550
  "typeIdentifier": "t_address",
@@ -4558,10 +4558,10 @@
4558
4558
  "id": 16682,
4559
4559
  "mutability": "mutable",
4560
4560
  "name": "indexId",
4561
- "nameLocation": "14072:7:40",
4561
+ "nameLocation": "14065:7:40",
4562
4562
  "nodeType": "VariableDeclaration",
4563
4563
  "scope": 16690,
4564
- "src": "14065:14:40",
4564
+ "src": "14058:14:40",
4565
4565
  "stateVariable": false,
4566
4566
  "storageLocation": "default",
4567
4567
  "typeDescriptions": {
@@ -4572,7 +4572,7 @@
4572
4572
  "id": 16681,
4573
4573
  "name": "uint32",
4574
4574
  "nodeType": "ElementaryTypeName",
4575
- "src": "14065:6:40",
4575
+ "src": "14058:6:40",
4576
4576
  "typeDescriptions": {
4577
4577
  "typeIdentifier": "t_uint32",
4578
4578
  "typeString": "uint32"
@@ -4585,10 +4585,10 @@
4585
4585
  "id": 16684,
4586
4586
  "mutability": "mutable",
4587
4587
  "name": "approved",
4588
- "nameLocation": "14102:8:40",
4588
+ "nameLocation": "14095:8:40",
4589
4589
  "nodeType": "VariableDeclaration",
4590
4590
  "scope": 16690,
4591
- "src": "14097:13:40",
4591
+ "src": "14090:13:40",
4592
4592
  "stateVariable": false,
4593
4593
  "storageLocation": "default",
4594
4594
  "typeDescriptions": {
@@ -4599,7 +4599,7 @@
4599
4599
  "id": 16683,
4600
4600
  "name": "bool",
4601
4601
  "nodeType": "ElementaryTypeName",
4602
- "src": "14097:4:40",
4602
+ "src": "14090:4:40",
4603
4603
  "typeDescriptions": {
4604
4604
  "typeIdentifier": "t_bool",
4605
4605
  "typeString": "bool"
@@ -4612,10 +4612,10 @@
4612
4612
  "id": 16686,
4613
4613
  "mutability": "mutable",
4614
4614
  "name": "units",
4615
- "nameLocation": "14136:5:40",
4615
+ "nameLocation": "14129:5:40",
4616
4616
  "nodeType": "VariableDeclaration",
4617
4617
  "scope": 16690,
4618
- "src": "14128:13:40",
4618
+ "src": "14121:13:40",
4619
4619
  "stateVariable": false,
4620
4620
  "storageLocation": "default",
4621
4621
  "typeDescriptions": {
@@ -4626,7 +4626,7 @@
4626
4626
  "id": 16685,
4627
4627
  "name": "uint128",
4628
4628
  "nodeType": "ElementaryTypeName",
4629
- "src": "14128:7:40",
4629
+ "src": "14121:7:40",
4630
4630
  "typeDescriptions": {
4631
4631
  "typeIdentifier": "t_uint128",
4632
4632
  "typeString": "uint128"
@@ -4639,10 +4639,10 @@
4639
4639
  "id": 16688,
4640
4640
  "mutability": "mutable",
4641
4641
  "name": "pendingDistribution",
4642
- "nameLocation": "14167:19:40",
4642
+ "nameLocation": "14160:19:40",
4643
4643
  "nodeType": "VariableDeclaration",
4644
4644
  "scope": 16690,
4645
- "src": "14159:27:40",
4645
+ "src": "14152:27:40",
4646
4646
  "stateVariable": false,
4647
4647
  "storageLocation": "default",
4648
4648
  "typeDescriptions": {
@@ -4653,7 +4653,7 @@
4653
4653
  "id": 16687,
4654
4654
  "name": "uint256",
4655
4655
  "nodeType": "ElementaryTypeName",
4656
- "src": "14159:7:40",
4656
+ "src": "14152:7:40",
4657
4657
  "typeDescriptions": {
4658
4658
  "typeIdentifier": "t_uint256",
4659
4659
  "typeString": "uint256"
@@ -4662,10 +4662,10 @@
4662
4662
  "visibility": "internal"
4663
4663
  }
4664
4664
  ],
4665
- "src": "14012:188:40"
4665
+ "src": "14005:188:40"
4666
4666
  },
4667
4667
  "scope": 16771,
4668
- "src": "13844:357:40",
4668
+ "src": "13837:357:40",
4669
4669
  "stateMutability": "view",
4670
4670
  "virtual": true,
4671
4671
  "visibility": "external"
@@ -4674,7 +4674,7 @@
4674
4674
  "documentation": {
4675
4675
  "id": 16691,
4676
4676
  "nodeType": "StructuredDocumentation",
4677
- "src": "14207:305:40",
4677
+ "src": "14200:305:40",
4678
4678
  "text": " @dev List subscriptions of an user\n @param token Super token address\n @param subscriber The subscriber's address\n @return publishers Publishers of the subcriptions\n @return indexIds Indexes of the subscriptions\n @return unitsList Units of the subscriptions"
4679
4679
  },
4680
4680
  "functionSelector": "b6dacdb8",
@@ -4683,7 +4683,7 @@
4683
4683
  "kind": "function",
4684
4684
  "modifiers": [],
4685
4685
  "name": "listSubscriptions",
4686
- "nameLocation": "14526:17:40",
4686
+ "nameLocation": "14519:17:40",
4687
4687
  "nodeType": "FunctionDefinition",
4688
4688
  "parameters": {
4689
4689
  "id": 16697,
@@ -4694,10 +4694,10 @@
4694
4694
  "id": 16694,
4695
4695
  "mutability": "mutable",
4696
4696
  "name": "token",
4697
- "nameLocation": "14570:5:40",
4697
+ "nameLocation": "14563:5:40",
4698
4698
  "nodeType": "VariableDeclaration",
4699
4699
  "scope": 16708,
4700
- "src": "14553:22:40",
4700
+ "src": "14546:22:40",
4701
4701
  "stateVariable": false,
4702
4702
  "storageLocation": "default",
4703
4703
  "typeDescriptions": {
@@ -4712,10 +4712,10 @@
4712
4712
  "name": "ISuperfluidToken",
4713
4713
  "nodeType": "IdentifierPath",
4714
4714
  "referencedDeclaration": 18721,
4715
- "src": "14553:16:40"
4715
+ "src": "14546:16:40"
4716
4716
  },
4717
4717
  "referencedDeclaration": 18721,
4718
- "src": "14553:16:40",
4718
+ "src": "14546:16:40",
4719
4719
  "typeDescriptions": {
4720
4720
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4721
4721
  "typeString": "contract ISuperfluidToken"
@@ -4728,10 +4728,10 @@
4728
4728
  "id": 16696,
4729
4729
  "mutability": "mutable",
4730
4730
  "name": "subscriber",
4731
- "nameLocation": "14593:10:40",
4731
+ "nameLocation": "14586:10:40",
4732
4732
  "nodeType": "VariableDeclaration",
4733
4733
  "scope": 16708,
4734
- "src": "14585:18:40",
4734
+ "src": "14578:18:40",
4735
4735
  "stateVariable": false,
4736
4736
  "storageLocation": "default",
4737
4737
  "typeDescriptions": {
@@ -4742,7 +4742,7 @@
4742
4742
  "id": 16695,
4743
4743
  "name": "address",
4744
4744
  "nodeType": "ElementaryTypeName",
4745
- "src": "14585:7:40",
4745
+ "src": "14578:7:40",
4746
4746
  "stateMutability": "nonpayable",
4747
4747
  "typeDescriptions": {
4748
4748
  "typeIdentifier": "t_address",
@@ -4752,7 +4752,7 @@
4752
4752
  "visibility": "internal"
4753
4753
  }
4754
4754
  ],
4755
- "src": "14543:61:40"
4755
+ "src": "14536:61:40"
4756
4756
  },
4757
4757
  "returnParameters": {
4758
4758
  "id": 16707,
@@ -4763,10 +4763,10 @@
4763
4763
  "id": 16700,
4764
4764
  "mutability": "mutable",
4765
4765
  "name": "publishers",
4766
- "nameLocation": "14717:10:40",
4766
+ "nameLocation": "14710:10:40",
4767
4767
  "nodeType": "VariableDeclaration",
4768
4768
  "scope": 16708,
4769
- "src": "14700:27:40",
4769
+ "src": "14693:27:40",
4770
4770
  "stateVariable": false,
4771
4771
  "storageLocation": "memory",
4772
4772
  "typeDescriptions": {
@@ -4778,7 +4778,7 @@
4778
4778
  "id": 16698,
4779
4779
  "name": "address",
4780
4780
  "nodeType": "ElementaryTypeName",
4781
- "src": "14700:7:40",
4781
+ "src": "14693:7:40",
4782
4782
  "stateMutability": "nonpayable",
4783
4783
  "typeDescriptions": {
4784
4784
  "typeIdentifier": "t_address",
@@ -4787,7 +4787,7 @@
4787
4787
  },
4788
4788
  "id": 16699,
4789
4789
  "nodeType": "ArrayTypeName",
4790
- "src": "14700:9:40",
4790
+ "src": "14693:9:40",
4791
4791
  "typeDescriptions": {
4792
4792
  "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
4793
4793
  "typeString": "address[]"
@@ -4800,10 +4800,10 @@
4800
4800
  "id": 16703,
4801
4801
  "mutability": "mutable",
4802
4802
  "name": "indexIds",
4803
- "nameLocation": "14761:8:40",
4803
+ "nameLocation": "14754:8:40",
4804
4804
  "nodeType": "VariableDeclaration",
4805
4805
  "scope": 16708,
4806
- "src": "14745:24:40",
4806
+ "src": "14738:24:40",
4807
4807
  "stateVariable": false,
4808
4808
  "storageLocation": "memory",
4809
4809
  "typeDescriptions": {
@@ -4815,7 +4815,7 @@
4815
4815
  "id": 16701,
4816
4816
  "name": "uint32",
4817
4817
  "nodeType": "ElementaryTypeName",
4818
- "src": "14745:6:40",
4818
+ "src": "14738:6:40",
4819
4819
  "typeDescriptions": {
4820
4820
  "typeIdentifier": "t_uint32",
4821
4821
  "typeString": "uint32"
@@ -4823,7 +4823,7 @@
4823
4823
  },
4824
4824
  "id": 16702,
4825
4825
  "nodeType": "ArrayTypeName",
4826
- "src": "14745:8:40",
4826
+ "src": "14738:8:40",
4827
4827
  "typeDescriptions": {
4828
4828
  "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr",
4829
4829
  "typeString": "uint32[]"
@@ -4836,10 +4836,10 @@
4836
4836
  "id": 16706,
4837
4837
  "mutability": "mutable",
4838
4838
  "name": "unitsList",
4839
- "nameLocation": "14804:9:40",
4839
+ "nameLocation": "14797:9:40",
4840
4840
  "nodeType": "VariableDeclaration",
4841
4841
  "scope": 16708,
4842
- "src": "14787:26:40",
4842
+ "src": "14780:26:40",
4843
4843
  "stateVariable": false,
4844
4844
  "storageLocation": "memory",
4845
4845
  "typeDescriptions": {
@@ -4851,7 +4851,7 @@
4851
4851
  "id": 16704,
4852
4852
  "name": "uint128",
4853
4853
  "nodeType": "ElementaryTypeName",
4854
- "src": "14787:7:40",
4854
+ "src": "14780:7:40",
4855
4855
  "typeDescriptions": {
4856
4856
  "typeIdentifier": "t_uint128",
4857
4857
  "typeString": "uint128"
@@ -4859,7 +4859,7 @@
4859
4859
  },
4860
4860
  "id": 16705,
4861
4861
  "nodeType": "ArrayTypeName",
4862
- "src": "14787:9:40",
4862
+ "src": "14780:9:40",
4863
4863
  "typeDescriptions": {
4864
4864
  "typeIdentifier": "t_array$_t_uint128_$dyn_storage_ptr",
4865
4865
  "typeString": "uint128[]"
@@ -4868,10 +4868,10 @@
4868
4868
  "visibility": "internal"
4869
4869
  }
4870
4870
  ],
4871
- "src": "14682:132:40"
4871
+ "src": "14675:132:40"
4872
4872
  },
4873
4873
  "scope": 16771,
4874
- "src": "14517:298:40",
4874
+ "src": "14510:298:40",
4875
4875
  "stateMutability": "view",
4876
4876
  "virtual": true,
4877
4877
  "visibility": "external"
@@ -4880,8 +4880,8 @@
4880
4880
  "documentation": {
4881
4881
  "id": 16709,
4882
4882
  "nodeType": "StructuredDocumentation",
4883
- "src": "14821:637:40",
4884
- "text": " @dev Delete the subscription of an user\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param subscriber The subscriber's address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n # App callbacks\n - if the subscriber called it\n - AgreementTerminated callback to the publsiher:\n - agreementId is for the subscription\n - if the publisher called it\n - AgreementTerminated callback to the subscriber:\n - agreementId is for the subscription"
4883
+ "src": "14814:633:40",
4884
+ "text": " @dev Delete the subscription of an user\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param subscriber The subscriber's address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:callbacks \n - if the subscriber called it\n - AgreementTerminated callback to the publsiher:\n - agreementId is for the subscription\n - if the publisher called it\n - AgreementTerminated callback to the subscriber:\n - agreementId is for the subscription"
4885
4885
  },
4886
4886
  "functionSelector": "2e5e74c6",
4887
4887
  "id": 16725,
@@ -4889,7 +4889,7 @@
4889
4889
  "kind": "function",
4890
4890
  "modifiers": [],
4891
4891
  "name": "deleteSubscription",
4892
- "nameLocation": "15472:18:40",
4892
+ "nameLocation": "15461:18:40",
4893
4893
  "nodeType": "FunctionDefinition",
4894
4894
  "parameters": {
4895
4895
  "id": 16721,
@@ -4900,10 +4900,10 @@
4900
4900
  "id": 16712,
4901
4901
  "mutability": "mutable",
4902
4902
  "name": "token",
4903
- "nameLocation": "15517:5:40",
4903
+ "nameLocation": "15506:5:40",
4904
4904
  "nodeType": "VariableDeclaration",
4905
4905
  "scope": 16725,
4906
- "src": "15500:22:40",
4906
+ "src": "15489:22:40",
4907
4907
  "stateVariable": false,
4908
4908
  "storageLocation": "default",
4909
4909
  "typeDescriptions": {
@@ -4918,10 +4918,10 @@
4918
4918
  "name": "ISuperfluidToken",
4919
4919
  "nodeType": "IdentifierPath",
4920
4920
  "referencedDeclaration": 18721,
4921
- "src": "15500:16:40"
4921
+ "src": "15489:16:40"
4922
4922
  },
4923
4923
  "referencedDeclaration": 18721,
4924
- "src": "15500:16:40",
4924
+ "src": "15489:16:40",
4925
4925
  "typeDescriptions": {
4926
4926
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
4927
4927
  "typeString": "contract ISuperfluidToken"
@@ -4934,10 +4934,10 @@
4934
4934
  "id": 16714,
4935
4935
  "mutability": "mutable",
4936
4936
  "name": "publisher",
4937
- "nameLocation": "15540:9:40",
4937
+ "nameLocation": "15529:9:40",
4938
4938
  "nodeType": "VariableDeclaration",
4939
4939
  "scope": 16725,
4940
- "src": "15532:17:40",
4940
+ "src": "15521:17:40",
4941
4941
  "stateVariable": false,
4942
4942
  "storageLocation": "default",
4943
4943
  "typeDescriptions": {
@@ -4948,7 +4948,7 @@
4948
4948
  "id": 16713,
4949
4949
  "name": "address",
4950
4950
  "nodeType": "ElementaryTypeName",
4951
- "src": "15532:7:40",
4951
+ "src": "15521:7:40",
4952
4952
  "stateMutability": "nonpayable",
4953
4953
  "typeDescriptions": {
4954
4954
  "typeIdentifier": "t_address",
@@ -4962,10 +4962,10 @@
4962
4962
  "id": 16716,
4963
4963
  "mutability": "mutable",
4964
4964
  "name": "indexId",
4965
- "nameLocation": "15566:7:40",
4965
+ "nameLocation": "15555:7:40",
4966
4966
  "nodeType": "VariableDeclaration",
4967
4967
  "scope": 16725,
4968
- "src": "15559:14:40",
4968
+ "src": "15548:14:40",
4969
4969
  "stateVariable": false,
4970
4970
  "storageLocation": "default",
4971
4971
  "typeDescriptions": {
@@ -4976,7 +4976,7 @@
4976
4976
  "id": 16715,
4977
4977
  "name": "uint32",
4978
4978
  "nodeType": "ElementaryTypeName",
4979
- "src": "15559:6:40",
4979
+ "src": "15548:6:40",
4980
4980
  "typeDescriptions": {
4981
4981
  "typeIdentifier": "t_uint32",
4982
4982
  "typeString": "uint32"
@@ -4989,10 +4989,10 @@
4989
4989
  "id": 16718,
4990
4990
  "mutability": "mutable",
4991
4991
  "name": "subscriber",
4992
- "nameLocation": "15591:10:40",
4992
+ "nameLocation": "15580:10:40",
4993
4993
  "nodeType": "VariableDeclaration",
4994
4994
  "scope": 16725,
4995
- "src": "15583:18:40",
4995
+ "src": "15572:18:40",
4996
4996
  "stateVariable": false,
4997
4997
  "storageLocation": "default",
4998
4998
  "typeDescriptions": {
@@ -5003,7 +5003,7 @@
5003
5003
  "id": 16717,
5004
5004
  "name": "address",
5005
5005
  "nodeType": "ElementaryTypeName",
5006
- "src": "15583:7:40",
5006
+ "src": "15572:7:40",
5007
5007
  "stateMutability": "nonpayable",
5008
5008
  "typeDescriptions": {
5009
5009
  "typeIdentifier": "t_address",
@@ -5017,10 +5017,10 @@
5017
5017
  "id": 16720,
5018
5018
  "mutability": "mutable",
5019
5019
  "name": "ctx",
5020
- "nameLocation": "15626:3:40",
5020
+ "nameLocation": "15615:3:40",
5021
5021
  "nodeType": "VariableDeclaration",
5022
5022
  "scope": 16725,
5023
- "src": "15611:18:40",
5023
+ "src": "15600:18:40",
5024
5024
  "stateVariable": false,
5025
5025
  "storageLocation": "calldata",
5026
5026
  "typeDescriptions": {
@@ -5031,7 +5031,7 @@
5031
5031
  "id": 16719,
5032
5032
  "name": "bytes",
5033
5033
  "nodeType": "ElementaryTypeName",
5034
- "src": "15611:5:40",
5034
+ "src": "15600:5:40",
5035
5035
  "typeDescriptions": {
5036
5036
  "typeIdentifier": "t_bytes_storage_ptr",
5037
5037
  "typeString": "bytes"
@@ -5040,7 +5040,7 @@
5040
5040
  "visibility": "internal"
5041
5041
  }
5042
5042
  ],
5043
- "src": "15490:140:40"
5043
+ "src": "15479:140:40"
5044
5044
  },
5045
5045
  "returnParameters": {
5046
5046
  "id": 16724,
@@ -5051,10 +5051,10 @@
5051
5051
  "id": 16723,
5052
5052
  "mutability": "mutable",
5053
5053
  "name": "newCtx",
5054
- "nameLocation": "15705:6:40",
5054
+ "nameLocation": "15694:6:40",
5055
5055
  "nodeType": "VariableDeclaration",
5056
5056
  "scope": 16725,
5057
- "src": "15692:19:40",
5057
+ "src": "15681:19:40",
5058
5058
  "stateVariable": false,
5059
5059
  "storageLocation": "memory",
5060
5060
  "typeDescriptions": {
@@ -5065,7 +5065,7 @@
5065
5065
  "id": 16722,
5066
5066
  "name": "bytes",
5067
5067
  "nodeType": "ElementaryTypeName",
5068
- "src": "15692:5:40",
5068
+ "src": "15681:5:40",
5069
5069
  "typeDescriptions": {
5070
5070
  "typeIdentifier": "t_bytes_storage_ptr",
5071
5071
  "typeString": "bytes"
@@ -5074,10 +5074,10 @@
5074
5074
  "visibility": "internal"
5075
5075
  }
5076
5076
  ],
5077
- "src": "15691:21:40"
5077
+ "src": "15680:21:40"
5078
5078
  },
5079
5079
  "scope": 16771,
5080
- "src": "15463:250:40",
5080
+ "src": "15452:250:40",
5081
5081
  "stateMutability": "nonpayable",
5082
5082
  "virtual": true,
5083
5083
  "visibility": "external"
@@ -5086,8 +5086,8 @@
5086
5086
  "documentation": {
5087
5087
  "id": 16726,
5088
5088
  "nodeType": "StructuredDocumentation",
5089
- "src": "15719:485:40",
5090
- "text": " @dev Claim pending distributions\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param subscriber The subscriber's address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n The subscription should not be approved yet\n # App callbacks\n - AgreementUpdated callback to the publisher:\n - agreementId is for the subscription"
5089
+ "src": "15708:495:40",
5090
+ "text": " @dev Claim pending distributions\n @param token Super token address\n @param publisher The publisher of the index\n @param indexId Id of the index\n @param subscriber The subscriber's address\n @param ctx Context bytes (see ISuperfluid.sol for Context struct)\n @custom:note The subscription should not be approved yet\n @custom:callbacks \n - AgreementUpdated callback to the publisher:\n - agreementId is for the subscription"
5091
5091
  },
5092
5092
  "functionSelector": "acafa1b8",
5093
5093
  "id": 16742,
@@ -5095,7 +5095,7 @@
5095
5095
  "kind": "function",
5096
5096
  "modifiers": [],
5097
5097
  "name": "claim",
5098
- "nameLocation": "16218:5:40",
5098
+ "nameLocation": "16217:5:40",
5099
5099
  "nodeType": "FunctionDefinition",
5100
5100
  "parameters": {
5101
5101
  "id": 16738,
@@ -5106,10 +5106,10 @@
5106
5106
  "id": 16729,
5107
5107
  "mutability": "mutable",
5108
5108
  "name": "token",
5109
- "nameLocation": "16250:5:40",
5109
+ "nameLocation": "16249:5:40",
5110
5110
  "nodeType": "VariableDeclaration",
5111
5111
  "scope": 16742,
5112
- "src": "16233:22:40",
5112
+ "src": "16232:22:40",
5113
5113
  "stateVariable": false,
5114
5114
  "storageLocation": "default",
5115
5115
  "typeDescriptions": {
@@ -5124,10 +5124,10 @@
5124
5124
  "name": "ISuperfluidToken",
5125
5125
  "nodeType": "IdentifierPath",
5126
5126
  "referencedDeclaration": 18721,
5127
- "src": "16233:16:40"
5127
+ "src": "16232:16:40"
5128
5128
  },
5129
5129
  "referencedDeclaration": 18721,
5130
- "src": "16233:16:40",
5130
+ "src": "16232:16:40",
5131
5131
  "typeDescriptions": {
5132
5132
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
5133
5133
  "typeString": "contract ISuperfluidToken"
@@ -5140,10 +5140,10 @@
5140
5140
  "id": 16731,
5141
5141
  "mutability": "mutable",
5142
5142
  "name": "publisher",
5143
- "nameLocation": "16273:9:40",
5143
+ "nameLocation": "16272:9:40",
5144
5144
  "nodeType": "VariableDeclaration",
5145
5145
  "scope": 16742,
5146
- "src": "16265:17:40",
5146
+ "src": "16264:17:40",
5147
5147
  "stateVariable": false,
5148
5148
  "storageLocation": "default",
5149
5149
  "typeDescriptions": {
@@ -5154,7 +5154,7 @@
5154
5154
  "id": 16730,
5155
5155
  "name": "address",
5156
5156
  "nodeType": "ElementaryTypeName",
5157
- "src": "16265:7:40",
5157
+ "src": "16264:7:40",
5158
5158
  "stateMutability": "nonpayable",
5159
5159
  "typeDescriptions": {
5160
5160
  "typeIdentifier": "t_address",
@@ -5168,10 +5168,10 @@
5168
5168
  "id": 16733,
5169
5169
  "mutability": "mutable",
5170
5170
  "name": "indexId",
5171
- "nameLocation": "16299:7:40",
5171
+ "nameLocation": "16298:7:40",
5172
5172
  "nodeType": "VariableDeclaration",
5173
5173
  "scope": 16742,
5174
- "src": "16292:14:40",
5174
+ "src": "16291:14:40",
5175
5175
  "stateVariable": false,
5176
5176
  "storageLocation": "default",
5177
5177
  "typeDescriptions": {
@@ -5182,7 +5182,7 @@
5182
5182
  "id": 16732,
5183
5183
  "name": "uint32",
5184
5184
  "nodeType": "ElementaryTypeName",
5185
- "src": "16292:6:40",
5185
+ "src": "16291:6:40",
5186
5186
  "typeDescriptions": {
5187
5187
  "typeIdentifier": "t_uint32",
5188
5188
  "typeString": "uint32"
@@ -5195,10 +5195,10 @@
5195
5195
  "id": 16735,
5196
5196
  "mutability": "mutable",
5197
5197
  "name": "subscriber",
5198
- "nameLocation": "16324:10:40",
5198
+ "nameLocation": "16323:10:40",
5199
5199
  "nodeType": "VariableDeclaration",
5200
5200
  "scope": 16742,
5201
- "src": "16316:18:40",
5201
+ "src": "16315:18:40",
5202
5202
  "stateVariable": false,
5203
5203
  "storageLocation": "default",
5204
5204
  "typeDescriptions": {
@@ -5209,7 +5209,7 @@
5209
5209
  "id": 16734,
5210
5210
  "name": "address",
5211
5211
  "nodeType": "ElementaryTypeName",
5212
- "src": "16316:7:40",
5212
+ "src": "16315:7:40",
5213
5213
  "stateMutability": "nonpayable",
5214
5214
  "typeDescriptions": {
5215
5215
  "typeIdentifier": "t_address",
@@ -5223,10 +5223,10 @@
5223
5223
  "id": 16737,
5224
5224
  "mutability": "mutable",
5225
5225
  "name": "ctx",
5226
- "nameLocation": "16359:3:40",
5226
+ "nameLocation": "16358:3:40",
5227
5227
  "nodeType": "VariableDeclaration",
5228
5228
  "scope": 16742,
5229
- "src": "16344:18:40",
5229
+ "src": "16343:18:40",
5230
5230
  "stateVariable": false,
5231
5231
  "storageLocation": "calldata",
5232
5232
  "typeDescriptions": {
@@ -5237,7 +5237,7 @@
5237
5237
  "id": 16736,
5238
5238
  "name": "bytes",
5239
5239
  "nodeType": "ElementaryTypeName",
5240
- "src": "16344:5:40",
5240
+ "src": "16343:5:40",
5241
5241
  "typeDescriptions": {
5242
5242
  "typeIdentifier": "t_bytes_storage_ptr",
5243
5243
  "typeString": "bytes"
@@ -5246,7 +5246,7 @@
5246
5246
  "visibility": "internal"
5247
5247
  }
5248
5248
  ],
5249
- "src": "16223:140:40"
5249
+ "src": "16222:140:40"
5250
5250
  },
5251
5251
  "returnParameters": {
5252
5252
  "id": 16741,
@@ -5257,10 +5257,10 @@
5257
5257
  "id": 16740,
5258
5258
  "mutability": "mutable",
5259
5259
  "name": "newCtx",
5260
- "nameLocation": "16426:6:40",
5260
+ "nameLocation": "16425:6:40",
5261
5261
  "nodeType": "VariableDeclaration",
5262
5262
  "scope": 16742,
5263
- "src": "16413:19:40",
5263
+ "src": "16412:19:40",
5264
5264
  "stateVariable": false,
5265
5265
  "storageLocation": "memory",
5266
5266
  "typeDescriptions": {
@@ -5271,7 +5271,7 @@
5271
5271
  "id": 16739,
5272
5272
  "name": "bytes",
5273
5273
  "nodeType": "ElementaryTypeName",
5274
- "src": "16413:5:40",
5274
+ "src": "16412:5:40",
5275
5275
  "typeDescriptions": {
5276
5276
  "typeIdentifier": "t_bytes_storage_ptr",
5277
5277
  "typeString": "bytes"
@@ -5280,10 +5280,10 @@
5280
5280
  "visibility": "internal"
5281
5281
  }
5282
5282
  ],
5283
- "src": "16412:21:40"
5283
+ "src": "16411:21:40"
5284
5284
  },
5285
5285
  "scope": 16771,
5286
- "src": "16209:225:40",
5286
+ "src": "16208:225:40",
5287
5287
  "stateMutability": "nonpayable",
5288
5288
  "virtual": true,
5289
5289
  "visibility": "external"
@@ -5293,13 +5293,13 @@
5293
5293
  "documentation": {
5294
5294
  "id": 16743,
5295
5295
  "nodeType": "StructuredDocumentation",
5296
- "src": "16444:289:40",
5296
+ "src": "16443:289:40",
5297
5297
  "text": " @dev Index distribution claimed event\n @param token Super token address\n @param publisher Index publisher\n @param indexId The specified indexId\n @param subscriber The subscriber units updated\n @param amount The pending amount claimed"
5298
5298
  },
5299
5299
  "eventSelector": "467eccd248ef31c8bcef16d94856855799a8783aeef10f3759e43614059a6bb1",
5300
5300
  "id": 16756,
5301
5301
  "name": "IndexDistributionClaimed",
5302
- "nameLocation": "16744:24:40",
5302
+ "nameLocation": "16743:24:40",
5303
5303
  "nodeType": "EventDefinition",
5304
5304
  "parameters": {
5305
5305
  "id": 16755,
@@ -5311,10 +5311,10 @@
5311
5311
  "indexed": true,
5312
5312
  "mutability": "mutable",
5313
5313
  "name": "token",
5314
- "nameLocation": "16803:5:40",
5314
+ "nameLocation": "16802:5:40",
5315
5315
  "nodeType": "VariableDeclaration",
5316
5316
  "scope": 16756,
5317
- "src": "16778:30:40",
5317
+ "src": "16777:30:40",
5318
5318
  "stateVariable": false,
5319
5319
  "storageLocation": "default",
5320
5320
  "typeDescriptions": {
@@ -5329,10 +5329,10 @@
5329
5329
  "name": "ISuperfluidToken",
5330
5330
  "nodeType": "IdentifierPath",
5331
5331
  "referencedDeclaration": 18721,
5332
- "src": "16778:16:40"
5332
+ "src": "16777:16:40"
5333
5333
  },
5334
5334
  "referencedDeclaration": 18721,
5335
- "src": "16778:16:40",
5335
+ "src": "16777:16:40",
5336
5336
  "typeDescriptions": {
5337
5337
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
5338
5338
  "typeString": "contract ISuperfluidToken"
@@ -5346,10 +5346,10 @@
5346
5346
  "indexed": true,
5347
5347
  "mutability": "mutable",
5348
5348
  "name": "publisher",
5349
- "nameLocation": "16834:9:40",
5349
+ "nameLocation": "16833:9:40",
5350
5350
  "nodeType": "VariableDeclaration",
5351
5351
  "scope": 16756,
5352
- "src": "16818:25:40",
5352
+ "src": "16817:25:40",
5353
5353
  "stateVariable": false,
5354
5354
  "storageLocation": "default",
5355
5355
  "typeDescriptions": {
@@ -5360,7 +5360,7 @@
5360
5360
  "id": 16747,
5361
5361
  "name": "address",
5362
5362
  "nodeType": "ElementaryTypeName",
5363
- "src": "16818:7:40",
5363
+ "src": "16817:7:40",
5364
5364
  "stateMutability": "nonpayable",
5365
5365
  "typeDescriptions": {
5366
5366
  "typeIdentifier": "t_address",
@@ -5375,10 +5375,10 @@
5375
5375
  "indexed": true,
5376
5376
  "mutability": "mutable",
5377
5377
  "name": "indexId",
5378
- "nameLocation": "16868:7:40",
5378
+ "nameLocation": "16867:7:40",
5379
5379
  "nodeType": "VariableDeclaration",
5380
5380
  "scope": 16756,
5381
- "src": "16853:22:40",
5381
+ "src": "16852:22:40",
5382
5382
  "stateVariable": false,
5383
5383
  "storageLocation": "default",
5384
5384
  "typeDescriptions": {
@@ -5389,7 +5389,7 @@
5389
5389
  "id": 16749,
5390
5390
  "name": "uint32",
5391
5391
  "nodeType": "ElementaryTypeName",
5392
- "src": "16853:6:40",
5392
+ "src": "16852:6:40",
5393
5393
  "typeDescriptions": {
5394
5394
  "typeIdentifier": "t_uint32",
5395
5395
  "typeString": "uint32"
@@ -5403,10 +5403,10 @@
5403
5403
  "indexed": false,
5404
5404
  "mutability": "mutable",
5405
5405
  "name": "subscriber",
5406
- "nameLocation": "16893:10:40",
5406
+ "nameLocation": "16892:10:40",
5407
5407
  "nodeType": "VariableDeclaration",
5408
5408
  "scope": 16756,
5409
- "src": "16885:18:40",
5409
+ "src": "16884:18:40",
5410
5410
  "stateVariable": false,
5411
5411
  "storageLocation": "default",
5412
5412
  "typeDescriptions": {
@@ -5417,7 +5417,7 @@
5417
5417
  "id": 16751,
5418
5418
  "name": "address",
5419
5419
  "nodeType": "ElementaryTypeName",
5420
- "src": "16885:7:40",
5420
+ "src": "16884:7:40",
5421
5421
  "stateMutability": "nonpayable",
5422
5422
  "typeDescriptions": {
5423
5423
  "typeIdentifier": "t_address",
@@ -5432,10 +5432,10 @@
5432
5432
  "indexed": false,
5433
5433
  "mutability": "mutable",
5434
5434
  "name": "amount",
5435
- "nameLocation": "16921:6:40",
5435
+ "nameLocation": "16920:6:40",
5436
5436
  "nodeType": "VariableDeclaration",
5437
5437
  "scope": 16756,
5438
- "src": "16913:14:40",
5438
+ "src": "16912:14:40",
5439
5439
  "stateVariable": false,
5440
5440
  "storageLocation": "default",
5441
5441
  "typeDescriptions": {
@@ -5446,7 +5446,7 @@
5446
5446
  "id": 16753,
5447
5447
  "name": "uint256",
5448
5448
  "nodeType": "ElementaryTypeName",
5449
- "src": "16913:7:40",
5449
+ "src": "16912:7:40",
5450
5450
  "typeDescriptions": {
5451
5451
  "typeIdentifier": "t_uint256",
5452
5452
  "typeString": "uint256"
@@ -5455,22 +5455,22 @@
5455
5455
  "visibility": "internal"
5456
5456
  }
5457
5457
  ],
5458
- "src": "16768:160:40"
5458
+ "src": "16767:160:40"
5459
5459
  },
5460
- "src": "16738:191:40"
5460
+ "src": "16737:191:40"
5461
5461
  },
5462
5462
  {
5463
5463
  "anonymous": false,
5464
5464
  "documentation": {
5465
5465
  "id": 16757,
5466
5466
  "nodeType": "StructuredDocumentation",
5467
- "src": "16939:296:40",
5467
+ "src": "16938:296:40",
5468
5468
  "text": " @dev Subscription distribution claimed event\n @param token Super token address\n @param subscriber The subscriber units updated\n @param publisher Index publisher\n @param indexId The specified indexId\n @param amount The pending amount claimed"
5469
5469
  },
5470
5470
  "eventSelector": "48a3d91d4a07e4982b081260e24f922bd33bb965882772d6de19c922c3eabdea",
5471
5471
  "id": 16770,
5472
5472
  "name": "SubscriptionDistributionClaimed",
5473
- "nameLocation": "17246:31:40",
5473
+ "nameLocation": "17245:31:40",
5474
5474
  "nodeType": "EventDefinition",
5475
5475
  "parameters": {
5476
5476
  "id": 16769,
@@ -5482,10 +5482,10 @@
5482
5482
  "indexed": true,
5483
5483
  "mutability": "mutable",
5484
5484
  "name": "token",
5485
- "nameLocation": "17312:5:40",
5485
+ "nameLocation": "17311:5:40",
5486
5486
  "nodeType": "VariableDeclaration",
5487
5487
  "scope": 16770,
5488
- "src": "17287:30:40",
5488
+ "src": "17286:30:40",
5489
5489
  "stateVariable": false,
5490
5490
  "storageLocation": "default",
5491
5491
  "typeDescriptions": {
@@ -5500,10 +5500,10 @@
5500
5500
  "name": "ISuperfluidToken",
5501
5501
  "nodeType": "IdentifierPath",
5502
5502
  "referencedDeclaration": 18721,
5503
- "src": "17287:16:40"
5503
+ "src": "17286:16:40"
5504
5504
  },
5505
5505
  "referencedDeclaration": 18721,
5506
- "src": "17287:16:40",
5506
+ "src": "17286:16:40",
5507
5507
  "typeDescriptions": {
5508
5508
  "typeIdentifier": "t_contract$_ISuperfluidToken_$18721",
5509
5509
  "typeString": "contract ISuperfluidToken"
@@ -5517,10 +5517,10 @@
5517
5517
  "indexed": true,
5518
5518
  "mutability": "mutable",
5519
5519
  "name": "subscriber",
5520
- "nameLocation": "17343:10:40",
5520
+ "nameLocation": "17342:10:40",
5521
5521
  "nodeType": "VariableDeclaration",
5522
5522
  "scope": 16770,
5523
- "src": "17327:26:40",
5523
+ "src": "17326:26:40",
5524
5524
  "stateVariable": false,
5525
5525
  "storageLocation": "default",
5526
5526
  "typeDescriptions": {
@@ -5531,7 +5531,7 @@
5531
5531
  "id": 16761,
5532
5532
  "name": "address",
5533
5533
  "nodeType": "ElementaryTypeName",
5534
- "src": "17327:7:40",
5534
+ "src": "17326:7:40",
5535
5535
  "stateMutability": "nonpayable",
5536
5536
  "typeDescriptions": {
5537
5537
  "typeIdentifier": "t_address",
@@ -5546,10 +5546,10 @@
5546
5546
  "indexed": false,
5547
5547
  "mutability": "mutable",
5548
5548
  "name": "publisher",
5549
- "nameLocation": "17371:9:40",
5549
+ "nameLocation": "17370:9:40",
5550
5550
  "nodeType": "VariableDeclaration",
5551
5551
  "scope": 16770,
5552
- "src": "17363:17:40",
5552
+ "src": "17362:17:40",
5553
5553
  "stateVariable": false,
5554
5554
  "storageLocation": "default",
5555
5555
  "typeDescriptions": {
@@ -5560,7 +5560,7 @@
5560
5560
  "id": 16763,
5561
5561
  "name": "address",
5562
5562
  "nodeType": "ElementaryTypeName",
5563
- "src": "17363:7:40",
5563
+ "src": "17362:7:40",
5564
5564
  "stateMutability": "nonpayable",
5565
5565
  "typeDescriptions": {
5566
5566
  "typeIdentifier": "t_address",
@@ -5575,10 +5575,10 @@
5575
5575
  "indexed": false,
5576
5576
  "mutability": "mutable",
5577
5577
  "name": "indexId",
5578
- "nameLocation": "17397:7:40",
5578
+ "nameLocation": "17396:7:40",
5579
5579
  "nodeType": "VariableDeclaration",
5580
5580
  "scope": 16770,
5581
- "src": "17390:14:40",
5581
+ "src": "17389:14:40",
5582
5582
  "stateVariable": false,
5583
5583
  "storageLocation": "default",
5584
5584
  "typeDescriptions": {
@@ -5589,7 +5589,7 @@
5589
5589
  "id": 16765,
5590
5590
  "name": "uint32",
5591
5591
  "nodeType": "ElementaryTypeName",
5592
- "src": "17390:6:40",
5592
+ "src": "17389:6:40",
5593
5593
  "typeDescriptions": {
5594
5594
  "typeIdentifier": "t_uint32",
5595
5595
  "typeString": "uint32"
@@ -5603,10 +5603,10 @@
5603
5603
  "indexed": false,
5604
5604
  "mutability": "mutable",
5605
5605
  "name": "amount",
5606
- "nameLocation": "17422:6:40",
5606
+ "nameLocation": "17421:6:40",
5607
5607
  "nodeType": "VariableDeclaration",
5608
5608
  "scope": 16770,
5609
- "src": "17414:14:40",
5609
+ "src": "17413:14:40",
5610
5610
  "stateVariable": false,
5611
5611
  "storageLocation": "default",
5612
5612
  "typeDescriptions": {
@@ -5617,7 +5617,7 @@
5617
5617
  "id": 16767,
5618
5618
  "name": "uint256",
5619
5619
  "nodeType": "ElementaryTypeName",
5620
- "src": "17414:7:40",
5620
+ "src": "17413:7:40",
5621
5621
  "typeDescriptions": {
5622
5622
  "typeIdentifier": "t_uint256",
5623
5623
  "typeString": "uint256"
@@ -5626,27 +5626,27 @@
5626
5626
  "visibility": "internal"
5627
5627
  }
5628
5628
  ],
5629
- "src": "17277:152:40"
5629
+ "src": "17276:152:40"
5630
5630
  },
5631
- "src": "17240:190:40"
5631
+ "src": "17239:190:40"
5632
5632
  }
5633
5633
  ],
5634
5634
  "scope": 16772,
5635
- "src": "1782:15651:40",
5635
+ "src": "1784:15648:40",
5636
5636
  "usedErrors": []
5637
5637
  }
5638
5638
  ],
5639
- "src": "35:17399:40"
5639
+ "src": "35:17398:40"
5640
5640
  },
5641
5641
  "compiler": {
5642
5642
  "name": "solc",
5643
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
5643
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
5644
5644
  },
5645
5645
  "networks": {},
5646
5646
  "schemaVersion": "3.4.7",
5647
- "updatedAt": "2022-06-03T09:45:13.978Z",
5647
+ "updatedAt": "2022-06-16T09:19:12.147Z",
5648
5648
  "devdoc": {
5649
- "author": "Superfluid Notes: - A publisher can create as many as indices as possibly identifiable with `indexId`. - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision. Despite knowing sha-3 collision is only theoretical. - A publisher can create a subscription to an index for any subscriber. - A subscription consists of: - The index it subscribes to. - Number of units subscribed. - An index consists of: - Current value as `uint128 indexValue`. - Total units of the approved subscriptions as `uint128 totalUnitsApproved`. - Total units of the non approved subscription as `uint128 totalUnitsPending`. - A publisher can update an index with a new value that doesn't decrease. - A publisher can update a subscription with any number of units. - A publisher or a subscriber can delete a subscription and reset its units to zero. - A subscriber must approve the index in order to receive distributions from the publisher each time the index is updated. - The amount distributed is $$\\Delta{index} * units$$ - Distributions to a non approved subscription stays in the publisher's deposit until: - the subscriber approves the subscription (side effect), - the publisher updates the subscription (side effect), - the subscriber deletes the subscription even if it is never approved (side effect), - or the subscriber can explicitly claim them.",
5649
+ "author": "Superfluid",
5650
5650
  "events": {
5651
5651
  "IndexCreated(address,address,uint32,bytes)": {
5652
5652
  "details": "Index created event",
@@ -5759,9 +5759,10 @@
5759
5759
  "details": "ISuperAgreement.agreementType implementation"
5760
5760
  },
5761
5761
  "approveSubscription(address,address,uint32,bytes)": {
5762
+ "custom:callbacks": " - if subscription exist - AgreementCreated callback to the publisher: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the publisher: - agreementId is for the subscription",
5762
5763
  "details": "Approve the subscription of an index",
5763
5764
  "params": {
5764
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - if subscription exist - AgreementCreated callback to the publisher: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the publisher: - agreementId is for the subscription",
5765
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5765
5766
  "indexId": "Id of the index",
5766
5767
  "publisher": "The publisher of the index",
5767
5768
  "token": "Super token address"
@@ -5781,9 +5782,11 @@
5781
5782
  }
5782
5783
  },
5783
5784
  "claim(address,address,uint32,address,bytes)": {
5785
+ "custom:callbacks": " - AgreementUpdated callback to the publisher: - agreementId is for the subscription",
5786
+ "custom:note": "The subscription should not be approved yet",
5784
5787
  "details": "Claim pending distributions",
5785
5788
  "params": {
5786
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) The subscription should not be approved yet # App callbacks - AgreementUpdated callback to the publisher: - agreementId is for the subscription",
5789
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5787
5790
  "indexId": "Id of the index",
5788
5791
  "publisher": "The publisher of the index",
5789
5792
  "subscriber": "The subscriber's address",
@@ -5791,17 +5794,19 @@
5791
5794
  }
5792
5795
  },
5793
5796
  "createIndex(address,uint32,bytes)": {
5797
+ "custom:callbacks": " None",
5794
5798
  "details": "Create a new index for the publisher",
5795
5799
  "params": {
5796
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks None",
5800
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5797
5801
  "indexId": "Id of the index",
5798
5802
  "token": "Super token address"
5799
5803
  }
5800
5804
  },
5801
5805
  "deleteSubscription(address,address,uint32,address,bytes)": {
5806
+ "custom:callbacks": " - if the subscriber called it - AgreementTerminated callback to the publsiher: - agreementId is for the subscription - if the publisher called it - AgreementTerminated callback to the subscriber: - agreementId is for the subscription",
5802
5807
  "details": "Delete the subscription of an user",
5803
5808
  "params": {
5804
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - if the subscriber called it - AgreementTerminated callback to the publsiher: - agreementId is for the subscription - if the publisher called it - AgreementTerminated callback to the subscriber: - agreementId is for the subscription",
5809
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5805
5810
  "indexId": "Id of the index",
5806
5811
  "publisher": "The publisher of the index",
5807
5812
  "subscriber": "The subscriber's address",
@@ -5809,10 +5814,12 @@
5809
5814
  }
5810
5815
  },
5811
5816
  "distribute(address,uint32,uint256,bytes)": {
5817
+ "custom:callbacks": " None",
5818
+ "custom:note": " - This is a convenient version of updateIndex. It adds to the index a delta that equals to `amount / totalUnits` - The actual amount distributed could be obtained via `calculateDistribution`. This is due to precision error with index value and units data range",
5812
5819
  "details": "Distribute tokens through the index",
5813
5820
  "params": {
5814
5821
  "amount": "The amount of tokens desired to be distributed",
5815
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) NOTE: - This is a convenient version of updateIndex. It adds to the index a delta that equals to `amount / totalUnits` - The actual amount distributed could be obtained via `calculateDistribution`. This is due to precision error with index value and units data range # App callbacks None",
5822
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5816
5823
  "indexId": "Id of the index",
5817
5824
  "token": "Super token address"
5818
5825
  }
@@ -5885,27 +5892,30 @@
5885
5892
  }
5886
5893
  },
5887
5894
  "revokeSubscription(address,address,uint32,bytes)": {
5895
+ "custom:callbacks": " - AgreementUpdated callback to the publisher: - agreementId is for the subscription",
5888
5896
  "details": "\"Unapproves\" the subscription and moves approved units to pending",
5889
5897
  "params": {
5890
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - AgreementUpdated callback to the publisher: - agreementId is for the subscription",
5898
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5891
5899
  "indexId": "Id of the index",
5892
5900
  "publisher": "The publisher of the index",
5893
5901
  "token": "Super token address"
5894
5902
  }
5895
5903
  },
5896
5904
  "updateIndex(address,uint32,uint128,bytes)": {
5905
+ "custom:callbacks": " None",
5897
5906
  "details": "Update index value of an index",
5898
5907
  "params": {
5899
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks None",
5908
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5900
5909
  "indexId": "Id of the index",
5901
5910
  "indexValue": "Value of the index",
5902
5911
  "token": "Super token address"
5903
5912
  }
5904
5913
  },
5905
5914
  "updateSubscription(address,uint32,address,uint128,bytes)": {
5915
+ "custom:callbacks": " - if subscription exist - AgreementCreated callback to the subscriber: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the subscriber: - agreementId is for the subscription",
5906
5916
  "details": "Update the nuber of units of a subscription",
5907
5917
  "params": {
5908
- "ctx": "Context bytes (see ISuperfluid.sol for Context struct) # App callbacks - if subscription exist - AgreementCreated callback to the subscriber: - agreementId is for the subscription - if subscription does not exist - AgreementUpdated callback to the subscriber: - agreementId is for the subscription",
5918
+ "ctx": "Context bytes (see ISuperfluid.sol for Context struct)",
5909
5919
  "indexId": "Id of the index",
5910
5920
  "subscriber": "The subscriber of the index",
5911
5921
  "token": "Super token address",
@@ -5926,6 +5936,7 @@
5926
5936
  "notice": "Revoke the subscription of an index"
5927
5937
  }
5928
5938
  },
5939
+ "notice": " - A publisher can create as many as indices as possibly identifiable with `indexId`. - `indexId` is deliberately limited to 32 bits, to avoid the chance for sha-3 collision. Despite knowing sha-3 collision is only theoretical. - A publisher can create a subscription to an index for any subscriber. - A subscription consists of: - The index it subscribes to. - Number of units subscribed. - An index consists of: - Current value as `uint128 indexValue`. - Total units of the approved subscriptions as `uint128 totalUnitsApproved`. - Total units of the non approved subscription as `uint128 totalUnitsPending`. - A publisher can update an index with a new value that doesn't decrease. - A publisher can update a subscription with any number of units. - A publisher or a subscriber can delete a subscription and reset its units to zero. - A subscriber must approve the index in order to receive distributions from the publisher each time the index is updated. - The amount distributed is $$\\Delta{index} * units$$ - Distributions to a non approved subscription stays in the publisher's deposit until: - the subscriber approves the subscription (side effect), - the publisher updates the subscription (side effect), - the subscriber deletes the subscription even if it is never approved (side effect), - or the subscriber can explicitly claim them.",
5929
5940
  "version": 1
5930
5941
  }
5931
5942
  }