@superfluid-finance/ethereum-contracts 1.2.3-dev.f94fdbb.0 → 1.3.1-dev.b8455ea.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 (165) 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 +3 -3
  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
@@ -643,7 +643,7 @@
643
643
  "type": "function"
644
644
  }
645
645
  ],
646
- "metadata": "{\"compiler\":{\"version\":\"0.8.13+commit.abaa5c0e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"AgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"penaltyAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewardAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"}],\"name\":\"AgreementLiquidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"liquidatorAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"penaltyAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bondAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bailoutAmount\",\"type\":\"uint256\"}],\"name\":\"AgreementLiquidatedBy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"liquidatorAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"targetAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rewardAmountReceiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"targetAccountBalanceDelta\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"liquidationTypeData\",\"type\":\"bytes\"}],\"name\":\"AgreementLiquidatedV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slotId\",\"type\":\"uint256\"}],\"name\":\"AgreementStateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"AgreementTerminated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"AgreementUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bailoutAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bailoutAmount\",\"type\":\"uint256\"}],\"name\":\"Bailout\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"createAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAccountActiveAgreements\",\"outputs\":[{\"internalType\":\"contract ISuperAgreement[]\",\"name\":\"activeAgreements\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"getAgreementData\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slotId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"getAgreementStateSlot\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slotData\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHost\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"host\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"isAccountCritical\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isCritical\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAccountCriticalNow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isCritical\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"isAccountSolvent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSolvent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAccountSolventNow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSolvent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"liquidationTypeData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"liquidatorAccount\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useDefaultRewardAccount\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"targetAccount\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"targetAccountBalanceDelta\",\"type\":\"int256\"}],\"name\":\"makeLiquidationPayoutsV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"realtimeBalanceOf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"availableBalance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"realtimeBalanceOfNow\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"availableBalance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\"}],\"name\":\"settleBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"terminateAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"updateAgreementData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slotId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"slotData\",\"type\":\"bytes32[]\"}],\"name\":\"updateAgreementStateSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"events\":{\"AgreementCreated(address,bytes32,bytes32[])\":{\"details\":\"Agreement created event\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"AgreementLiquidated(address,bytes32,address,address,uint256)\":{\"details\":\"Agreement liquidation event (DEPRECATED BY AgreementLiquidatedBy)\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\",\"penaltyAccount\":\"Account of the agreement to be penalized\",\"rewardAccount\":\"Account that collect the reward\",\"rewardAmount\":\"Amount of liquidation reward NOTE: [DEPRECATED] Use AgreementLiquidatedV2 instead\"}},\"AgreementLiquidatedBy(address,address,bytes32,address,address,uint256,uint256)\":{\"details\":\"Agreement liquidation event (DEPRECATED BY AgreementLiquidatedV2)\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"bailoutAmount\":\"Amount of liquidation bailouot NOTE: Reward account rule: - if bailout is equal to 0, then - the bondAccount will get the rewardAmount, - the penaltyAccount will pay for the rewardAmount. - if bailout is larger than 0, then - the liquidatorAccount will get the rewardAmouont, - the bondAccount will pay for both the rewardAmount and bailoutAmount, - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount.\",\"bondAccount\":\"Account that collect the reward or bailout accounts\",\"id\":\"Agreement ID\",\"liquidatorAccount\":\"Account of the agent that performed the liquidation.\",\"penaltyAccount\":\"Account of the agreement to be penalized\",\"rewardAmount\":\"Amount of liquidation reward\"}},\"AgreementLiquidatedV2(address,bytes32,address,address,address,uint256,int256,bytes)\":{\"details\":\"Agreement liquidation event v2 (including agent account)\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\",\"liquidationTypeData\":\"The encoded liquidation type data including the version (how to decode) NOTE: Reward account rule: - if the agreement is liquidated during the PIC period - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount - the targetAccount will pay for the rewardAmount - if the agreement is liquidated after the PIC period AND the targetAccount is solvent - the rewardAmountReceiver will get the rewardAmount (remaining deposit) - the targetAccount will pay for the rewardAmount - if the targetAccount is insolvent - the liquidatorAccount will get the rewardAmount (single deposit) - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount - the targetAccount will receive the bailoutAmount\",\"liquidatorAccount\":\"Address of the executor of the liquidation\",\"rewardAmount\":\"The amount the reward recipient account balance should change by\",\"rewardAmountReceiver\":\"Account that collects the reward or bails out insolvent accounts\",\"targetAccount\":\"Account of the stream sender\",\"targetAccountBalanceDelta\":\"The amount the sender account balance should change by\"}},\"AgreementStateUpdated(address,address,uint256)\":{\"details\":\"Agreement account state updated event\",\"params\":{\"account\":\"Account updated\",\"agreementClass\":\"Contract address of the agreement\",\"slotId\":\"slot id of the agreement state\"}},\"AgreementTerminated(address,bytes32)\":{\"details\":\"Agreement terminated event\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\"}},\"AgreementUpdated(address,bytes32,bytes32[])\":{\"details\":\"Agreement updated event\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"Bailout(address,uint256)\":{\"details\":\"System bailout occurred (DEPRECATED BY AgreementLiquidatedBy)\",\"params\":{\"bailoutAccount\":\"Account that bailout the penalty account\",\"bailoutAmount\":\"Amount of account bailout NOTE: [DEPRECATED] Use AgreementLiquidatedV2 instead\"}}},\"kind\":\"dev\",\"methods\":{\"createAgreement(bytes32,bytes32[])\":{\"details\":\"Create a new agreement\",\"params\":{\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"getAccountActiveAgreements(address)\":{\"details\":\"An active agreement is one that has state for the account\",\"params\":{\"account\":\"Account to query\"},\"returns\":{\"activeAgreements\":\"List of accounts that have non-zero states for the account\"}},\"getAgreementData(address,bytes32,uint256)\":{\"details\":\"Get data of the agreement\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\"},\"returns\":{\"data\":\"Data of the agreement\"}},\"getAgreementStateSlot(address,address,uint256,uint256)\":{\"details\":\"Get data of the slot of the state of an agreement\",\"params\":{\"account\":\"Account to query\",\"agreementClass\":\"Contract address of the agreement\",\"dataLength\":\"length of the state data\",\"slotId\":\"slot id of the state\"}},\"getHost()\":{\"details\":\"Get superfluid host contract address\"},\"isAccountCritical(address,uint256)\":{\"details\":\"A critical account is when availableBalance < 0\",\"params\":{\"account\":\"The account to check\",\"timestamp\":\"The time we'd like to check if the account is critical (should use future)\"},\"returns\":{\"isCritical\":\"Whether the account is critical\"}},\"isAccountCriticalNow(address)\":{\"details\":\"A critical account is when availableBalance < 0\",\"params\":{\"account\":\"The account to check\"},\"returns\":{\"isCritical\":\"Whether the account is critical\"}},\"isAccountSolvent(address,uint256)\":{\"details\":\"An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\",\"params\":{\"account\":\"The account to check\",\"timestamp\":\"The time we'd like to check if the account is solvent (should use future)\"},\"returns\":{\"isSolvent\":\"isSolvent\"}},\"isAccountSolventNow(address)\":{\"details\":\"An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\",\"params\":{\"account\":\"The account to check\"},\"returns\":{\"isSolvent\":\"isSolvent\"}},\"makeLiquidationPayoutsV2(bytes32,bytes,address,bool,address,uint256,int256)\":{\"details\":\"Make liquidation payouts (v2)\",\"params\":{\"id\":\"Agreement ID\",\"liquidationTypeData\":\"Data regarding the version of the liquidation schema and the type\",\"liquidatorAccount\":\"Address of the executor of the liquidation\",\"rewardAmount\":\"The amount the rewarded account will receive\",\"targetAccount\":\"Account to be liquidated\",\"targetAccountBalanceDelta\":\"The delta amount the target account balance should change by - If a bailout is required (bailoutAmount > 0) - the actual reward (single deposit) goes to the executor, - while the reward account becomes the bailout account - total bailout include: bailout amount + reward amount - the targetAccount will be bailed out - If a bailout is not required - the targetAccount will pay the rewardAmount - the liquidator (reward account in PIC period) will receive the rewardAmount Modifiers: - onlyAgreement\",\"useDefaultRewardAccount\":\"Whether or not the default reward account receives the rewardAmount\"}},\"realtimeBalanceOf(address,uint256)\":{\"details\":\"Calculate the real balance of a user, taking in consideration all agreements of the account\",\"params\":{\"account\":\"for the query\",\"timestamp\":\"Time of balance\"},\"returns\":{\"availableBalance\":\"Real-time balance\",\"deposit\":\"Account deposit\",\"owedDeposit\":\"Account owed Deposit\"}},\"realtimeBalanceOfNow(address)\":{\"details\":\"realtimeBalanceOf with timestamp equals to block timestamp\",\"params\":{\"account\":\"for the query\"},\"returns\":{\"availableBalance\":\"Real-time balance\",\"deposit\":\"Account deposit\",\"owedDeposit\":\"Account owed Deposit\"}},\"settleBalance(address,int256)\":{\"details\":\"The agreement needs to make sure that the balance delta is balanced afterwards\",\"params\":{\"account\":\"Account to query.\",\"delta\":\"Amount of balance delta to be settled Modifiers: - onlyAgreement\"}},\"terminateAgreement(bytes32,uint256)\":{\"details\":\"Close the agreement\",\"params\":{\"id\":\"Agreement ID\"}},\"updateAgreementData(bytes32,bytes32[])\":{\"details\":\"Create a new agreement\",\"params\":{\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"updateAgreementStateSlot(address,uint256,bytes32[])\":{\"details\":\"Update agreement state slot\",\"params\":{\"account\":\"Account to be updated NOTE - To clear the storage out, provide zero-ed array of intended length\"}}},\"title\":\"Superfluid token interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAccountActiveAgreements(address)\":{\"notice\":\"Get a list of agreements that is active for the account\"},\"isAccountCritical(address,uint256)\":{\"notice\":\"Check if account is critical\"},\"isAccountCriticalNow(address)\":{\"notice\":\"Check if account is critical now (current host.getNow())\"},\"isAccountSolvent(address,uint256)\":{\"notice\":\"Check if account is solvent\"},\"isAccountSolventNow(address)\":{\"notice\":\"Check if account is solvent now\"},\"realtimeBalanceOfNow(address)\":{\"notice\":\"Calculate the realtime balance given the current host.getNow() value\"},\"settleBalance(address,int256)\":{\"notice\":\"Settle balance from an account by the agreement\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":\"ISuperfluidToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"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}",
646
+ "metadata": "{\"compiler\":{\"version\":\"0.8.14+commit.80d49f37\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"AgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"penaltyAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"rewardAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"}],\"name\":\"AgreementLiquidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"liquidatorAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"penaltyAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bondAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bailoutAmount\",\"type\":\"uint256\"}],\"name\":\"AgreementLiquidatedBy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"liquidatorAccount\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"targetAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"rewardAmountReceiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"targetAccountBalanceDelta\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"liquidationTypeData\",\"type\":\"bytes\"}],\"name\":\"AgreementLiquidatedV2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"slotId\",\"type\":\"uint256\"}],\"name\":\"AgreementStateUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"}],\"name\":\"AgreementTerminated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"AgreementUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"bailoutAccount\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"bailoutAmount\",\"type\":\"uint256\"}],\"name\":\"Bailout\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"createAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"getAccountActiveAgreements\",\"outputs\":[{\"internalType\":\"contract ISuperAgreement[]\",\"name\":\"activeAgreements\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"getAgreementData\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"agreementClass\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slotId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"getAgreementStateSlot\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"slotData\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHost\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"host\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"isAccountCritical\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isCritical\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAccountCriticalNow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isCritical\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"isAccountSolvent\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSolvent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isAccountSolventNow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isSolvent\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"liquidationTypeData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"liquidatorAccount\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useDefaultRewardAccount\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"targetAccount\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"rewardAmount\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"targetAccountBalanceDelta\",\"type\":\"int256\"}],\"name\":\"makeLiquidationPayoutsV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"realtimeBalanceOf\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"availableBalance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"realtimeBalanceOfNow\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"availableBalance\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"deposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"owedDeposit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\"}],\"name\":\"settleBalance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"dataLength\",\"type\":\"uint256\"}],\"name\":\"terminateAgreement\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32[]\",\"name\":\"data\",\"type\":\"bytes32[]\"}],\"name\":\"updateAgreementData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"slotId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32[]\",\"name\":\"slotData\",\"type\":\"bytes32[]\"}],\"name\":\"updateAgreementStateSlot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Superfluid\",\"events\":{\"AgreementCreated(address,bytes32,bytes32[])\":{\"details\":\"Agreement created event\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"AgreementLiquidated(address,bytes32,address,address,uint256)\":{\"custom:deprecated\":\"Use AgreementLiquidatedV2 instead\",\"details\":\"Agreement liquidation event (DEPRECATED BY AgreementLiquidatedBy)\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\",\"penaltyAccount\":\"Account of the agreement to be penalized\",\"rewardAccount\":\"Account that collect the reward\",\"rewardAmount\":\"Amount of liquidation reward\"}},\"AgreementLiquidatedBy(address,address,bytes32,address,address,uint256,uint256)\":{\"custom:deprecated\":\"Use AgreementLiquidatedV2 instead\",\"custom:note\":\" Reward account rule: - if bailout is equal to 0, then - the bondAccount will get the rewardAmount, - the penaltyAccount will pay for the rewardAmount. - if bailout is larger than 0, then - the liquidatorAccount will get the rewardAmouont, - the bondAccount will pay for both the rewardAmount and bailoutAmount, - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount.\",\"details\":\"Agreement liquidation event (DEPRECATED BY AgreementLiquidatedV2)\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"bailoutAmount\":\"Amount of liquidation bailouot\",\"bondAccount\":\"Account that collect the reward or bailout accounts\",\"id\":\"Agreement ID\",\"liquidatorAccount\":\"Account of the agent that performed the liquidation.\",\"penaltyAccount\":\"Account of the agreement to be penalized\",\"rewardAmount\":\"Amount of liquidation reward\"}},\"AgreementLiquidatedV2(address,bytes32,address,address,address,uint256,int256,bytes)\":{\"custom:note\":\" Reward account rule: - if the agreement is liquidated during the PIC period - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount - the targetAccount will pay for the rewardAmount - if the agreement is liquidated after the PIC period AND the targetAccount is solvent - the rewardAmountReceiver will get the rewardAmount (remaining deposit) - the targetAccount will pay for the rewardAmount - if the targetAccount is insolvent - the liquidatorAccount will get the rewardAmount (single deposit) - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount - the targetAccount will receive the bailoutAmount\",\"details\":\"Agreement liquidation event v2 (including agent account)\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\",\"liquidationTypeData\":\"The encoded liquidation type data including the version (how to decode)\",\"liquidatorAccount\":\"Address of the executor of the liquidation\",\"rewardAmount\":\"The amount the reward recipient account balance should change by\",\"rewardAmountReceiver\":\"Account that collects the reward or bails out insolvent accounts\",\"targetAccount\":\"Account of the stream sender\",\"targetAccountBalanceDelta\":\"The amount the sender account balance should change by\"}},\"AgreementStateUpdated(address,address,uint256)\":{\"details\":\"Agreement account state updated event\",\"params\":{\"account\":\"Account updated\",\"agreementClass\":\"Contract address of the agreement\",\"slotId\":\"slot id of the agreement state\"}},\"AgreementTerminated(address,bytes32)\":{\"details\":\"Agreement terminated event\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\"}},\"AgreementUpdated(address,bytes32,bytes32[])\":{\"details\":\"Agreement updated event\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"Bailout(address,uint256)\":{\"custom:deprecated\":\"Use AgreementLiquidatedV2 instead\",\"details\":\"System bailout occurred (DEPRECATED BY AgreementLiquidatedBy)\",\"params\":{\"bailoutAccount\":\"Account that bailout the penalty account\",\"bailoutAmount\":\"Amount of account bailout\"}}},\"kind\":\"dev\",\"methods\":{\"createAgreement(bytes32,bytes32[])\":{\"details\":\"Create a new agreement\",\"params\":{\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"getAccountActiveAgreements(address)\":{\"details\":\"An active agreement is one that has state for the account\",\"params\":{\"account\":\"Account to query\"},\"returns\":{\"activeAgreements\":\"List of accounts that have non-zero states for the account\"}},\"getAgreementData(address,bytes32,uint256)\":{\"details\":\"Get data of the agreement\",\"params\":{\"agreementClass\":\"Contract address of the agreement\",\"id\":\"Agreement ID\"},\"returns\":{\"data\":\"Data of the agreement\"}},\"getAgreementStateSlot(address,address,uint256,uint256)\":{\"details\":\"Get data of the slot of the state of an agreement\",\"params\":{\"account\":\"Account to query\",\"agreementClass\":\"Contract address of the agreement\",\"dataLength\":\"length of the state data\",\"slotId\":\"slot id of the state\"}},\"getHost()\":{\"details\":\"Get superfluid host contract address\"},\"isAccountCritical(address,uint256)\":{\"details\":\"A critical account is when availableBalance < 0\",\"params\":{\"account\":\"The account to check\",\"timestamp\":\"The time we'd like to check if the account is critical (should use future)\"},\"returns\":{\"isCritical\":\"Whether the account is critical\"}},\"isAccountCriticalNow(address)\":{\"details\":\"A critical account is when availableBalance < 0\",\"params\":{\"account\":\"The account to check\"},\"returns\":{\"isCritical\":\"Whether the account is critical\"}},\"isAccountSolvent(address,uint256)\":{\"details\":\"An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\",\"params\":{\"account\":\"The account to check\",\"timestamp\":\"The time we'd like to check if the account is solvent (should use future)\"},\"returns\":{\"isSolvent\":\"True if the account is solvent, false otherwise\"}},\"isAccountSolventNow(address)\":{\"details\":\"An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\",\"params\":{\"account\":\"The account to check\"},\"returns\":{\"isSolvent\":\"True if the account is solvent, false otherwise\"}},\"makeLiquidationPayoutsV2(bytes32,bytes,address,bool,address,uint256,int256)\":{\"custom:modifiers\":\" - onlyAgreement\",\"custom:note\":\" - If a bailout is required (bailoutAmount > 0) - the actual reward (single deposit) goes to the executor, - while the reward account becomes the bailout account - total bailout include: bailout amount + reward amount - the targetAccount will be bailed out - If a bailout is not required - the targetAccount will pay the rewardAmount - the liquidator (reward account in PIC period) will receive the rewardAmount\",\"details\":\"Make liquidation payouts (v2)\",\"params\":{\"id\":\"Agreement ID\",\"liquidationTypeData\":\"Data regarding the version of the liquidation schema and the type\",\"liquidatorAccount\":\"Address of the executor of the liquidation\",\"rewardAmount\":\"The amount the rewarded account will receive\",\"targetAccount\":\"Account to be liquidated\",\"targetAccountBalanceDelta\":\"The delta amount the target account balance should change by\",\"useDefaultRewardAccount\":\"Whether or not the default reward account receives the rewardAmount\"}},\"realtimeBalanceOf(address,uint256)\":{\"details\":\"Calculate the real balance of a user, taking in consideration all agreements of the account\",\"params\":{\"account\":\"for the query\",\"timestamp\":\"Time of balance\"},\"returns\":{\"availableBalance\":\"Real-time balance\",\"deposit\":\"Account deposit\",\"owedDeposit\":\"Account owed Deposit\"}},\"realtimeBalanceOfNow(address)\":{\"details\":\"realtimeBalanceOf with timestamp equals to block timestamp\",\"params\":{\"account\":\"for the query\"},\"returns\":{\"availableBalance\":\"Real-time balance\",\"deposit\":\"Account deposit\",\"owedDeposit\":\"Account owed Deposit\"}},\"settleBalance(address,int256)\":{\"custom:modifiers\":\" - onlyAgreement\",\"details\":\"The agreement needs to make sure that the balance delta is balanced afterwards\",\"params\":{\"account\":\"Account to query.\",\"delta\":\"Amount of balance delta to be settled\"}},\"terminateAgreement(bytes32,uint256)\":{\"details\":\"Close the agreement\",\"params\":{\"id\":\"Agreement ID\"}},\"updateAgreementData(bytes32,bytes32[])\":{\"details\":\"Create a new agreement\",\"params\":{\"data\":\"Agreement data\",\"id\":\"Agreement ID\"}},\"updateAgreementStateSlot(address,uint256,bytes32[])\":{\"custom:note\":\" - To clear the storage out, provide zero-ed array of intended length\",\"details\":\"Update agreement state slot\",\"params\":{\"account\":\"Account to be updated\"}}},\"title\":\"Superfluid token interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAccountActiveAgreements(address)\":{\"notice\":\"Get a list of agreements that is active for the account\"},\"isAccountCritical(address,uint256)\":{\"notice\":\"Check if account is critical\"},\"isAccountCriticalNow(address)\":{\"notice\":\"Check if account is critical now (current host.getNow())\"},\"isAccountSolvent(address,uint256)\":{\"notice\":\"Check if account is solvent\"},\"isAccountSolventNow(address)\":{\"notice\":\"Check if account is solvent now\"},\"realtimeBalanceOfNow(address)\":{\"notice\":\"Calculate the realtime balance given the current host.getNow() value\"},\"settleBalance(address,int256)\":{\"notice\":\"Settle balance from an account by the agreement\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/superfluid/ISuperfluidToken.sol\":\"ISuperfluidToken\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"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}",
647
647
  "bytecode": "0x",
648
648
  "deployedBytecode": "0x",
649
649
  "immutableReferences": {},
@@ -651,7 +651,7 @@
651
651
  "deployedGeneratedSources": [],
652
652
  "sourceMap": "",
653
653
  "deployedSourceMap": "",
654
- "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity >= 0.8.0;\n\nimport { ISuperAgreement } from \"./ISuperAgreement.sol\";\n\n\n/**\n * @title Superfluid token interface\n * @author Superfluid\n */\ninterface ISuperfluidToken {\n\n /**************************************************************************\n * Basic information\n *************************************************************************/\n\n /**\n * @dev Get superfluid host contract address\n */\n function getHost() external view returns(address host);\n\n /**\n * @dev Encoded liquidation type data mainly used for handling stack to deep errors\n *\n * Note:\n * - version: 1\n * - liquidationType key:\n * - 0 = reward account receives reward (PIC period)\n * - 1 = liquidator account receives reward (Pleb period)\n * - 2 = liquidator account receives reward (Pirate period/bailout)\n */\n struct LiquidationTypeData {\n uint256 version;\n uint8 liquidationType;\n }\n\n /**************************************************************************\n * Real-time balance functions\n *************************************************************************/\n\n /**\n * @dev Calculate the real balance of a user, taking in consideration all agreements of the account\n * @param account for the query\n * @param timestamp Time of balance\n * @return availableBalance Real-time balance\n * @return deposit Account deposit\n * @return owedDeposit Account owed Deposit\n */\n function realtimeBalanceOf(\n address account,\n uint256 timestamp\n )\n external view\n returns (\n int256 availableBalance,\n uint256 deposit,\n uint256 owedDeposit);\n\n /**\n * @notice Calculate the realtime balance given the current host.getNow() value\n * @dev realtimeBalanceOf with timestamp equals to block timestamp\n * @param account for the query\n * @return availableBalance Real-time balance\n * @return deposit Account deposit\n * @return owedDeposit Account owed Deposit\n */\n function realtimeBalanceOfNow(\n address account\n )\n external view\n returns (\n int256 availableBalance,\n uint256 deposit,\n uint256 owedDeposit,\n uint256 timestamp);\n\n /**\n * @notice Check if account is critical\n * @dev A critical account is when availableBalance < 0\n * @param account The account to check\n * @param timestamp The time we'd like to check if the account is critical (should use future)\n * @return isCritical Whether the account is critical\n */\n function isAccountCritical(\n address account,\n uint256 timestamp\n )\n external view\n returns(bool isCritical);\n\n /**\n * @notice Check if account is critical now (current host.getNow())\n * @dev A critical account is when availableBalance < 0\n * @param account The account to check\n * @return isCritical Whether the account is critical\n */\n function isAccountCriticalNow(\n address account\n )\n external view\n returns(bool isCritical);\n\n /**\n * @notice Check if account is solvent\n * @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n * @param account The account to check\n * @param timestamp The time we'd like to check if the account is solvent (should use future)\n * @return isSolvent\n */\n function isAccountSolvent(\n address account,\n uint256 timestamp\n )\n external view\n returns(bool isSolvent);\n\n /**\n * @notice Check if account is solvent now\n * @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n * @param account The account to check\n * @return isSolvent\n */\n function isAccountSolventNow(\n address account\n )\n external view\n returns(bool isSolvent);\n\n /**\n * @notice Get a list of agreements that is active for the account\n * @dev An active agreement is one that has state for the account\n * @param account Account to query\n * @return activeAgreements List of accounts that have non-zero states for the account\n */\n function getAccountActiveAgreements(address account)\n external view\n returns(ISuperAgreement[] memory activeAgreements);\n\n\n /**************************************************************************\n * Super Agreement hosting functions\n *************************************************************************/\n\n /**\n * @dev Create a new agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n function createAgreement(\n bytes32 id,\n bytes32[] calldata data\n )\n external;\n /**\n * @dev Agreement created event\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n event AgreementCreated(\n address indexed agreementClass,\n bytes32 id,\n bytes32[] data\n );\n\n /**\n * @dev Get data of the agreement\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @return data Data of the agreement\n */\n function getAgreementData(\n address agreementClass,\n bytes32 id,\n uint dataLength\n )\n external view\n returns(bytes32[] memory data);\n\n /**\n * @dev Create a new agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n function updateAgreementData(\n bytes32 id,\n bytes32[] calldata data\n )\n external;\n /**\n * @dev Agreement updated event\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n event AgreementUpdated(\n address indexed agreementClass,\n bytes32 id,\n bytes32[] data\n );\n\n /**\n * @dev Close the agreement\n * @param id Agreement ID\n */\n function terminateAgreement(\n bytes32 id,\n uint dataLength\n )\n external;\n /**\n * @dev Agreement terminated event\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n */\n event AgreementTerminated(\n address indexed agreementClass,\n bytes32 id\n );\n\n /**\n * @dev Update agreement state slot\n * @param account Account to be updated\n *\n * NOTE\n * - To clear the storage out, provide zero-ed array of intended length\n */\n function updateAgreementStateSlot(\n address account,\n uint256 slotId,\n bytes32[] calldata slotData\n )\n external;\n /**\n * @dev Agreement account state updated event\n * @param agreementClass Contract address of the agreement\n * @param account Account updated\n * @param slotId slot id of the agreement state\n */\n event AgreementStateUpdated(\n address indexed agreementClass,\n address indexed account,\n uint256 slotId\n );\n\n /**\n * @dev Get data of the slot of the state of an agreement\n * @param agreementClass Contract address of the agreement\n * @param account Account to query\n * @param slotId slot id of the state\n * @param dataLength length of the state data\n */\n function getAgreementStateSlot(\n address agreementClass,\n address account,\n uint256 slotId,\n uint dataLength\n )\n external view\n returns (bytes32[] memory slotData);\n\n /**\n * @notice Settle balance from an account by the agreement\n * @dev The agreement needs to make sure that the balance delta is balanced afterwards\n * @param account Account to query.\n * @param delta Amount of balance delta to be settled\n *\n * Modifiers:\n * - onlyAgreement\n */\n function settleBalance(\n address account,\n int256 delta\n )\n external;\n\n /**\n * @dev Make liquidation payouts (v2)\n * @param id Agreement ID\n * @param liquidationTypeData Data regarding the version of the liquidation schema and the type\n * @param liquidatorAccount Address of the executor of the liquidation\n * @param useDefaultRewardAccount Whether or not the default reward account receives the rewardAmount\n * @param targetAccount Account to be liquidated\n * @param rewardAmount The amount the rewarded account will receive\n * @param targetAccountBalanceDelta The delta amount the target account balance should change by\n *\n * - If a bailout is required (bailoutAmount > 0)\n * - the actual reward (single deposit) goes to the executor,\n * - while the reward account becomes the bailout account\n * - total bailout include: bailout amount + reward amount\n * - the targetAccount will be bailed out\n * - If a bailout is not required\n * - the targetAccount will pay the rewardAmount\n * - the liquidator (reward account in PIC period) will receive the rewardAmount\n *\n * Modifiers:\n * - onlyAgreement\n */\n function makeLiquidationPayoutsV2\n (\n bytes32 id,\n bytes memory liquidationTypeData,\n address liquidatorAccount,\n bool useDefaultRewardAccount,\n address targetAccount,\n uint256 rewardAmount,\n int256 targetAccountBalanceDelta\n ) external;\n /**\n * @dev Agreement liquidation event v2 (including agent account)\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param liquidatorAccount Address of the executor of the liquidation\n * @param targetAccount Account of the stream sender\n * @param rewardAmountReceiver Account that collects the reward or bails out insolvent accounts\n * @param rewardAmount The amount the reward recipient account balance should change by\n * @param targetAccountBalanceDelta The amount the sender account balance should change by\n * @param liquidationTypeData The encoded liquidation type data including the version (how to decode)\n *\n * NOTE:\n * Reward account rule:\n * - if the agreement is liquidated during the PIC period\n * - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount\n * - the targetAccount will pay for the rewardAmount\n * - if the agreement is liquidated after the PIC period AND the targetAccount is solvent\n * - the rewardAmountReceiver will get the rewardAmount (remaining deposit)\n * - the targetAccount will pay for the rewardAmount\n * - if the targetAccount is insolvent\n * - the liquidatorAccount will get the rewardAmount (single deposit)\n * - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount\n * - the targetAccount will receive the bailoutAmount\n */\n event AgreementLiquidatedV2(\n address indexed agreementClass,\n bytes32 id,\n address indexed liquidatorAccount,\n address indexed targetAccount,\n address rewardAmountReceiver,\n uint256 rewardAmount,\n int256 targetAccountBalanceDelta,\n bytes liquidationTypeData\n );\n\n /**************************************************************************\n * Function modifiers for access control and parameter validations\n *\n * While they cannot be explicitly stated in function definitions, they are\n * listed in function definition comments instead for clarity.\n *\n * NOTE: solidity-coverage not supporting it\n *************************************************************************/\n\n /// @dev The msg.sender must be host contract\n //modifier onlyHost() virtual;\n\n /// @dev The msg.sender must be a listed agreement.\n //modifier onlyAgreement() virtual;\n\n /**************************************************************************\n * DEPRECATED\n *************************************************************************/\n\n /**\n * @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedBy)\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param penaltyAccount Account of the agreement to be penalized\n * @param rewardAccount Account that collect the reward\n * @param rewardAmount Amount of liquidation reward\n *\n * NOTE:\n *\n * [DEPRECATED] Use AgreementLiquidatedV2 instead\n */\n event AgreementLiquidated(\n address indexed agreementClass,\n bytes32 id,\n address indexed penaltyAccount,\n address indexed rewardAccount,\n uint256 rewardAmount\n );\n\n /**\n * @dev System bailout occurred (DEPRECATED BY AgreementLiquidatedBy)\n * @param bailoutAccount Account that bailout the penalty account\n * @param bailoutAmount Amount of account bailout\n *\n * NOTE:\n *\n * [DEPRECATED] Use AgreementLiquidatedV2 instead\n */\n event Bailout(\n address indexed bailoutAccount,\n uint256 bailoutAmount\n );\n\n /**\n * @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedV2)\n * @param liquidatorAccount Account of the agent that performed the liquidation.\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param penaltyAccount Account of the agreement to be penalized\n * @param bondAccount Account that collect the reward or bailout accounts\n * @param rewardAmount Amount of liquidation reward\n * @param bailoutAmount Amount of liquidation bailouot\n *\n * NOTE:\n * Reward account rule:\n * - if bailout is equal to 0, then\n * - the bondAccount will get the rewardAmount,\n * - the penaltyAccount will pay for the rewardAmount.\n * - if bailout is larger than 0, then\n * - the liquidatorAccount will get the rewardAmouont,\n * - the bondAccount will pay for both the rewardAmount and bailoutAmount,\n * - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount.\n */\n event AgreementLiquidatedBy(\n address liquidatorAccount,\n address indexed agreementClass,\n bytes32 id,\n address indexed penaltyAccount,\n address indexed bondAccount,\n uint256 rewardAmount,\n uint256 bailoutAmount\n );\n}\n",
654
+ "source": "// SPDX-License-Identifier: AGPLv3\npragma solidity >= 0.8.0;\n\nimport { ISuperAgreement } from \"./ISuperAgreement.sol\";\n\n\n/**\n * @title Superfluid token interface\n * @author Superfluid\n */\ninterface ISuperfluidToken {\n\n /**************************************************************************\n * Basic information\n *************************************************************************/\n\n /**\n * @dev Get superfluid host contract address\n */\n function getHost() external view returns(address host);\n\n /**\n * @dev Encoded liquidation type data mainly used for handling stack to deep errors\n *\n * @custom:note \n * - version: 1\n * - liquidationType key:\n * - 0 = reward account receives reward (PIC period)\n * - 1 = liquidator account receives reward (Pleb period)\n * - 2 = liquidator account receives reward (Pirate period/bailout)\n */\n struct LiquidationTypeData {\n uint256 version;\n uint8 liquidationType;\n }\n\n /**************************************************************************\n * Real-time balance functions\n *************************************************************************/\n\n /**\n * @dev Calculate the real balance of a user, taking in consideration all agreements of the account\n * @param account for the query\n * @param timestamp Time of balance\n * @return availableBalance Real-time balance\n * @return deposit Account deposit\n * @return owedDeposit Account owed Deposit\n */\n function realtimeBalanceOf(\n address account,\n uint256 timestamp\n )\n external view\n returns (\n int256 availableBalance,\n uint256 deposit,\n uint256 owedDeposit);\n\n /**\n * @notice Calculate the realtime balance given the current host.getNow() value\n * @dev realtimeBalanceOf with timestamp equals to block timestamp\n * @param account for the query\n * @return availableBalance Real-time balance\n * @return deposit Account deposit\n * @return owedDeposit Account owed Deposit\n */\n function realtimeBalanceOfNow(\n address account\n )\n external view\n returns (\n int256 availableBalance,\n uint256 deposit,\n uint256 owedDeposit,\n uint256 timestamp);\n\n /**\n * @notice Check if account is critical\n * @dev A critical account is when availableBalance < 0\n * @param account The account to check\n * @param timestamp The time we'd like to check if the account is critical (should use future)\n * @return isCritical Whether the account is critical\n */\n function isAccountCritical(\n address account,\n uint256 timestamp\n )\n external view\n returns(bool isCritical);\n\n /**\n * @notice Check if account is critical now (current host.getNow())\n * @dev A critical account is when availableBalance < 0\n * @param account The account to check\n * @return isCritical Whether the account is critical\n */\n function isAccountCriticalNow(\n address account\n )\n external view\n returns(bool isCritical);\n\n /**\n * @notice Check if account is solvent\n * @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n * @param account The account to check\n * @param timestamp The time we'd like to check if the account is solvent (should use future)\n * @return isSolvent True if the account is solvent, false otherwise\n */\n function isAccountSolvent(\n address account,\n uint256 timestamp\n )\n external view\n returns(bool isSolvent);\n\n /**\n * @notice Check if account is solvent now\n * @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n * @param account The account to check\n * @return isSolvent True if the account is solvent, false otherwise\n */\n function isAccountSolventNow(\n address account\n )\n external view\n returns(bool isSolvent);\n\n /**\n * @notice Get a list of agreements that is active for the account\n * @dev An active agreement is one that has state for the account\n * @param account Account to query\n * @return activeAgreements List of accounts that have non-zero states for the account\n */\n function getAccountActiveAgreements(address account)\n external view\n returns(ISuperAgreement[] memory activeAgreements);\n\n\n /**************************************************************************\n * Super Agreement hosting functions\n *************************************************************************/\n\n /**\n * @dev Create a new agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n function createAgreement(\n bytes32 id,\n bytes32[] calldata data\n )\n external;\n /**\n * @dev Agreement created event\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n event AgreementCreated(\n address indexed agreementClass,\n bytes32 id,\n bytes32[] data\n );\n\n /**\n * @dev Get data of the agreement\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @return data Data of the agreement\n */\n function getAgreementData(\n address agreementClass,\n bytes32 id,\n uint dataLength\n )\n external view\n returns(bytes32[] memory data);\n\n /**\n * @dev Create a new agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n function updateAgreementData(\n bytes32 id,\n bytes32[] calldata data\n )\n external;\n /**\n * @dev Agreement updated event\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param data Agreement data\n */\n event AgreementUpdated(\n address indexed agreementClass,\n bytes32 id,\n bytes32[] data\n );\n\n /**\n * @dev Close the agreement\n * @param id Agreement ID\n */\n function terminateAgreement(\n bytes32 id,\n uint dataLength\n )\n external;\n /**\n * @dev Agreement terminated event\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n */\n event AgreementTerminated(\n address indexed agreementClass,\n bytes32 id\n );\n\n /**\n * @dev Update agreement state slot\n * @param account Account to be updated\n *\n * @custom:note \n * - To clear the storage out, provide zero-ed array of intended length\n */\n function updateAgreementStateSlot(\n address account,\n uint256 slotId,\n bytes32[] calldata slotData\n )\n external;\n /**\n * @dev Agreement account state updated event\n * @param agreementClass Contract address of the agreement\n * @param account Account updated\n * @param slotId slot id of the agreement state\n */\n event AgreementStateUpdated(\n address indexed agreementClass,\n address indexed account,\n uint256 slotId\n );\n\n /**\n * @dev Get data of the slot of the state of an agreement\n * @param agreementClass Contract address of the agreement\n * @param account Account to query\n * @param slotId slot id of the state\n * @param dataLength length of the state data\n */\n function getAgreementStateSlot(\n address agreementClass,\n address account,\n uint256 slotId,\n uint dataLength\n )\n external view\n returns (bytes32[] memory slotData);\n\n /**\n * @notice Settle balance from an account by the agreement\n * @dev The agreement needs to make sure that the balance delta is balanced afterwards\n * @param account Account to query.\n * @param delta Amount of balance delta to be settled\n *\n * @custom:modifiers \n * - onlyAgreement\n */\n function settleBalance(\n address account,\n int256 delta\n )\n external;\n\n /**\n * @dev Make liquidation payouts (v2)\n * @param id Agreement ID\n * @param liquidationTypeData Data regarding the version of the liquidation schema and the type\n * @param liquidatorAccount Address of the executor of the liquidation\n * @param useDefaultRewardAccount Whether or not the default reward account receives the rewardAmount\n * @param targetAccount Account to be liquidated\n * @param rewardAmount The amount the rewarded account will receive\n * @param targetAccountBalanceDelta The delta amount the target account balance should change by\n *\n * @custom:note \n * - If a bailout is required (bailoutAmount > 0)\n * - the actual reward (single deposit) goes to the executor,\n * - while the reward account becomes the bailout account\n * - total bailout include: bailout amount + reward amount\n * - the targetAccount will be bailed out\n * - If a bailout is not required\n * - the targetAccount will pay the rewardAmount\n * - the liquidator (reward account in PIC period) will receive the rewardAmount\n *\n * @custom:modifiers \n * - onlyAgreement\n */\n function makeLiquidationPayoutsV2\n (\n bytes32 id,\n bytes memory liquidationTypeData,\n address liquidatorAccount,\n bool useDefaultRewardAccount,\n address targetAccount,\n uint256 rewardAmount,\n int256 targetAccountBalanceDelta\n ) external;\n /**\n * @dev Agreement liquidation event v2 (including agent account)\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param liquidatorAccount Address of the executor of the liquidation\n * @param targetAccount Account of the stream sender\n * @param rewardAmountReceiver Account that collects the reward or bails out insolvent accounts\n * @param rewardAmount The amount the reward recipient account balance should change by\n * @param targetAccountBalanceDelta The amount the sender account balance should change by\n * @param liquidationTypeData The encoded liquidation type data including the version (how to decode)\n *\n * @custom:note \n * Reward account rule:\n * - if the agreement is liquidated during the PIC period\n * - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount\n * - the targetAccount will pay for the rewardAmount\n * - if the agreement is liquidated after the PIC period AND the targetAccount is solvent\n * - the rewardAmountReceiver will get the rewardAmount (remaining deposit)\n * - the targetAccount will pay for the rewardAmount\n * - if the targetAccount is insolvent\n * - the liquidatorAccount will get the rewardAmount (single deposit)\n * - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount\n * - the targetAccount will receive the bailoutAmount\n */\n event AgreementLiquidatedV2(\n address indexed agreementClass,\n bytes32 id,\n address indexed liquidatorAccount,\n address indexed targetAccount,\n address rewardAmountReceiver,\n uint256 rewardAmount,\n int256 targetAccountBalanceDelta,\n bytes liquidationTypeData\n );\n\n /**************************************************************************\n * Function modifiers for access control and parameter validations\n *\n * While they cannot be explicitly stated in function definitions, they are\n * listed in function definition comments instead for clarity.\n *\n * NOTE: solidity-coverage not supporting it\n *************************************************************************/\n\n /// @dev The msg.sender must be host contract\n //modifier onlyHost() virtual;\n\n /// @dev The msg.sender must be a listed agreement.\n //modifier onlyAgreement() virtual;\n\n /**************************************************************************\n * DEPRECATED\n *************************************************************************/\n\n /**\n * @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedBy)\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param penaltyAccount Account of the agreement to be penalized\n * @param rewardAccount Account that collect the reward\n * @param rewardAmount Amount of liquidation reward\n *\n * @custom:deprecated Use AgreementLiquidatedV2 instead\n */\n event AgreementLiquidated(\n address indexed agreementClass,\n bytes32 id,\n address indexed penaltyAccount,\n address indexed rewardAccount,\n uint256 rewardAmount\n );\n\n /**\n * @dev System bailout occurred (DEPRECATED BY AgreementLiquidatedBy)\n * @param bailoutAccount Account that bailout the penalty account\n * @param bailoutAmount Amount of account bailout\n *\n * @custom:deprecated Use AgreementLiquidatedV2 instead\n */\n event Bailout(\n address indexed bailoutAccount,\n uint256 bailoutAmount\n );\n\n /**\n * @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedV2)\n * @param liquidatorAccount Account of the agent that performed the liquidation.\n * @param agreementClass Contract address of the agreement\n * @param id Agreement ID\n * @param penaltyAccount Account of the agreement to be penalized\n * @param bondAccount Account that collect the reward or bailout accounts\n * @param rewardAmount Amount of liquidation reward\n * @param bailoutAmount Amount of liquidation bailouot\n *\n * @custom:deprecated Use AgreementLiquidatedV2 instead\n *\n * @custom:note \n * Reward account rule:\n * - if bailout is equal to 0, then\n * - the bondAccount will get the rewardAmount,\n * - the penaltyAccount will pay for the rewardAmount.\n * - if bailout is larger than 0, then\n * - the liquidatorAccount will get the rewardAmouont,\n * - the bondAccount will pay for both the rewardAmount and bailoutAmount,\n * - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount.\n */\n event AgreementLiquidatedBy(\n address liquidatorAccount,\n address indexed agreementClass,\n bytes32 id,\n address indexed penaltyAccount,\n address indexed bondAccount,\n uint256 rewardAmount,\n uint256 bailoutAmount\n );\n}\n",
655
655
  "sourcePath": "/home/runner/work/protocol-monorepo/protocol-monorepo/packages/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidToken.sol",
656
656
  "ast": {
657
657
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluidToken.sol",
@@ -795,10 +795,10 @@
795
795
  "id": 18460,
796
796
  "mutability": "mutable",
797
797
  "name": "version",
798
- "nameLocation": "953:7:49",
798
+ "nameLocation": "961:7:49",
799
799
  "nodeType": "VariableDeclaration",
800
800
  "scope": 18463,
801
- "src": "945:15:49",
801
+ "src": "953:15:49",
802
802
  "stateVariable": false,
803
803
  "storageLocation": "default",
804
804
  "typeDescriptions": {
@@ -809,7 +809,7 @@
809
809
  "id": 18459,
810
810
  "name": "uint256",
811
811
  "nodeType": "ElementaryTypeName",
812
- "src": "945:7:49",
812
+ "src": "953:7:49",
813
813
  "typeDescriptions": {
814
814
  "typeIdentifier": "t_uint256",
815
815
  "typeString": "uint256"
@@ -822,10 +822,10 @@
822
822
  "id": 18462,
823
823
  "mutability": "mutable",
824
824
  "name": "liquidationType",
825
- "nameLocation": "976:15:49",
825
+ "nameLocation": "984:15:49",
826
826
  "nodeType": "VariableDeclaration",
827
827
  "scope": 18463,
828
- "src": "970:21:49",
828
+ "src": "978:21:49",
829
829
  "stateVariable": false,
830
830
  "storageLocation": "default",
831
831
  "typeDescriptions": {
@@ -836,7 +836,7 @@
836
836
  "id": 18461,
837
837
  "name": "uint8",
838
838
  "nodeType": "ElementaryTypeName",
839
- "src": "970:5:49",
839
+ "src": "978:5:49",
840
840
  "typeDescriptions": {
841
841
  "typeIdentifier": "t_uint8",
842
842
  "typeString": "uint8"
@@ -846,17 +846,17 @@
846
846
  }
847
847
  ],
848
848
  "name": "LiquidationTypeData",
849
- "nameLocation": "915:19:49",
849
+ "nameLocation": "923:19:49",
850
850
  "nodeType": "StructDefinition",
851
851
  "scope": 18721,
852
- "src": "908:90:49",
852
+ "src": "916:90:49",
853
853
  "visibility": "public"
854
854
  },
855
855
  {
856
856
  "documentation": {
857
857
  "id": 18464,
858
858
  "nodeType": "StructuredDocumentation",
859
- "src": "1200:321:49",
859
+ "src": "1208:321:49",
860
860
  "text": " @dev Calculate the real balance of a user, taking in consideration all agreements of the account\n @param account for the query\n @param timestamp Time of balance\n @return availableBalance Real-time balance\n @return deposit Account deposit\n @return owedDeposit Account owed Deposit"
861
861
  },
862
862
  "functionSelector": "eb3537cc",
@@ -865,7 +865,7 @@
865
865
  "kind": "function",
866
866
  "modifiers": [],
867
867
  "name": "realtimeBalanceOf",
868
- "nameLocation": "1535:17:49",
868
+ "nameLocation": "1543:17:49",
869
869
  "nodeType": "FunctionDefinition",
870
870
  "parameters": {
871
871
  "id": 18469,
@@ -876,10 +876,10 @@
876
876
  "id": 18466,
877
877
  "mutability": "mutable",
878
878
  "name": "account",
879
- "nameLocation": "1569:7:49",
879
+ "nameLocation": "1577:7:49",
880
880
  "nodeType": "VariableDeclaration",
881
881
  "scope": 18477,
882
- "src": "1561:15:49",
882
+ "src": "1569:15:49",
883
883
  "stateVariable": false,
884
884
  "storageLocation": "default",
885
885
  "typeDescriptions": {
@@ -890,7 +890,7 @@
890
890
  "id": 18465,
891
891
  "name": "address",
892
892
  "nodeType": "ElementaryTypeName",
893
- "src": "1561:7:49",
893
+ "src": "1569:7:49",
894
894
  "stateMutability": "nonpayable",
895
895
  "typeDescriptions": {
896
896
  "typeIdentifier": "t_address",
@@ -904,10 +904,10 @@
904
904
  "id": 18468,
905
905
  "mutability": "mutable",
906
906
  "name": "timestamp",
907
- "nameLocation": "1593:9:49",
907
+ "nameLocation": "1601:9:49",
908
908
  "nodeType": "VariableDeclaration",
909
909
  "scope": 18477,
910
- "src": "1585:17:49",
910
+ "src": "1593:17:49",
911
911
  "stateVariable": false,
912
912
  "storageLocation": "default",
913
913
  "typeDescriptions": {
@@ -918,7 +918,7 @@
918
918
  "id": 18467,
919
919
  "name": "uint256",
920
920
  "nodeType": "ElementaryTypeName",
921
- "src": "1585:7:49",
921
+ "src": "1593:7:49",
922
922
  "typeDescriptions": {
923
923
  "typeIdentifier": "t_uint256",
924
924
  "typeString": "uint256"
@@ -927,7 +927,7 @@
927
927
  "visibility": "internal"
928
928
  }
929
929
  ],
930
- "src": "1552:56:49"
930
+ "src": "1560:56:49"
931
931
  },
932
932
  "returnParameters": {
933
933
  "id": 18476,
@@ -938,10 +938,10 @@
938
938
  "id": 18471,
939
939
  "mutability": "mutable",
940
940
  "name": "availableBalance",
941
- "nameLocation": "1668:16:49",
941
+ "nameLocation": "1676:16:49",
942
942
  "nodeType": "VariableDeclaration",
943
943
  "scope": 18477,
944
- "src": "1661:23:49",
944
+ "src": "1669:23:49",
945
945
  "stateVariable": false,
946
946
  "storageLocation": "default",
947
947
  "typeDescriptions": {
@@ -952,7 +952,7 @@
952
952
  "id": 18470,
953
953
  "name": "int256",
954
954
  "nodeType": "ElementaryTypeName",
955
- "src": "1661:6:49",
955
+ "src": "1669:6:49",
956
956
  "typeDescriptions": {
957
957
  "typeIdentifier": "t_int256",
958
958
  "typeString": "int256"
@@ -965,10 +965,10 @@
965
965
  "id": 18473,
966
966
  "mutability": "mutable",
967
967
  "name": "deposit",
968
- "nameLocation": "1706:7:49",
968
+ "nameLocation": "1714:7:49",
969
969
  "nodeType": "VariableDeclaration",
970
970
  "scope": 18477,
971
- "src": "1698:15:49",
971
+ "src": "1706:15:49",
972
972
  "stateVariable": false,
973
973
  "storageLocation": "default",
974
974
  "typeDescriptions": {
@@ -979,7 +979,7 @@
979
979
  "id": 18472,
980
980
  "name": "uint256",
981
981
  "nodeType": "ElementaryTypeName",
982
- "src": "1698:7:49",
982
+ "src": "1706:7:49",
983
983
  "typeDescriptions": {
984
984
  "typeIdentifier": "t_uint256",
985
985
  "typeString": "uint256"
@@ -992,10 +992,10 @@
992
992
  "id": 18475,
993
993
  "mutability": "mutable",
994
994
  "name": "owedDeposit",
995
- "nameLocation": "1735:11:49",
995
+ "nameLocation": "1743:11:49",
996
996
  "nodeType": "VariableDeclaration",
997
997
  "scope": 18477,
998
- "src": "1727:19:49",
998
+ "src": "1735:19:49",
999
999
  "stateVariable": false,
1000
1000
  "storageLocation": "default",
1001
1001
  "typeDescriptions": {
@@ -1006,7 +1006,7 @@
1006
1006
  "id": 18474,
1007
1007
  "name": "uint256",
1008
1008
  "nodeType": "ElementaryTypeName",
1009
- "src": "1727:7:49",
1009
+ "src": "1735:7:49",
1010
1010
  "typeDescriptions": {
1011
1011
  "typeIdentifier": "t_uint256",
1012
1012
  "typeString": "uint256"
@@ -1015,10 +1015,10 @@
1015
1015
  "visibility": "internal"
1016
1016
  }
1017
1017
  ],
1018
- "src": "1647:100:49"
1018
+ "src": "1655:100:49"
1019
1019
  },
1020
1020
  "scope": 18721,
1021
- "src": "1526:222:49",
1021
+ "src": "1534:222:49",
1022
1022
  "stateMutability": "view",
1023
1023
  "virtual": false,
1024
1024
  "visibility": "external"
@@ -1027,7 +1027,7 @@
1027
1027
  "documentation": {
1028
1028
  "id": 18478,
1029
1029
  "nodeType": "StructuredDocumentation",
1030
- "src": "1754:339:49",
1030
+ "src": "1762:339:49",
1031
1031
  "text": " @notice Calculate the realtime balance given the current host.getNow() value\n @dev realtimeBalanceOf with timestamp equals to block timestamp\n @param account for the query\n @return availableBalance Real-time balance\n @return deposit Account deposit\n @return owedDeposit Account owed Deposit"
1032
1032
  },
1033
1033
  "functionSelector": "2ec8eec7",
@@ -1036,7 +1036,7 @@
1036
1036
  "kind": "function",
1037
1037
  "modifiers": [],
1038
1038
  "name": "realtimeBalanceOfNow",
1039
- "nameLocation": "2107:20:49",
1039
+ "nameLocation": "2115:20:49",
1040
1040
  "nodeType": "FunctionDefinition",
1041
1041
  "parameters": {
1042
1042
  "id": 18481,
@@ -1047,10 +1047,10 @@
1047
1047
  "id": 18480,
1048
1048
  "mutability": "mutable",
1049
1049
  "name": "account",
1050
- "nameLocation": "2144:7:49",
1050
+ "nameLocation": "2152:7:49",
1051
1051
  "nodeType": "VariableDeclaration",
1052
1052
  "scope": 18491,
1053
- "src": "2136:15:49",
1053
+ "src": "2144:15:49",
1054
1054
  "stateVariable": false,
1055
1055
  "storageLocation": "default",
1056
1056
  "typeDescriptions": {
@@ -1061,7 +1061,7 @@
1061
1061
  "id": 18479,
1062
1062
  "name": "address",
1063
1063
  "nodeType": "ElementaryTypeName",
1064
- "src": "2136:7:49",
1064
+ "src": "2144:7:49",
1065
1065
  "stateMutability": "nonpayable",
1066
1066
  "typeDescriptions": {
1067
1067
  "typeIdentifier": "t_address",
@@ -1071,7 +1071,7 @@
1071
1071
  "visibility": "internal"
1072
1072
  }
1073
1073
  ],
1074
- "src": "2127:30:49"
1074
+ "src": "2135:30:49"
1075
1075
  },
1076
1076
  "returnParameters": {
1077
1077
  "id": 18490,
@@ -1082,10 +1082,10 @@
1082
1082
  "id": 18483,
1083
1083
  "mutability": "mutable",
1084
1084
  "name": "availableBalance",
1085
- "nameLocation": "2217:16:49",
1085
+ "nameLocation": "2225:16:49",
1086
1086
  "nodeType": "VariableDeclaration",
1087
1087
  "scope": 18491,
1088
- "src": "2210:23:49",
1088
+ "src": "2218:23:49",
1089
1089
  "stateVariable": false,
1090
1090
  "storageLocation": "default",
1091
1091
  "typeDescriptions": {
@@ -1096,7 +1096,7 @@
1096
1096
  "id": 18482,
1097
1097
  "name": "int256",
1098
1098
  "nodeType": "ElementaryTypeName",
1099
- "src": "2210:6:49",
1099
+ "src": "2218:6:49",
1100
1100
  "typeDescriptions": {
1101
1101
  "typeIdentifier": "t_int256",
1102
1102
  "typeString": "int256"
@@ -1109,10 +1109,10 @@
1109
1109
  "id": 18485,
1110
1110
  "mutability": "mutable",
1111
1111
  "name": "deposit",
1112
- "nameLocation": "2255:7:49",
1112
+ "nameLocation": "2263:7:49",
1113
1113
  "nodeType": "VariableDeclaration",
1114
1114
  "scope": 18491,
1115
- "src": "2247:15:49",
1115
+ "src": "2255:15:49",
1116
1116
  "stateVariable": false,
1117
1117
  "storageLocation": "default",
1118
1118
  "typeDescriptions": {
@@ -1123,7 +1123,7 @@
1123
1123
  "id": 18484,
1124
1124
  "name": "uint256",
1125
1125
  "nodeType": "ElementaryTypeName",
1126
- "src": "2247:7:49",
1126
+ "src": "2255:7:49",
1127
1127
  "typeDescriptions": {
1128
1128
  "typeIdentifier": "t_uint256",
1129
1129
  "typeString": "uint256"
@@ -1136,10 +1136,10 @@
1136
1136
  "id": 18487,
1137
1137
  "mutability": "mutable",
1138
1138
  "name": "owedDeposit",
1139
- "nameLocation": "2284:11:49",
1139
+ "nameLocation": "2292:11:49",
1140
1140
  "nodeType": "VariableDeclaration",
1141
1141
  "scope": 18491,
1142
- "src": "2276:19:49",
1142
+ "src": "2284:19:49",
1143
1143
  "stateVariable": false,
1144
1144
  "storageLocation": "default",
1145
1145
  "typeDescriptions": {
@@ -1150,7 +1150,7 @@
1150
1150
  "id": 18486,
1151
1151
  "name": "uint256",
1152
1152
  "nodeType": "ElementaryTypeName",
1153
- "src": "2276:7:49",
1153
+ "src": "2284:7:49",
1154
1154
  "typeDescriptions": {
1155
1155
  "typeIdentifier": "t_uint256",
1156
1156
  "typeString": "uint256"
@@ -1163,10 +1163,10 @@
1163
1163
  "id": 18489,
1164
1164
  "mutability": "mutable",
1165
1165
  "name": "timestamp",
1166
- "nameLocation": "2317:9:49",
1166
+ "nameLocation": "2325:9:49",
1167
1167
  "nodeType": "VariableDeclaration",
1168
1168
  "scope": 18491,
1169
- "src": "2309:17:49",
1169
+ "src": "2317:17:49",
1170
1170
  "stateVariable": false,
1171
1171
  "storageLocation": "default",
1172
1172
  "typeDescriptions": {
@@ -1177,7 +1177,7 @@
1177
1177
  "id": 18488,
1178
1178
  "name": "uint256",
1179
1179
  "nodeType": "ElementaryTypeName",
1180
- "src": "2309:7:49",
1180
+ "src": "2317:7:49",
1181
1181
  "typeDescriptions": {
1182
1182
  "typeIdentifier": "t_uint256",
1183
1183
  "typeString": "uint256"
@@ -1186,10 +1186,10 @@
1186
1186
  "visibility": "internal"
1187
1187
  }
1188
1188
  ],
1189
- "src": "2196:131:49"
1189
+ "src": "2204:131:49"
1190
1190
  },
1191
1191
  "scope": 18721,
1192
- "src": "2098:230:49",
1192
+ "src": "2106:230:49",
1193
1193
  "stateMutability": "view",
1194
1194
  "virtual": false,
1195
1195
  "visibility": "external"
@@ -1198,7 +1198,7 @@
1198
1198
  "documentation": {
1199
1199
  "id": 18492,
1200
1200
  "nodeType": "StructuredDocumentation",
1201
- "src": "2334:309:49",
1201
+ "src": "2342:309:49",
1202
1202
  "text": " @notice Check if account is critical\n @dev A critical account is when availableBalance < 0\n @param account The account to check\n @param timestamp The time we'd like to check if the account is critical (should use future)\n @return isCritical Whether the account is critical"
1203
1203
  },
1204
1204
  "functionSelector": "d9d078d6",
@@ -1207,7 +1207,7 @@
1207
1207
  "kind": "function",
1208
1208
  "modifiers": [],
1209
1209
  "name": "isAccountCritical",
1210
- "nameLocation": "2657:17:49",
1210
+ "nameLocation": "2665:17:49",
1211
1211
  "nodeType": "FunctionDefinition",
1212
1212
  "parameters": {
1213
1213
  "id": 18497,
@@ -1218,10 +1218,10 @@
1218
1218
  "id": 18494,
1219
1219
  "mutability": "mutable",
1220
1220
  "name": "account",
1221
- "nameLocation": "2692:7:49",
1221
+ "nameLocation": "2700:7:49",
1222
1222
  "nodeType": "VariableDeclaration",
1223
1223
  "scope": 18501,
1224
- "src": "2684:15:49",
1224
+ "src": "2692:15:49",
1225
1225
  "stateVariable": false,
1226
1226
  "storageLocation": "default",
1227
1227
  "typeDescriptions": {
@@ -1232,7 +1232,7 @@
1232
1232
  "id": 18493,
1233
1233
  "name": "address",
1234
1234
  "nodeType": "ElementaryTypeName",
1235
- "src": "2684:7:49",
1235
+ "src": "2692:7:49",
1236
1236
  "stateMutability": "nonpayable",
1237
1237
  "typeDescriptions": {
1238
1238
  "typeIdentifier": "t_address",
@@ -1246,10 +1246,10 @@
1246
1246
  "id": 18496,
1247
1247
  "mutability": "mutable",
1248
1248
  "name": "timestamp",
1249
- "nameLocation": "2717:9:49",
1249
+ "nameLocation": "2725:9:49",
1250
1250
  "nodeType": "VariableDeclaration",
1251
1251
  "scope": 18501,
1252
- "src": "2709:17:49",
1252
+ "src": "2717:17:49",
1253
1253
  "stateVariable": false,
1254
1254
  "storageLocation": "default",
1255
1255
  "typeDescriptions": {
@@ -1260,7 +1260,7 @@
1260
1260
  "id": 18495,
1261
1261
  "name": "uint256",
1262
1262
  "nodeType": "ElementaryTypeName",
1263
- "src": "2709:7:49",
1263
+ "src": "2717:7:49",
1264
1264
  "typeDescriptions": {
1265
1265
  "typeIdentifier": "t_uint256",
1266
1266
  "typeString": "uint256"
@@ -1269,7 +1269,7 @@
1269
1269
  "visibility": "internal"
1270
1270
  }
1271
1271
  ],
1272
- "src": "2674:58:49"
1272
+ "src": "2682:58:49"
1273
1273
  },
1274
1274
  "returnParameters": {
1275
1275
  "id": 18500,
@@ -1280,10 +1280,10 @@
1280
1280
  "id": 18499,
1281
1281
  "mutability": "mutable",
1282
1282
  "name": "isCritical",
1283
- "nameLocation": "2776:10:49",
1283
+ "nameLocation": "2784:10:49",
1284
1284
  "nodeType": "VariableDeclaration",
1285
1285
  "scope": 18501,
1286
- "src": "2771:15:49",
1286
+ "src": "2779:15:49",
1287
1287
  "stateVariable": false,
1288
1288
  "storageLocation": "default",
1289
1289
  "typeDescriptions": {
@@ -1294,7 +1294,7 @@
1294
1294
  "id": 18498,
1295
1295
  "name": "bool",
1296
1296
  "nodeType": "ElementaryTypeName",
1297
- "src": "2771:4:49",
1297
+ "src": "2779:4:49",
1298
1298
  "typeDescriptions": {
1299
1299
  "typeIdentifier": "t_bool",
1300
1300
  "typeString": "bool"
@@ -1303,10 +1303,10 @@
1303
1303
  "visibility": "internal"
1304
1304
  }
1305
1305
  ],
1306
- "src": "2770:17:49"
1306
+ "src": "2778:17:49"
1307
1307
  },
1308
1308
  "scope": 18721,
1309
- "src": "2648:140:49",
1309
+ "src": "2656:140:49",
1310
1310
  "stateMutability": "view",
1311
1311
  "virtual": false,
1312
1312
  "visibility": "external"
@@ -1315,7 +1315,7 @@
1315
1315
  "documentation": {
1316
1316
  "id": 18502,
1317
1317
  "nodeType": "StructuredDocumentation",
1318
- "src": "2794:239:49",
1318
+ "src": "2802:239:49",
1319
1319
  "text": " @notice Check if account is critical now (current host.getNow())\n @dev A critical account is when availableBalance < 0\n @param account The account to check\n @return isCritical Whether the account is critical"
1320
1320
  },
1321
1321
  "functionSelector": "79359f6f",
@@ -1324,7 +1324,7 @@
1324
1324
  "kind": "function",
1325
1325
  "modifiers": [],
1326
1326
  "name": "isAccountCriticalNow",
1327
- "nameLocation": "3047:20:49",
1327
+ "nameLocation": "3055:20:49",
1328
1328
  "nodeType": "FunctionDefinition",
1329
1329
  "parameters": {
1330
1330
  "id": 18505,
@@ -1335,10 +1335,10 @@
1335
1335
  "id": 18504,
1336
1336
  "mutability": "mutable",
1337
1337
  "name": "account",
1338
- "nameLocation": "3085:7:49",
1338
+ "nameLocation": "3093:7:49",
1339
1339
  "nodeType": "VariableDeclaration",
1340
1340
  "scope": 18509,
1341
- "src": "3077:15:49",
1341
+ "src": "3085:15:49",
1342
1342
  "stateVariable": false,
1343
1343
  "storageLocation": "default",
1344
1344
  "typeDescriptions": {
@@ -1349,7 +1349,7 @@
1349
1349
  "id": 18503,
1350
1350
  "name": "address",
1351
1351
  "nodeType": "ElementaryTypeName",
1352
- "src": "3077:7:49",
1352
+ "src": "3085:7:49",
1353
1353
  "stateMutability": "nonpayable",
1354
1354
  "typeDescriptions": {
1355
1355
  "typeIdentifier": "t_address",
@@ -1359,7 +1359,7 @@
1359
1359
  "visibility": "internal"
1360
1360
  }
1361
1361
  ],
1362
- "src": "3067:31:49"
1362
+ "src": "3075:31:49"
1363
1363
  },
1364
1364
  "returnParameters": {
1365
1365
  "id": 18508,
@@ -1370,10 +1370,10 @@
1370
1370
  "id": 18507,
1371
1371
  "mutability": "mutable",
1372
1372
  "name": "isCritical",
1373
- "nameLocation": "3142:10:49",
1373
+ "nameLocation": "3150:10:49",
1374
1374
  "nodeType": "VariableDeclaration",
1375
1375
  "scope": 18509,
1376
- "src": "3137:15:49",
1376
+ "src": "3145:15:49",
1377
1377
  "stateVariable": false,
1378
1378
  "storageLocation": "default",
1379
1379
  "typeDescriptions": {
@@ -1384,7 +1384,7 @@
1384
1384
  "id": 18506,
1385
1385
  "name": "bool",
1386
1386
  "nodeType": "ElementaryTypeName",
1387
- "src": "3137:4:49",
1387
+ "src": "3145:4:49",
1388
1388
  "typeDescriptions": {
1389
1389
  "typeIdentifier": "t_bool",
1390
1390
  "typeString": "bool"
@@ -1393,10 +1393,10 @@
1393
1393
  "visibility": "internal"
1394
1394
  }
1395
1395
  ],
1396
- "src": "3136:17:49"
1396
+ "src": "3144:17:49"
1397
1397
  },
1398
1398
  "scope": 18721,
1399
- "src": "3038:116:49",
1399
+ "src": "3046:116:49",
1400
1400
  "stateMutability": "view",
1401
1401
  "virtual": false,
1402
1402
  "visibility": "external"
@@ -1405,8 +1405,8 @@
1405
1405
  "documentation": {
1406
1406
  "id": 18510,
1407
1407
  "nodeType": "StructuredDocumentation",
1408
- "src": "3160:335:49",
1409
- "text": " @notice Check if account is solvent\n @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n @param account The account to check\n @param timestamp The time we'd like to check if the account is solvent (should use future)\n @return isSolvent"
1408
+ "src": "3168:383:49",
1409
+ "text": " @notice Check if account is solvent\n @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n @param account The account to check\n @param timestamp The time we'd like to check if the account is solvent (should use future)\n @return isSolvent True if the account is solvent, false otherwise"
1410
1410
  },
1411
1411
  "functionSelector": "b84cdd4a",
1412
1412
  "id": 18519,
@@ -1414,7 +1414,7 @@
1414
1414
  "kind": "function",
1415
1415
  "modifiers": [],
1416
1416
  "name": "isAccountSolvent",
1417
- "nameLocation": "3509:16:49",
1417
+ "nameLocation": "3565:16:49",
1418
1418
  "nodeType": "FunctionDefinition",
1419
1419
  "parameters": {
1420
1420
  "id": 18515,
@@ -1425,10 +1425,10 @@
1425
1425
  "id": 18512,
1426
1426
  "mutability": "mutable",
1427
1427
  "name": "account",
1428
- "nameLocation": "3543:7:49",
1428
+ "nameLocation": "3599:7:49",
1429
1429
  "nodeType": "VariableDeclaration",
1430
1430
  "scope": 18519,
1431
- "src": "3535:15:49",
1431
+ "src": "3591:15:49",
1432
1432
  "stateVariable": false,
1433
1433
  "storageLocation": "default",
1434
1434
  "typeDescriptions": {
@@ -1439,7 +1439,7 @@
1439
1439
  "id": 18511,
1440
1440
  "name": "address",
1441
1441
  "nodeType": "ElementaryTypeName",
1442
- "src": "3535:7:49",
1442
+ "src": "3591:7:49",
1443
1443
  "stateMutability": "nonpayable",
1444
1444
  "typeDescriptions": {
1445
1445
  "typeIdentifier": "t_address",
@@ -1453,10 +1453,10 @@
1453
1453
  "id": 18514,
1454
1454
  "mutability": "mutable",
1455
1455
  "name": "timestamp",
1456
- "nameLocation": "3568:9:49",
1456
+ "nameLocation": "3624:9:49",
1457
1457
  "nodeType": "VariableDeclaration",
1458
1458
  "scope": 18519,
1459
- "src": "3560:17:49",
1459
+ "src": "3616:17:49",
1460
1460
  "stateVariable": false,
1461
1461
  "storageLocation": "default",
1462
1462
  "typeDescriptions": {
@@ -1467,7 +1467,7 @@
1467
1467
  "id": 18513,
1468
1468
  "name": "uint256",
1469
1469
  "nodeType": "ElementaryTypeName",
1470
- "src": "3560:7:49",
1470
+ "src": "3616:7:49",
1471
1471
  "typeDescriptions": {
1472
1472
  "typeIdentifier": "t_uint256",
1473
1473
  "typeString": "uint256"
@@ -1476,7 +1476,7 @@
1476
1476
  "visibility": "internal"
1477
1477
  }
1478
1478
  ],
1479
- "src": "3525:58:49"
1479
+ "src": "3581:58:49"
1480
1480
  },
1481
1481
  "returnParameters": {
1482
1482
  "id": 18518,
@@ -1487,10 +1487,10 @@
1487
1487
  "id": 18517,
1488
1488
  "mutability": "mutable",
1489
1489
  "name": "isSolvent",
1490
- "nameLocation": "3627:9:49",
1490
+ "nameLocation": "3683:9:49",
1491
1491
  "nodeType": "VariableDeclaration",
1492
1492
  "scope": 18519,
1493
- "src": "3622:14:49",
1493
+ "src": "3678:14:49",
1494
1494
  "stateVariable": false,
1495
1495
  "storageLocation": "default",
1496
1496
  "typeDescriptions": {
@@ -1501,7 +1501,7 @@
1501
1501
  "id": 18516,
1502
1502
  "name": "bool",
1503
1503
  "nodeType": "ElementaryTypeName",
1504
- "src": "3622:4:49",
1504
+ "src": "3678:4:49",
1505
1505
  "typeDescriptions": {
1506
1506
  "typeIdentifier": "t_bool",
1507
1507
  "typeString": "bool"
@@ -1510,10 +1510,10 @@
1510
1510
  "visibility": "internal"
1511
1511
  }
1512
1512
  ],
1513
- "src": "3621:16:49"
1513
+ "src": "3677:16:49"
1514
1514
  },
1515
1515
  "scope": 18721,
1516
- "src": "3500:138:49",
1516
+ "src": "3556:138:49",
1517
1517
  "stateMutability": "view",
1518
1518
  "virtual": false,
1519
1519
  "visibility": "external"
@@ -1522,8 +1522,8 @@
1522
1522
  "documentation": {
1523
1523
  "id": 18520,
1524
1524
  "nodeType": "StructuredDocumentation",
1525
- "src": "3644:241:49",
1526
- "text": " @notice Check if account is solvent now\n @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n @param account The account to check\n @return isSolvent"
1525
+ "src": "3700:289:49",
1526
+ "text": " @notice Check if account is solvent now\n @dev An account is insolvent when the sum of deposits for a token can't cover the negative availableBalance\n @param account The account to check\n @return isSolvent True if the account is solvent, false otherwise"
1527
1527
  },
1528
1528
  "functionSelector": "bb0d196e",
1529
1529
  "id": 18527,
@@ -1531,7 +1531,7 @@
1531
1531
  "kind": "function",
1532
1532
  "modifiers": [],
1533
1533
  "name": "isAccountSolventNow",
1534
- "nameLocation": "3899:19:49",
1534
+ "nameLocation": "4003:19:49",
1535
1535
  "nodeType": "FunctionDefinition",
1536
1536
  "parameters": {
1537
1537
  "id": 18523,
@@ -1542,10 +1542,10 @@
1542
1542
  "id": 18522,
1543
1543
  "mutability": "mutable",
1544
1544
  "name": "account",
1545
- "nameLocation": "3936:7:49",
1545
+ "nameLocation": "4040:7:49",
1546
1546
  "nodeType": "VariableDeclaration",
1547
1547
  "scope": 18527,
1548
- "src": "3928:15:49",
1548
+ "src": "4032:15:49",
1549
1549
  "stateVariable": false,
1550
1550
  "storageLocation": "default",
1551
1551
  "typeDescriptions": {
@@ -1556,7 +1556,7 @@
1556
1556
  "id": 18521,
1557
1557
  "name": "address",
1558
1558
  "nodeType": "ElementaryTypeName",
1559
- "src": "3928:7:49",
1559
+ "src": "4032:7:49",
1560
1560
  "stateMutability": "nonpayable",
1561
1561
  "typeDescriptions": {
1562
1562
  "typeIdentifier": "t_address",
@@ -1566,7 +1566,7 @@
1566
1566
  "visibility": "internal"
1567
1567
  }
1568
1568
  ],
1569
- "src": "3918:31:49"
1569
+ "src": "4022:31:49"
1570
1570
  },
1571
1571
  "returnParameters": {
1572
1572
  "id": 18526,
@@ -1577,10 +1577,10 @@
1577
1577
  "id": 18525,
1578
1578
  "mutability": "mutable",
1579
1579
  "name": "isSolvent",
1580
- "nameLocation": "3993:9:49",
1580
+ "nameLocation": "4097:9:49",
1581
1581
  "nodeType": "VariableDeclaration",
1582
1582
  "scope": 18527,
1583
- "src": "3988:14:49",
1583
+ "src": "4092:14:49",
1584
1584
  "stateVariable": false,
1585
1585
  "storageLocation": "default",
1586
1586
  "typeDescriptions": {
@@ -1591,7 +1591,7 @@
1591
1591
  "id": 18524,
1592
1592
  "name": "bool",
1593
1593
  "nodeType": "ElementaryTypeName",
1594
- "src": "3988:4:49",
1594
+ "src": "4092:4:49",
1595
1595
  "typeDescriptions": {
1596
1596
  "typeIdentifier": "t_bool",
1597
1597
  "typeString": "bool"
@@ -1600,10 +1600,10 @@
1600
1600
  "visibility": "internal"
1601
1601
  }
1602
1602
  ],
1603
- "src": "3987:16:49"
1603
+ "src": "4091:16:49"
1604
1604
  },
1605
1605
  "scope": 18721,
1606
- "src": "3890:114:49",
1606
+ "src": "3994:114:49",
1607
1607
  "stateMutability": "view",
1608
1608
  "virtual": false,
1609
1609
  "visibility": "external"
@@ -1612,7 +1612,7 @@
1612
1612
  "documentation": {
1613
1613
  "id": 18528,
1614
1614
  "nodeType": "StructuredDocumentation",
1615
- "src": "4010:277:49",
1615
+ "src": "4114:277:49",
1616
1616
  "text": " @notice Get a list of agreements that is active for the account\n @dev An active agreement is one that has state for the account\n @param account Account to query\n @return activeAgreements List of accounts that have non-zero states for the account"
1617
1617
  },
1618
1618
  "functionSelector": "386fa221",
@@ -1621,7 +1621,7 @@
1621
1621
  "kind": "function",
1622
1622
  "modifiers": [],
1623
1623
  "name": "getAccountActiveAgreements",
1624
- "nameLocation": "4301:26:49",
1624
+ "nameLocation": "4405:26:49",
1625
1625
  "nodeType": "FunctionDefinition",
1626
1626
  "parameters": {
1627
1627
  "id": 18531,
@@ -1632,10 +1632,10 @@
1632
1632
  "id": 18530,
1633
1633
  "mutability": "mutable",
1634
1634
  "name": "account",
1635
- "nameLocation": "4336:7:49",
1635
+ "nameLocation": "4440:7:49",
1636
1636
  "nodeType": "VariableDeclaration",
1637
1637
  "scope": 18537,
1638
- "src": "4328:15:49",
1638
+ "src": "4432:15:49",
1639
1639
  "stateVariable": false,
1640
1640
  "storageLocation": "default",
1641
1641
  "typeDescriptions": {
@@ -1646,7 +1646,7 @@
1646
1646
  "id": 18529,
1647
1647
  "name": "address",
1648
1648
  "nodeType": "ElementaryTypeName",
1649
- "src": "4328:7:49",
1649
+ "src": "4432:7:49",
1650
1650
  "stateMutability": "nonpayable",
1651
1651
  "typeDescriptions": {
1652
1652
  "typeIdentifier": "t_address",
@@ -1656,7 +1656,7 @@
1656
1656
  "visibility": "internal"
1657
1657
  }
1658
1658
  ],
1659
- "src": "4327:17:49"
1659
+ "src": "4431:17:49"
1660
1660
  },
1661
1661
  "returnParameters": {
1662
1662
  "id": 18536,
@@ -1667,10 +1667,10 @@
1667
1667
  "id": 18535,
1668
1668
  "mutability": "mutable",
1669
1669
  "name": "activeAgreements",
1670
- "nameLocation": "4406:16:49",
1670
+ "nameLocation": "4510:16:49",
1671
1671
  "nodeType": "VariableDeclaration",
1672
1672
  "scope": 18537,
1673
- "src": "4381:41:49",
1673
+ "src": "4485:41:49",
1674
1674
  "stateVariable": false,
1675
1675
  "storageLocation": "memory",
1676
1676
  "typeDescriptions": {
@@ -1686,10 +1686,10 @@
1686
1686
  "name": "ISuperAgreement",
1687
1687
  "nodeType": "IdentifierPath",
1688
1688
  "referencedDeclaration": 17271,
1689
- "src": "4381:15:49"
1689
+ "src": "4485:15:49"
1690
1690
  },
1691
1691
  "referencedDeclaration": 17271,
1692
- "src": "4381:15:49",
1692
+ "src": "4485:15:49",
1693
1693
  "typeDescriptions": {
1694
1694
  "typeIdentifier": "t_contract$_ISuperAgreement_$17271",
1695
1695
  "typeString": "contract ISuperAgreement"
@@ -1697,7 +1697,7 @@
1697
1697
  },
1698
1698
  "id": 18534,
1699
1699
  "nodeType": "ArrayTypeName",
1700
- "src": "4381:17:49",
1700
+ "src": "4485:17:49",
1701
1701
  "typeDescriptions": {
1702
1702
  "typeIdentifier": "t_array$_t_contract$_ISuperAgreement_$17271_$dyn_storage_ptr",
1703
1703
  "typeString": "contract ISuperAgreement[]"
@@ -1706,10 +1706,10 @@
1706
1706
  "visibility": "internal"
1707
1707
  }
1708
1708
  ],
1709
- "src": "4380:43:49"
1709
+ "src": "4484:43:49"
1710
1710
  },
1711
1711
  "scope": 18721,
1712
- "src": "4292:132:49",
1712
+ "src": "4396:132:49",
1713
1713
  "stateMutability": "view",
1714
1714
  "virtual": false,
1715
1715
  "visibility": "external"
@@ -1718,7 +1718,7 @@
1718
1718
  "documentation": {
1719
1719
  "id": 18538,
1720
1720
  "nodeType": "StructuredDocumentation",
1721
- "src": "4630:110:49",
1721
+ "src": "4734:110:49",
1722
1722
  "text": " @dev Create a new agreement\n @param id Agreement ID\n @param data Agreement data"
1723
1723
  },
1724
1724
  "functionSelector": "12a6a3f8",
@@ -1727,7 +1727,7 @@
1727
1727
  "kind": "function",
1728
1728
  "modifiers": [],
1729
1729
  "name": "createAgreement",
1730
- "nameLocation": "4754:15:49",
1730
+ "nameLocation": "4858:15:49",
1731
1731
  "nodeType": "FunctionDefinition",
1732
1732
  "parameters": {
1733
1733
  "id": 18544,
@@ -1738,10 +1738,10 @@
1738
1738
  "id": 18540,
1739
1739
  "mutability": "mutable",
1740
1740
  "name": "id",
1741
- "nameLocation": "4787:2:49",
1741
+ "nameLocation": "4891:2:49",
1742
1742
  "nodeType": "VariableDeclaration",
1743
1743
  "scope": 18546,
1744
- "src": "4779:10:49",
1744
+ "src": "4883:10:49",
1745
1745
  "stateVariable": false,
1746
1746
  "storageLocation": "default",
1747
1747
  "typeDescriptions": {
@@ -1752,7 +1752,7 @@
1752
1752
  "id": 18539,
1753
1753
  "name": "bytes32",
1754
1754
  "nodeType": "ElementaryTypeName",
1755
- "src": "4779:7:49",
1755
+ "src": "4883:7:49",
1756
1756
  "typeDescriptions": {
1757
1757
  "typeIdentifier": "t_bytes32",
1758
1758
  "typeString": "bytes32"
@@ -1765,10 +1765,10 @@
1765
1765
  "id": 18543,
1766
1766
  "mutability": "mutable",
1767
1767
  "name": "data",
1768
- "nameLocation": "4818:4:49",
1768
+ "nameLocation": "4922:4:49",
1769
1769
  "nodeType": "VariableDeclaration",
1770
1770
  "scope": 18546,
1771
- "src": "4799:23:49",
1771
+ "src": "4903:23:49",
1772
1772
  "stateVariable": false,
1773
1773
  "storageLocation": "calldata",
1774
1774
  "typeDescriptions": {
@@ -1780,7 +1780,7 @@
1780
1780
  "id": 18541,
1781
1781
  "name": "bytes32",
1782
1782
  "nodeType": "ElementaryTypeName",
1783
- "src": "4799:7:49",
1783
+ "src": "4903:7:49",
1784
1784
  "typeDescriptions": {
1785
1785
  "typeIdentifier": "t_bytes32",
1786
1786
  "typeString": "bytes32"
@@ -1788,7 +1788,7 @@
1788
1788
  },
1789
1789
  "id": 18542,
1790
1790
  "nodeType": "ArrayTypeName",
1791
- "src": "4799:9:49",
1791
+ "src": "4903:9:49",
1792
1792
  "typeDescriptions": {
1793
1793
  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
1794
1794
  "typeString": "bytes32[]"
@@ -1797,16 +1797,16 @@
1797
1797
  "visibility": "internal"
1798
1798
  }
1799
1799
  ],
1800
- "src": "4769:59:49"
1800
+ "src": "4873:59:49"
1801
1801
  },
1802
1802
  "returnParameters": {
1803
1803
  "id": 18545,
1804
1804
  "nodeType": "ParameterList",
1805
1805
  "parameters": [],
1806
- "src": "4845:0:49"
1806
+ "src": "4949:0:49"
1807
1807
  },
1808
1808
  "scope": 18721,
1809
- "src": "4745:101:49",
1809
+ "src": "4849:101:49",
1810
1810
  "stateMutability": "nonpayable",
1811
1811
  "virtual": false,
1812
1812
  "visibility": "external"
@@ -1816,13 +1816,13 @@
1816
1816
  "documentation": {
1817
1817
  "id": 18547,
1818
1818
  "nodeType": "StructuredDocumentation",
1819
- "src": "4851:174:49",
1819
+ "src": "4955:174:49",
1820
1820
  "text": " @dev Agreement created event\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param data Agreement data"
1821
1821
  },
1822
1822
  "eventSelector": "770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d",
1823
1823
  "id": 18556,
1824
1824
  "name": "AgreementCreated",
1825
- "nameLocation": "5036:16:49",
1825
+ "nameLocation": "5140:16:49",
1826
1826
  "nodeType": "EventDefinition",
1827
1827
  "parameters": {
1828
1828
  "id": 18555,
@@ -1834,10 +1834,10 @@
1834
1834
  "indexed": true,
1835
1835
  "mutability": "mutable",
1836
1836
  "name": "agreementClass",
1837
- "nameLocation": "5078:14:49",
1837
+ "nameLocation": "5182:14:49",
1838
1838
  "nodeType": "VariableDeclaration",
1839
1839
  "scope": 18556,
1840
- "src": "5062:30:49",
1840
+ "src": "5166:30:49",
1841
1841
  "stateVariable": false,
1842
1842
  "storageLocation": "default",
1843
1843
  "typeDescriptions": {
@@ -1848,7 +1848,7 @@
1848
1848
  "id": 18548,
1849
1849
  "name": "address",
1850
1850
  "nodeType": "ElementaryTypeName",
1851
- "src": "5062:7:49",
1851
+ "src": "5166:7:49",
1852
1852
  "stateMutability": "nonpayable",
1853
1853
  "typeDescriptions": {
1854
1854
  "typeIdentifier": "t_address",
@@ -1863,10 +1863,10 @@
1863
1863
  "indexed": false,
1864
1864
  "mutability": "mutable",
1865
1865
  "name": "id",
1866
- "nameLocation": "5110:2:49",
1866
+ "nameLocation": "5214:2:49",
1867
1867
  "nodeType": "VariableDeclaration",
1868
1868
  "scope": 18556,
1869
- "src": "5102:10:49",
1869
+ "src": "5206:10:49",
1870
1870
  "stateVariable": false,
1871
1871
  "storageLocation": "default",
1872
1872
  "typeDescriptions": {
@@ -1877,7 +1877,7 @@
1877
1877
  "id": 18550,
1878
1878
  "name": "bytes32",
1879
1879
  "nodeType": "ElementaryTypeName",
1880
- "src": "5102:7:49",
1880
+ "src": "5206:7:49",
1881
1881
  "typeDescriptions": {
1882
1882
  "typeIdentifier": "t_bytes32",
1883
1883
  "typeString": "bytes32"
@@ -1891,10 +1891,10 @@
1891
1891
  "indexed": false,
1892
1892
  "mutability": "mutable",
1893
1893
  "name": "data",
1894
- "nameLocation": "5132:4:49",
1894
+ "nameLocation": "5236:4:49",
1895
1895
  "nodeType": "VariableDeclaration",
1896
1896
  "scope": 18556,
1897
- "src": "5122:14:49",
1897
+ "src": "5226:14:49",
1898
1898
  "stateVariable": false,
1899
1899
  "storageLocation": "default",
1900
1900
  "typeDescriptions": {
@@ -1906,7 +1906,7 @@
1906
1906
  "id": 18552,
1907
1907
  "name": "bytes32",
1908
1908
  "nodeType": "ElementaryTypeName",
1909
- "src": "5122:7:49",
1909
+ "src": "5226:7:49",
1910
1910
  "typeDescriptions": {
1911
1911
  "typeIdentifier": "t_bytes32",
1912
1912
  "typeString": "bytes32"
@@ -1914,7 +1914,7 @@
1914
1914
  },
1915
1915
  "id": 18553,
1916
1916
  "nodeType": "ArrayTypeName",
1917
- "src": "5122:9:49",
1917
+ "src": "5226:9:49",
1918
1918
  "typeDescriptions": {
1919
1919
  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
1920
1920
  "typeString": "bytes32[]"
@@ -1923,15 +1923,15 @@
1923
1923
  "visibility": "internal"
1924
1924
  }
1925
1925
  ],
1926
- "src": "5052:90:49"
1926
+ "src": "5156:90:49"
1927
1927
  },
1928
- "src": "5030:113:49"
1928
+ "src": "5134:113:49"
1929
1929
  },
1930
1930
  {
1931
1931
  "documentation": {
1932
1932
  "id": 18557,
1933
1933
  "nodeType": "StructuredDocumentation",
1934
- "src": "5149:184:49",
1934
+ "src": "5253:184:49",
1935
1935
  "text": " @dev Get data of the agreement\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @return data Data of the agreement"
1936
1936
  },
1937
1937
  "functionSelector": "6c2d9f2f",
@@ -1940,7 +1940,7 @@
1940
1940
  "kind": "function",
1941
1941
  "modifiers": [],
1942
1942
  "name": "getAgreementData",
1943
- "nameLocation": "5347:16:49",
1943
+ "nameLocation": "5451:16:49",
1944
1944
  "nodeType": "FunctionDefinition",
1945
1945
  "parameters": {
1946
1946
  "id": 18564,
@@ -1951,10 +1951,10 @@
1951
1951
  "id": 18559,
1952
1952
  "mutability": "mutable",
1953
1953
  "name": "agreementClass",
1954
- "nameLocation": "5381:14:49",
1954
+ "nameLocation": "5485:14:49",
1955
1955
  "nodeType": "VariableDeclaration",
1956
1956
  "scope": 18569,
1957
- "src": "5373:22:49",
1957
+ "src": "5477:22:49",
1958
1958
  "stateVariable": false,
1959
1959
  "storageLocation": "default",
1960
1960
  "typeDescriptions": {
@@ -1965,7 +1965,7 @@
1965
1965
  "id": 18558,
1966
1966
  "name": "address",
1967
1967
  "nodeType": "ElementaryTypeName",
1968
- "src": "5373:7:49",
1968
+ "src": "5477:7:49",
1969
1969
  "stateMutability": "nonpayable",
1970
1970
  "typeDescriptions": {
1971
1971
  "typeIdentifier": "t_address",
@@ -1979,10 +1979,10 @@
1979
1979
  "id": 18561,
1980
1980
  "mutability": "mutable",
1981
1981
  "name": "id",
1982
- "nameLocation": "5413:2:49",
1982
+ "nameLocation": "5517:2:49",
1983
1983
  "nodeType": "VariableDeclaration",
1984
1984
  "scope": 18569,
1985
- "src": "5405:10:49",
1985
+ "src": "5509:10:49",
1986
1986
  "stateVariable": false,
1987
1987
  "storageLocation": "default",
1988
1988
  "typeDescriptions": {
@@ -1993,7 +1993,7 @@
1993
1993
  "id": 18560,
1994
1994
  "name": "bytes32",
1995
1995
  "nodeType": "ElementaryTypeName",
1996
- "src": "5405:7:49",
1996
+ "src": "5509:7:49",
1997
1997
  "typeDescriptions": {
1998
1998
  "typeIdentifier": "t_bytes32",
1999
1999
  "typeString": "bytes32"
@@ -2006,10 +2006,10 @@
2006
2006
  "id": 18563,
2007
2007
  "mutability": "mutable",
2008
2008
  "name": "dataLength",
2009
- "nameLocation": "5430:10:49",
2009
+ "nameLocation": "5534:10:49",
2010
2010
  "nodeType": "VariableDeclaration",
2011
2011
  "scope": 18569,
2012
- "src": "5425:15:49",
2012
+ "src": "5529:15:49",
2013
2013
  "stateVariable": false,
2014
2014
  "storageLocation": "default",
2015
2015
  "typeDescriptions": {
@@ -2020,7 +2020,7 @@
2020
2020
  "id": 18562,
2021
2021
  "name": "uint",
2022
2022
  "nodeType": "ElementaryTypeName",
2023
- "src": "5425:4:49",
2023
+ "src": "5529:4:49",
2024
2024
  "typeDescriptions": {
2025
2025
  "typeIdentifier": "t_uint256",
2026
2026
  "typeString": "uint256"
@@ -2029,7 +2029,7 @@
2029
2029
  "visibility": "internal"
2030
2030
  }
2031
2031
  ],
2032
- "src": "5363:83:49"
2032
+ "src": "5467:83:49"
2033
2033
  },
2034
2034
  "returnParameters": {
2035
2035
  "id": 18568,
@@ -2040,10 +2040,10 @@
2040
2040
  "id": 18567,
2041
2041
  "mutability": "mutable",
2042
2042
  "name": "data",
2043
- "nameLocation": "5502:4:49",
2043
+ "nameLocation": "5606:4:49",
2044
2044
  "nodeType": "VariableDeclaration",
2045
2045
  "scope": 18569,
2046
- "src": "5485:21:49",
2046
+ "src": "5589:21:49",
2047
2047
  "stateVariable": false,
2048
2048
  "storageLocation": "memory",
2049
2049
  "typeDescriptions": {
@@ -2055,7 +2055,7 @@
2055
2055
  "id": 18565,
2056
2056
  "name": "bytes32",
2057
2057
  "nodeType": "ElementaryTypeName",
2058
- "src": "5485:7:49",
2058
+ "src": "5589:7:49",
2059
2059
  "typeDescriptions": {
2060
2060
  "typeIdentifier": "t_bytes32",
2061
2061
  "typeString": "bytes32"
@@ -2063,7 +2063,7 @@
2063
2063
  },
2064
2064
  "id": 18566,
2065
2065
  "nodeType": "ArrayTypeName",
2066
- "src": "5485:9:49",
2066
+ "src": "5589:9:49",
2067
2067
  "typeDescriptions": {
2068
2068
  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2069
2069
  "typeString": "bytes32[]"
@@ -2072,10 +2072,10 @@
2072
2072
  "visibility": "internal"
2073
2073
  }
2074
2074
  ],
2075
- "src": "5484:23:49"
2075
+ "src": "5588:23:49"
2076
2076
  },
2077
2077
  "scope": 18721,
2078
- "src": "5338:170:49",
2078
+ "src": "5442:170:49",
2079
2079
  "stateMutability": "view",
2080
2080
  "virtual": false,
2081
2081
  "visibility": "external"
@@ -2084,7 +2084,7 @@
2084
2084
  "documentation": {
2085
2085
  "id": 18570,
2086
2086
  "nodeType": "StructuredDocumentation",
2087
- "src": "5514:110:49",
2087
+ "src": "5618:110:49",
2088
2088
  "text": " @dev Create a new agreement\n @param id Agreement ID\n @param data Agreement data"
2089
2089
  },
2090
2090
  "functionSelector": "a1b2bf8b",
@@ -2093,7 +2093,7 @@
2093
2093
  "kind": "function",
2094
2094
  "modifiers": [],
2095
2095
  "name": "updateAgreementData",
2096
- "nameLocation": "5638:19:49",
2096
+ "nameLocation": "5742:19:49",
2097
2097
  "nodeType": "FunctionDefinition",
2098
2098
  "parameters": {
2099
2099
  "id": 18576,
@@ -2104,10 +2104,10 @@
2104
2104
  "id": 18572,
2105
2105
  "mutability": "mutable",
2106
2106
  "name": "id",
2107
- "nameLocation": "5675:2:49",
2107
+ "nameLocation": "5779:2:49",
2108
2108
  "nodeType": "VariableDeclaration",
2109
2109
  "scope": 18578,
2110
- "src": "5667:10:49",
2110
+ "src": "5771:10:49",
2111
2111
  "stateVariable": false,
2112
2112
  "storageLocation": "default",
2113
2113
  "typeDescriptions": {
@@ -2118,7 +2118,7 @@
2118
2118
  "id": 18571,
2119
2119
  "name": "bytes32",
2120
2120
  "nodeType": "ElementaryTypeName",
2121
- "src": "5667:7:49",
2121
+ "src": "5771:7:49",
2122
2122
  "typeDescriptions": {
2123
2123
  "typeIdentifier": "t_bytes32",
2124
2124
  "typeString": "bytes32"
@@ -2131,10 +2131,10 @@
2131
2131
  "id": 18575,
2132
2132
  "mutability": "mutable",
2133
2133
  "name": "data",
2134
- "nameLocation": "5706:4:49",
2134
+ "nameLocation": "5810:4:49",
2135
2135
  "nodeType": "VariableDeclaration",
2136
2136
  "scope": 18578,
2137
- "src": "5687:23:49",
2137
+ "src": "5791:23:49",
2138
2138
  "stateVariable": false,
2139
2139
  "storageLocation": "calldata",
2140
2140
  "typeDescriptions": {
@@ -2146,7 +2146,7 @@
2146
2146
  "id": 18573,
2147
2147
  "name": "bytes32",
2148
2148
  "nodeType": "ElementaryTypeName",
2149
- "src": "5687:7:49",
2149
+ "src": "5791:7:49",
2150
2150
  "typeDescriptions": {
2151
2151
  "typeIdentifier": "t_bytes32",
2152
2152
  "typeString": "bytes32"
@@ -2154,7 +2154,7 @@
2154
2154
  },
2155
2155
  "id": 18574,
2156
2156
  "nodeType": "ArrayTypeName",
2157
- "src": "5687:9:49",
2157
+ "src": "5791:9:49",
2158
2158
  "typeDescriptions": {
2159
2159
  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2160
2160
  "typeString": "bytes32[]"
@@ -2163,16 +2163,16 @@
2163
2163
  "visibility": "internal"
2164
2164
  }
2165
2165
  ],
2166
- "src": "5657:59:49"
2166
+ "src": "5761:59:49"
2167
2167
  },
2168
2168
  "returnParameters": {
2169
2169
  "id": 18577,
2170
2170
  "nodeType": "ParameterList",
2171
2171
  "parameters": [],
2172
- "src": "5733:0:49"
2172
+ "src": "5837:0:49"
2173
2173
  },
2174
2174
  "scope": 18721,
2175
- "src": "5629:105:49",
2175
+ "src": "5733:105:49",
2176
2176
  "stateMutability": "nonpayable",
2177
2177
  "virtual": false,
2178
2178
  "visibility": "external"
@@ -2182,13 +2182,13 @@
2182
2182
  "documentation": {
2183
2183
  "id": 18579,
2184
2184
  "nodeType": "StructuredDocumentation",
2185
- "src": "5739:174:49",
2185
+ "src": "5843:174:49",
2186
2186
  "text": " @dev Agreement updated event\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param data Agreement data"
2187
2187
  },
2188
2188
  "eventSelector": "0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca",
2189
2189
  "id": 18588,
2190
2190
  "name": "AgreementUpdated",
2191
- "nameLocation": "5924:16:49",
2191
+ "nameLocation": "6028:16:49",
2192
2192
  "nodeType": "EventDefinition",
2193
2193
  "parameters": {
2194
2194
  "id": 18587,
@@ -2200,10 +2200,10 @@
2200
2200
  "indexed": true,
2201
2201
  "mutability": "mutable",
2202
2202
  "name": "agreementClass",
2203
- "nameLocation": "5966:14:49",
2203
+ "nameLocation": "6070:14:49",
2204
2204
  "nodeType": "VariableDeclaration",
2205
2205
  "scope": 18588,
2206
- "src": "5950:30:49",
2206
+ "src": "6054:30:49",
2207
2207
  "stateVariable": false,
2208
2208
  "storageLocation": "default",
2209
2209
  "typeDescriptions": {
@@ -2214,7 +2214,7 @@
2214
2214
  "id": 18580,
2215
2215
  "name": "address",
2216
2216
  "nodeType": "ElementaryTypeName",
2217
- "src": "5950:7:49",
2217
+ "src": "6054:7:49",
2218
2218
  "stateMutability": "nonpayable",
2219
2219
  "typeDescriptions": {
2220
2220
  "typeIdentifier": "t_address",
@@ -2229,10 +2229,10 @@
2229
2229
  "indexed": false,
2230
2230
  "mutability": "mutable",
2231
2231
  "name": "id",
2232
- "nameLocation": "5998:2:49",
2232
+ "nameLocation": "6102:2:49",
2233
2233
  "nodeType": "VariableDeclaration",
2234
2234
  "scope": 18588,
2235
- "src": "5990:10:49",
2235
+ "src": "6094:10:49",
2236
2236
  "stateVariable": false,
2237
2237
  "storageLocation": "default",
2238
2238
  "typeDescriptions": {
@@ -2243,7 +2243,7 @@
2243
2243
  "id": 18582,
2244
2244
  "name": "bytes32",
2245
2245
  "nodeType": "ElementaryTypeName",
2246
- "src": "5990:7:49",
2246
+ "src": "6094:7:49",
2247
2247
  "typeDescriptions": {
2248
2248
  "typeIdentifier": "t_bytes32",
2249
2249
  "typeString": "bytes32"
@@ -2257,10 +2257,10 @@
2257
2257
  "indexed": false,
2258
2258
  "mutability": "mutable",
2259
2259
  "name": "data",
2260
- "nameLocation": "6020:4:49",
2260
+ "nameLocation": "6124:4:49",
2261
2261
  "nodeType": "VariableDeclaration",
2262
2262
  "scope": 18588,
2263
- "src": "6010:14:49",
2263
+ "src": "6114:14:49",
2264
2264
  "stateVariable": false,
2265
2265
  "storageLocation": "default",
2266
2266
  "typeDescriptions": {
@@ -2272,7 +2272,7 @@
2272
2272
  "id": 18584,
2273
2273
  "name": "bytes32",
2274
2274
  "nodeType": "ElementaryTypeName",
2275
- "src": "6010:7:49",
2275
+ "src": "6114:7:49",
2276
2276
  "typeDescriptions": {
2277
2277
  "typeIdentifier": "t_bytes32",
2278
2278
  "typeString": "bytes32"
@@ -2280,7 +2280,7 @@
2280
2280
  },
2281
2281
  "id": 18585,
2282
2282
  "nodeType": "ArrayTypeName",
2283
- "src": "6010:9:49",
2283
+ "src": "6114:9:49",
2284
2284
  "typeDescriptions": {
2285
2285
  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2286
2286
  "typeString": "bytes32[]"
@@ -2289,15 +2289,15 @@
2289
2289
  "visibility": "internal"
2290
2290
  }
2291
2291
  ],
2292
- "src": "5940:90:49"
2292
+ "src": "6044:90:49"
2293
2293
  },
2294
- "src": "5918:113:49"
2294
+ "src": "6022:113:49"
2295
2295
  },
2296
2296
  {
2297
2297
  "documentation": {
2298
2298
  "id": 18589,
2299
2299
  "nodeType": "StructuredDocumentation",
2300
- "src": "6037:73:49",
2300
+ "src": "6141:73:49",
2301
2301
  "text": " @dev Close the agreement\n @param id Agreement ID"
2302
2302
  },
2303
2303
  "functionSelector": "27048397",
@@ -2306,7 +2306,7 @@
2306
2306
  "kind": "function",
2307
2307
  "modifiers": [],
2308
2308
  "name": "terminateAgreement",
2309
- "nameLocation": "6124:18:49",
2309
+ "nameLocation": "6228:18:49",
2310
2310
  "nodeType": "FunctionDefinition",
2311
2311
  "parameters": {
2312
2312
  "id": 18594,
@@ -2317,10 +2317,10 @@
2317
2317
  "id": 18591,
2318
2318
  "mutability": "mutable",
2319
2319
  "name": "id",
2320
- "nameLocation": "6160:2:49",
2320
+ "nameLocation": "6264:2:49",
2321
2321
  "nodeType": "VariableDeclaration",
2322
2322
  "scope": 18596,
2323
- "src": "6152:10:49",
2323
+ "src": "6256:10:49",
2324
2324
  "stateVariable": false,
2325
2325
  "storageLocation": "default",
2326
2326
  "typeDescriptions": {
@@ -2331,7 +2331,7 @@
2331
2331
  "id": 18590,
2332
2332
  "name": "bytes32",
2333
2333
  "nodeType": "ElementaryTypeName",
2334
- "src": "6152:7:49",
2334
+ "src": "6256:7:49",
2335
2335
  "typeDescriptions": {
2336
2336
  "typeIdentifier": "t_bytes32",
2337
2337
  "typeString": "bytes32"
@@ -2344,10 +2344,10 @@
2344
2344
  "id": 18593,
2345
2345
  "mutability": "mutable",
2346
2346
  "name": "dataLength",
2347
- "nameLocation": "6177:10:49",
2347
+ "nameLocation": "6281:10:49",
2348
2348
  "nodeType": "VariableDeclaration",
2349
2349
  "scope": 18596,
2350
- "src": "6172:15:49",
2350
+ "src": "6276:15:49",
2351
2351
  "stateVariable": false,
2352
2352
  "storageLocation": "default",
2353
2353
  "typeDescriptions": {
@@ -2358,7 +2358,7 @@
2358
2358
  "id": 18592,
2359
2359
  "name": "uint",
2360
2360
  "nodeType": "ElementaryTypeName",
2361
- "src": "6172:4:49",
2361
+ "src": "6276:4:49",
2362
2362
  "typeDescriptions": {
2363
2363
  "typeIdentifier": "t_uint256",
2364
2364
  "typeString": "uint256"
@@ -2367,16 +2367,16 @@
2367
2367
  "visibility": "internal"
2368
2368
  }
2369
2369
  ],
2370
- "src": "6142:51:49"
2370
+ "src": "6246:51:49"
2371
2371
  },
2372
2372
  "returnParameters": {
2373
2373
  "id": 18595,
2374
2374
  "nodeType": "ParameterList",
2375
2375
  "parameters": [],
2376
- "src": "6210:0:49"
2376
+ "src": "6314:0:49"
2377
2377
  },
2378
2378
  "scope": 18721,
2379
- "src": "6115:96:49",
2379
+ "src": "6219:96:49",
2380
2380
  "stateMutability": "nonpayable",
2381
2381
  "virtual": false,
2382
2382
  "visibility": "external"
@@ -2386,13 +2386,13 @@
2386
2386
  "documentation": {
2387
2387
  "id": 18597,
2388
2388
  "nodeType": "StructuredDocumentation",
2389
- "src": "6216:143:49",
2389
+ "src": "6320:143:49",
2390
2390
  "text": " @dev Agreement terminated event\n @param agreementClass Contract address of the agreement\n @param id Agreement ID"
2391
2391
  },
2392
2392
  "eventSelector": "71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b",
2393
2393
  "id": 18603,
2394
2394
  "name": "AgreementTerminated",
2395
- "nameLocation": "6370:19:49",
2395
+ "nameLocation": "6474:19:49",
2396
2396
  "nodeType": "EventDefinition",
2397
2397
  "parameters": {
2398
2398
  "id": 18602,
@@ -2404,10 +2404,10 @@
2404
2404
  "indexed": true,
2405
2405
  "mutability": "mutable",
2406
2406
  "name": "agreementClass",
2407
- "nameLocation": "6415:14:49",
2407
+ "nameLocation": "6519:14:49",
2408
2408
  "nodeType": "VariableDeclaration",
2409
2409
  "scope": 18603,
2410
- "src": "6399:30:49",
2410
+ "src": "6503:30:49",
2411
2411
  "stateVariable": false,
2412
2412
  "storageLocation": "default",
2413
2413
  "typeDescriptions": {
@@ -2418,7 +2418,7 @@
2418
2418
  "id": 18598,
2419
2419
  "name": "address",
2420
2420
  "nodeType": "ElementaryTypeName",
2421
- "src": "6399:7:49",
2421
+ "src": "6503:7:49",
2422
2422
  "stateMutability": "nonpayable",
2423
2423
  "typeDescriptions": {
2424
2424
  "typeIdentifier": "t_address",
@@ -2433,10 +2433,10 @@
2433
2433
  "indexed": false,
2434
2434
  "mutability": "mutable",
2435
2435
  "name": "id",
2436
- "nameLocation": "6447:2:49",
2436
+ "nameLocation": "6551:2:49",
2437
2437
  "nodeType": "VariableDeclaration",
2438
2438
  "scope": 18603,
2439
- "src": "6439:10:49",
2439
+ "src": "6543:10:49",
2440
2440
  "stateVariable": false,
2441
2441
  "storageLocation": "default",
2442
2442
  "typeDescriptions": {
@@ -2447,7 +2447,7 @@
2447
2447
  "id": 18600,
2448
2448
  "name": "bytes32",
2449
2449
  "nodeType": "ElementaryTypeName",
2450
- "src": "6439:7:49",
2450
+ "src": "6543:7:49",
2451
2451
  "typeDescriptions": {
2452
2452
  "typeIdentifier": "t_bytes32",
2453
2453
  "typeString": "bytes32"
@@ -2456,16 +2456,16 @@
2456
2456
  "visibility": "internal"
2457
2457
  }
2458
2458
  ],
2459
- "src": "6389:66:49"
2459
+ "src": "6493:66:49"
2460
2460
  },
2461
- "src": "6364:92:49"
2461
+ "src": "6468:92:49"
2462
2462
  },
2463
2463
  {
2464
2464
  "documentation": {
2465
2465
  "id": 18604,
2466
2466
  "nodeType": "StructuredDocumentation",
2467
- "src": "6462:190:49",
2468
- "text": " @dev Update agreement state slot\n @param account Account to be updated\n NOTE\n - To clear the storage out, provide zero-ed array of intended length"
2467
+ "src": "6566:199:49",
2468
+ "text": " @dev Update agreement state slot\n @param account Account to be updated\n @custom:note \n - To clear the storage out, provide zero-ed array of intended length"
2469
2469
  },
2470
2470
  "functionSelector": "090c415e",
2471
2471
  "id": 18614,
@@ -2473,7 +2473,7 @@
2473
2473
  "kind": "function",
2474
2474
  "modifiers": [],
2475
2475
  "name": "updateAgreementStateSlot",
2476
- "nameLocation": "6666:24:49",
2476
+ "nameLocation": "6779:24:49",
2477
2477
  "nodeType": "FunctionDefinition",
2478
2478
  "parameters": {
2479
2479
  "id": 18612,
@@ -2484,10 +2484,10 @@
2484
2484
  "id": 18606,
2485
2485
  "mutability": "mutable",
2486
2486
  "name": "account",
2487
- "nameLocation": "6708:7:49",
2487
+ "nameLocation": "6821:7:49",
2488
2488
  "nodeType": "VariableDeclaration",
2489
2489
  "scope": 18614,
2490
- "src": "6700:15:49",
2490
+ "src": "6813:15:49",
2491
2491
  "stateVariable": false,
2492
2492
  "storageLocation": "default",
2493
2493
  "typeDescriptions": {
@@ -2498,7 +2498,7 @@
2498
2498
  "id": 18605,
2499
2499
  "name": "address",
2500
2500
  "nodeType": "ElementaryTypeName",
2501
- "src": "6700:7:49",
2501
+ "src": "6813:7:49",
2502
2502
  "stateMutability": "nonpayable",
2503
2503
  "typeDescriptions": {
2504
2504
  "typeIdentifier": "t_address",
@@ -2512,10 +2512,10 @@
2512
2512
  "id": 18608,
2513
2513
  "mutability": "mutable",
2514
2514
  "name": "slotId",
2515
- "nameLocation": "6733:6:49",
2515
+ "nameLocation": "6846:6:49",
2516
2516
  "nodeType": "VariableDeclaration",
2517
2517
  "scope": 18614,
2518
- "src": "6725:14:49",
2518
+ "src": "6838:14:49",
2519
2519
  "stateVariable": false,
2520
2520
  "storageLocation": "default",
2521
2521
  "typeDescriptions": {
@@ -2526,7 +2526,7 @@
2526
2526
  "id": 18607,
2527
2527
  "name": "uint256",
2528
2528
  "nodeType": "ElementaryTypeName",
2529
- "src": "6725:7:49",
2529
+ "src": "6838:7:49",
2530
2530
  "typeDescriptions": {
2531
2531
  "typeIdentifier": "t_uint256",
2532
2532
  "typeString": "uint256"
@@ -2539,10 +2539,10 @@
2539
2539
  "id": 18611,
2540
2540
  "mutability": "mutable",
2541
2541
  "name": "slotData",
2542
- "nameLocation": "6768:8:49",
2542
+ "nameLocation": "6881:8:49",
2543
2543
  "nodeType": "VariableDeclaration",
2544
2544
  "scope": 18614,
2545
- "src": "6749:27:49",
2545
+ "src": "6862:27:49",
2546
2546
  "stateVariable": false,
2547
2547
  "storageLocation": "calldata",
2548
2548
  "typeDescriptions": {
@@ -2554,7 +2554,7 @@
2554
2554
  "id": 18609,
2555
2555
  "name": "bytes32",
2556
2556
  "nodeType": "ElementaryTypeName",
2557
- "src": "6749:7:49",
2557
+ "src": "6862:7:49",
2558
2558
  "typeDescriptions": {
2559
2559
  "typeIdentifier": "t_bytes32",
2560
2560
  "typeString": "bytes32"
@@ -2562,7 +2562,7 @@
2562
2562
  },
2563
2563
  "id": 18610,
2564
2564
  "nodeType": "ArrayTypeName",
2565
- "src": "6749:9:49",
2565
+ "src": "6862:9:49",
2566
2566
  "typeDescriptions": {
2567
2567
  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2568
2568
  "typeString": "bytes32[]"
@@ -2571,16 +2571,16 @@
2571
2571
  "visibility": "internal"
2572
2572
  }
2573
2573
  ],
2574
- "src": "6690:92:49"
2574
+ "src": "6803:92:49"
2575
2575
  },
2576
2576
  "returnParameters": {
2577
2577
  "id": 18613,
2578
2578
  "nodeType": "ParameterList",
2579
2579
  "parameters": [],
2580
- "src": "6799:0:49"
2580
+ "src": "6912:0:49"
2581
2581
  },
2582
2582
  "scope": 18721,
2583
- "src": "6657:143:49",
2583
+ "src": "6770:143:49",
2584
2584
  "stateMutability": "nonpayable",
2585
2585
  "virtual": false,
2586
2586
  "visibility": "external"
@@ -2590,13 +2590,13 @@
2590
2590
  "documentation": {
2591
2591
  "id": 18615,
2592
2592
  "nodeType": "StructuredDocumentation",
2593
- "src": "6805:214:49",
2593
+ "src": "6918:214:49",
2594
2594
  "text": " @dev Agreement account state updated event\n @param agreementClass Contract address of the agreement\n @param account Account updated\n @param slotId slot id of the agreement state"
2595
2595
  },
2596
2596
  "eventSelector": "30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985",
2597
2597
  "id": 18623,
2598
2598
  "name": "AgreementStateUpdated",
2599
- "nameLocation": "7030:21:49",
2599
+ "nameLocation": "7143:21:49",
2600
2600
  "nodeType": "EventDefinition",
2601
2601
  "parameters": {
2602
2602
  "id": 18622,
@@ -2608,10 +2608,10 @@
2608
2608
  "indexed": true,
2609
2609
  "mutability": "mutable",
2610
2610
  "name": "agreementClass",
2611
- "nameLocation": "7077:14:49",
2611
+ "nameLocation": "7190:14:49",
2612
2612
  "nodeType": "VariableDeclaration",
2613
2613
  "scope": 18623,
2614
- "src": "7061:30:49",
2614
+ "src": "7174:30:49",
2615
2615
  "stateVariable": false,
2616
2616
  "storageLocation": "default",
2617
2617
  "typeDescriptions": {
@@ -2622,7 +2622,7 @@
2622
2622
  "id": 18616,
2623
2623
  "name": "address",
2624
2624
  "nodeType": "ElementaryTypeName",
2625
- "src": "7061:7:49",
2625
+ "src": "7174:7:49",
2626
2626
  "stateMutability": "nonpayable",
2627
2627
  "typeDescriptions": {
2628
2628
  "typeIdentifier": "t_address",
@@ -2637,10 +2637,10 @@
2637
2637
  "indexed": true,
2638
2638
  "mutability": "mutable",
2639
2639
  "name": "account",
2640
- "nameLocation": "7117:7:49",
2640
+ "nameLocation": "7230:7:49",
2641
2641
  "nodeType": "VariableDeclaration",
2642
2642
  "scope": 18623,
2643
- "src": "7101:23:49",
2643
+ "src": "7214:23:49",
2644
2644
  "stateVariable": false,
2645
2645
  "storageLocation": "default",
2646
2646
  "typeDescriptions": {
@@ -2651,7 +2651,7 @@
2651
2651
  "id": 18618,
2652
2652
  "name": "address",
2653
2653
  "nodeType": "ElementaryTypeName",
2654
- "src": "7101:7:49",
2654
+ "src": "7214:7:49",
2655
2655
  "stateMutability": "nonpayable",
2656
2656
  "typeDescriptions": {
2657
2657
  "typeIdentifier": "t_address",
@@ -2666,10 +2666,10 @@
2666
2666
  "indexed": false,
2667
2667
  "mutability": "mutable",
2668
2668
  "name": "slotId",
2669
- "nameLocation": "7142:6:49",
2669
+ "nameLocation": "7255:6:49",
2670
2670
  "nodeType": "VariableDeclaration",
2671
2671
  "scope": 18623,
2672
- "src": "7134:14:49",
2672
+ "src": "7247:14:49",
2673
2673
  "stateVariable": false,
2674
2674
  "storageLocation": "default",
2675
2675
  "typeDescriptions": {
@@ -2680,7 +2680,7 @@
2680
2680
  "id": 18620,
2681
2681
  "name": "uint256",
2682
2682
  "nodeType": "ElementaryTypeName",
2683
- "src": "7134:7:49",
2683
+ "src": "7247:7:49",
2684
2684
  "typeDescriptions": {
2685
2685
  "typeIdentifier": "t_uint256",
2686
2686
  "typeString": "uint256"
@@ -2689,15 +2689,15 @@
2689
2689
  "visibility": "internal"
2690
2690
  }
2691
2691
  ],
2692
- "src": "7051:103:49"
2692
+ "src": "7164:103:49"
2693
2693
  },
2694
- "src": "7024:131:49"
2694
+ "src": "7137:131:49"
2695
2695
  },
2696
2696
  {
2697
2697
  "documentation": {
2698
2698
  "id": 18624,
2699
2699
  "nodeType": "StructuredDocumentation",
2700
- "src": "7161:267:49",
2700
+ "src": "7274:267:49",
2701
2701
  "text": " @dev Get data of the slot of the state of an agreement\n @param agreementClass Contract address of the agreement\n @param account Account to query\n @param slotId slot id of the state\n @param dataLength length of the state data"
2702
2702
  },
2703
2703
  "functionSelector": "4b61cc33",
@@ -2706,7 +2706,7 @@
2706
2706
  "kind": "function",
2707
2707
  "modifiers": [],
2708
2708
  "name": "getAgreementStateSlot",
2709
- "nameLocation": "7442:21:49",
2709
+ "nameLocation": "7555:21:49",
2710
2710
  "nodeType": "FunctionDefinition",
2711
2711
  "parameters": {
2712
2712
  "id": 18633,
@@ -2717,10 +2717,10 @@
2717
2717
  "id": 18626,
2718
2718
  "mutability": "mutable",
2719
2719
  "name": "agreementClass",
2720
- "nameLocation": "7481:14:49",
2720
+ "nameLocation": "7594:14:49",
2721
2721
  "nodeType": "VariableDeclaration",
2722
2722
  "scope": 18638,
2723
- "src": "7473:22:49",
2723
+ "src": "7586:22:49",
2724
2724
  "stateVariable": false,
2725
2725
  "storageLocation": "default",
2726
2726
  "typeDescriptions": {
@@ -2731,7 +2731,7 @@
2731
2731
  "id": 18625,
2732
2732
  "name": "address",
2733
2733
  "nodeType": "ElementaryTypeName",
2734
- "src": "7473:7:49",
2734
+ "src": "7586:7:49",
2735
2735
  "stateMutability": "nonpayable",
2736
2736
  "typeDescriptions": {
2737
2737
  "typeIdentifier": "t_address",
@@ -2745,10 +2745,10 @@
2745
2745
  "id": 18628,
2746
2746
  "mutability": "mutable",
2747
2747
  "name": "account",
2748
- "nameLocation": "7513:7:49",
2748
+ "nameLocation": "7626:7:49",
2749
2749
  "nodeType": "VariableDeclaration",
2750
2750
  "scope": 18638,
2751
- "src": "7505:15:49",
2751
+ "src": "7618:15:49",
2752
2752
  "stateVariable": false,
2753
2753
  "storageLocation": "default",
2754
2754
  "typeDescriptions": {
@@ -2759,7 +2759,7 @@
2759
2759
  "id": 18627,
2760
2760
  "name": "address",
2761
2761
  "nodeType": "ElementaryTypeName",
2762
- "src": "7505:7:49",
2762
+ "src": "7618:7:49",
2763
2763
  "stateMutability": "nonpayable",
2764
2764
  "typeDescriptions": {
2765
2765
  "typeIdentifier": "t_address",
@@ -2773,10 +2773,10 @@
2773
2773
  "id": 18630,
2774
2774
  "mutability": "mutable",
2775
2775
  "name": "slotId",
2776
- "nameLocation": "7538:6:49",
2776
+ "nameLocation": "7651:6:49",
2777
2777
  "nodeType": "VariableDeclaration",
2778
2778
  "scope": 18638,
2779
- "src": "7530:14:49",
2779
+ "src": "7643:14:49",
2780
2780
  "stateVariable": false,
2781
2781
  "storageLocation": "default",
2782
2782
  "typeDescriptions": {
@@ -2787,7 +2787,7 @@
2787
2787
  "id": 18629,
2788
2788
  "name": "uint256",
2789
2789
  "nodeType": "ElementaryTypeName",
2790
- "src": "7530:7:49",
2790
+ "src": "7643:7:49",
2791
2791
  "typeDescriptions": {
2792
2792
  "typeIdentifier": "t_uint256",
2793
2793
  "typeString": "uint256"
@@ -2800,10 +2800,10 @@
2800
2800
  "id": 18632,
2801
2801
  "mutability": "mutable",
2802
2802
  "name": "dataLength",
2803
- "nameLocation": "7559:10:49",
2803
+ "nameLocation": "7672:10:49",
2804
2804
  "nodeType": "VariableDeclaration",
2805
2805
  "scope": 18638,
2806
- "src": "7554:15:49",
2806
+ "src": "7667:15:49",
2807
2807
  "stateVariable": false,
2808
2808
  "storageLocation": "default",
2809
2809
  "typeDescriptions": {
@@ -2814,7 +2814,7 @@
2814
2814
  "id": 18631,
2815
2815
  "name": "uint",
2816
2816
  "nodeType": "ElementaryTypeName",
2817
- "src": "7554:4:49",
2817
+ "src": "7667:4:49",
2818
2818
  "typeDescriptions": {
2819
2819
  "typeIdentifier": "t_uint256",
2820
2820
  "typeString": "uint256"
@@ -2823,7 +2823,7 @@
2823
2823
  "visibility": "internal"
2824
2824
  }
2825
2825
  ],
2826
- "src": "7463:112:49"
2826
+ "src": "7576:112:49"
2827
2827
  },
2828
2828
  "returnParameters": {
2829
2829
  "id": 18637,
@@ -2834,10 +2834,10 @@
2834
2834
  "id": 18636,
2835
2835
  "mutability": "mutable",
2836
2836
  "name": "slotData",
2837
- "nameLocation": "7632:8:49",
2837
+ "nameLocation": "7745:8:49",
2838
2838
  "nodeType": "VariableDeclaration",
2839
2839
  "scope": 18638,
2840
- "src": "7615:25:49",
2840
+ "src": "7728:25:49",
2841
2841
  "stateVariable": false,
2842
2842
  "storageLocation": "memory",
2843
2843
  "typeDescriptions": {
@@ -2849,7 +2849,7 @@
2849
2849
  "id": 18634,
2850
2850
  "name": "bytes32",
2851
2851
  "nodeType": "ElementaryTypeName",
2852
- "src": "7615:7:49",
2852
+ "src": "7728:7:49",
2853
2853
  "typeDescriptions": {
2854
2854
  "typeIdentifier": "t_bytes32",
2855
2855
  "typeString": "bytes32"
@@ -2857,7 +2857,7 @@
2857
2857
  },
2858
2858
  "id": 18635,
2859
2859
  "nodeType": "ArrayTypeName",
2860
- "src": "7615:9:49",
2860
+ "src": "7728:9:49",
2861
2861
  "typeDescriptions": {
2862
2862
  "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
2863
2863
  "typeString": "bytes32[]"
@@ -2866,10 +2866,10 @@
2866
2866
  "visibility": "internal"
2867
2867
  }
2868
2868
  ],
2869
- "src": "7614:27:49"
2869
+ "src": "7727:27:49"
2870
2870
  },
2871
2871
  "scope": 18721,
2872
- "src": "7433:209:49",
2872
+ "src": "7546:209:49",
2873
2873
  "stateMutability": "view",
2874
2874
  "virtual": false,
2875
2875
  "visibility": "external"
@@ -2878,8 +2878,8 @@
2878
2878
  "documentation": {
2879
2879
  "id": 18639,
2880
2880
  "nodeType": "StructuredDocumentation",
2881
- "src": "7648:312:49",
2882
- "text": " @notice Settle balance from an account by the agreement\n @dev The agreement needs to make sure that the balance delta is balanced afterwards\n @param account Account to query.\n @param delta Amount of balance delta to be settled\n Modifiers:\n - onlyAgreement"
2881
+ "src": "7761:320:49",
2882
+ "text": " @notice Settle balance from an account by the agreement\n @dev The agreement needs to make sure that the balance delta is balanced afterwards\n @param account Account to query.\n @param delta Amount of balance delta to be settled\n @custom:modifiers \n - onlyAgreement"
2883
2883
  },
2884
2884
  "functionSelector": "cf97256d",
2885
2885
  "id": 18646,
@@ -2887,7 +2887,7 @@
2887
2887
  "kind": "function",
2888
2888
  "modifiers": [],
2889
2889
  "name": "settleBalance",
2890
- "nameLocation": "7974:13:49",
2890
+ "nameLocation": "8095:13:49",
2891
2891
  "nodeType": "FunctionDefinition",
2892
2892
  "parameters": {
2893
2893
  "id": 18644,
@@ -2898,10 +2898,10 @@
2898
2898
  "id": 18641,
2899
2899
  "mutability": "mutable",
2900
2900
  "name": "account",
2901
- "nameLocation": "8005:7:49",
2901
+ "nameLocation": "8126:7:49",
2902
2902
  "nodeType": "VariableDeclaration",
2903
2903
  "scope": 18646,
2904
- "src": "7997:15:49",
2904
+ "src": "8118:15:49",
2905
2905
  "stateVariable": false,
2906
2906
  "storageLocation": "default",
2907
2907
  "typeDescriptions": {
@@ -2912,7 +2912,7 @@
2912
2912
  "id": 18640,
2913
2913
  "name": "address",
2914
2914
  "nodeType": "ElementaryTypeName",
2915
- "src": "7997:7:49",
2915
+ "src": "8118:7:49",
2916
2916
  "stateMutability": "nonpayable",
2917
2917
  "typeDescriptions": {
2918
2918
  "typeIdentifier": "t_address",
@@ -2926,10 +2926,10 @@
2926
2926
  "id": 18643,
2927
2927
  "mutability": "mutable",
2928
2928
  "name": "delta",
2929
- "nameLocation": "8029:5:49",
2929
+ "nameLocation": "8150:5:49",
2930
2930
  "nodeType": "VariableDeclaration",
2931
2931
  "scope": 18646,
2932
- "src": "8022:12:49",
2932
+ "src": "8143:12:49",
2933
2933
  "stateVariable": false,
2934
2934
  "storageLocation": "default",
2935
2935
  "typeDescriptions": {
@@ -2940,7 +2940,7 @@
2940
2940
  "id": 18642,
2941
2941
  "name": "int256",
2942
2942
  "nodeType": "ElementaryTypeName",
2943
- "src": "8022:6:49",
2943
+ "src": "8143:6:49",
2944
2944
  "typeDescriptions": {
2945
2945
  "typeIdentifier": "t_int256",
2946
2946
  "typeString": "int256"
@@ -2949,16 +2949,16 @@
2949
2949
  "visibility": "internal"
2950
2950
  }
2951
2951
  ],
2952
- "src": "7987:53:49"
2952
+ "src": "8108:53:49"
2953
2953
  },
2954
2954
  "returnParameters": {
2955
2955
  "id": 18645,
2956
2956
  "nodeType": "ParameterList",
2957
2957
  "parameters": [],
2958
- "src": "8057:0:49"
2958
+ "src": "8178:0:49"
2959
2959
  },
2960
2960
  "scope": 18721,
2961
- "src": "7965:93:49",
2961
+ "src": "8086:93:49",
2962
2962
  "stateMutability": "nonpayable",
2963
2963
  "virtual": false,
2964
2964
  "visibility": "external"
@@ -2967,8 +2967,8 @@
2967
2967
  "documentation": {
2968
2968
  "id": 18647,
2969
2969
  "nodeType": "StructuredDocumentation",
2970
- "src": "8064:1125:49",
2971
- "text": " @dev Make liquidation payouts (v2)\n @param id Agreement ID\n @param liquidationTypeData Data regarding the version of the liquidation schema and the type\n @param liquidatorAccount Address of the executor of the liquidation\n @param useDefaultRewardAccount Whether or not the default reward account receives the rewardAmount\n @param targetAccount Account to be liquidated\n @param rewardAmount The amount the rewarded account will receive\n @param targetAccountBalanceDelta The delta amount the target account balance should change by\n - If a bailout is required (bailoutAmount > 0)\n - the actual reward (single deposit) goes to the executor,\n - while the reward account becomes the bailout account\n - total bailout include: bailout amount + reward amount\n - the targetAccount will be bailed out\n - If a bailout is not required\n - the targetAccount will pay the rewardAmount\n - the liquidator (reward account in PIC period) will receive the rewardAmount\n Modifiers:\n - onlyAgreement"
2970
+ "src": "8185:1154:49",
2971
+ "text": " @dev Make liquidation payouts (v2)\n @param id Agreement ID\n @param liquidationTypeData Data regarding the version of the liquidation schema and the type\n @param liquidatorAccount Address of the executor of the liquidation\n @param useDefaultRewardAccount Whether or not the default reward account receives the rewardAmount\n @param targetAccount Account to be liquidated\n @param rewardAmount The amount the rewarded account will receive\n @param targetAccountBalanceDelta The delta amount the target account balance should change by\n @custom:note \n - If a bailout is required (bailoutAmount > 0)\n - the actual reward (single deposit) goes to the executor,\n - while the reward account becomes the bailout account\n - total bailout include: bailout amount + reward amount\n - the targetAccount will be bailed out\n - If a bailout is not required\n - the targetAccount will pay the rewardAmount\n - the liquidator (reward account in PIC period) will receive the rewardAmount\n @custom:modifiers \n - onlyAgreement"
2972
2972
  },
2973
2973
  "functionSelector": "1863e809",
2974
2974
  "id": 18664,
@@ -2976,7 +2976,7 @@
2976
2976
  "kind": "function",
2977
2977
  "modifiers": [],
2978
2978
  "name": "makeLiquidationPayoutsV2",
2979
- "nameLocation": "9203:24:49",
2979
+ "nameLocation": "9353:24:49",
2980
2980
  "nodeType": "FunctionDefinition",
2981
2981
  "parameters": {
2982
2982
  "id": 18662,
@@ -2987,10 +2987,10 @@
2987
2987
  "id": 18649,
2988
2988
  "mutability": "mutable",
2989
2989
  "name": "id",
2990
- "nameLocation": "9250:2:49",
2990
+ "nameLocation": "9400:2:49",
2991
2991
  "nodeType": "VariableDeclaration",
2992
2992
  "scope": 18664,
2993
- "src": "9242:10:49",
2993
+ "src": "9392:10:49",
2994
2994
  "stateVariable": false,
2995
2995
  "storageLocation": "default",
2996
2996
  "typeDescriptions": {
@@ -3001,7 +3001,7 @@
3001
3001
  "id": 18648,
3002
3002
  "name": "bytes32",
3003
3003
  "nodeType": "ElementaryTypeName",
3004
- "src": "9242:7:49",
3004
+ "src": "9392:7:49",
3005
3005
  "typeDescriptions": {
3006
3006
  "typeIdentifier": "t_bytes32",
3007
3007
  "typeString": "bytes32"
@@ -3014,10 +3014,10 @@
3014
3014
  "id": 18651,
3015
3015
  "mutability": "mutable",
3016
3016
  "name": "liquidationTypeData",
3017
- "nameLocation": "9275:19:49",
3017
+ "nameLocation": "9425:19:49",
3018
3018
  "nodeType": "VariableDeclaration",
3019
3019
  "scope": 18664,
3020
- "src": "9262:32:49",
3020
+ "src": "9412:32:49",
3021
3021
  "stateVariable": false,
3022
3022
  "storageLocation": "memory",
3023
3023
  "typeDescriptions": {
@@ -3028,7 +3028,7 @@
3028
3028
  "id": 18650,
3029
3029
  "name": "bytes",
3030
3030
  "nodeType": "ElementaryTypeName",
3031
- "src": "9262:5:49",
3031
+ "src": "9412:5:49",
3032
3032
  "typeDescriptions": {
3033
3033
  "typeIdentifier": "t_bytes_storage_ptr",
3034
3034
  "typeString": "bytes"
@@ -3041,10 +3041,10 @@
3041
3041
  "id": 18653,
3042
3042
  "mutability": "mutable",
3043
3043
  "name": "liquidatorAccount",
3044
- "nameLocation": "9312:17:49",
3044
+ "nameLocation": "9462:17:49",
3045
3045
  "nodeType": "VariableDeclaration",
3046
3046
  "scope": 18664,
3047
- "src": "9304:25:49",
3047
+ "src": "9454:25:49",
3048
3048
  "stateVariable": false,
3049
3049
  "storageLocation": "default",
3050
3050
  "typeDescriptions": {
@@ -3055,7 +3055,7 @@
3055
3055
  "id": 18652,
3056
3056
  "name": "address",
3057
3057
  "nodeType": "ElementaryTypeName",
3058
- "src": "9304:7:49",
3058
+ "src": "9454:7:49",
3059
3059
  "stateMutability": "nonpayable",
3060
3060
  "typeDescriptions": {
3061
3061
  "typeIdentifier": "t_address",
@@ -3069,10 +3069,10 @@
3069
3069
  "id": 18655,
3070
3070
  "mutability": "mutable",
3071
3071
  "name": "useDefaultRewardAccount",
3072
- "nameLocation": "9344:23:49",
3072
+ "nameLocation": "9494:23:49",
3073
3073
  "nodeType": "VariableDeclaration",
3074
3074
  "scope": 18664,
3075
- "src": "9339:28:49",
3075
+ "src": "9489:28:49",
3076
3076
  "stateVariable": false,
3077
3077
  "storageLocation": "default",
3078
3078
  "typeDescriptions": {
@@ -3083,7 +3083,7 @@
3083
3083
  "id": 18654,
3084
3084
  "name": "bool",
3085
3085
  "nodeType": "ElementaryTypeName",
3086
- "src": "9339:4:49",
3086
+ "src": "9489:4:49",
3087
3087
  "typeDescriptions": {
3088
3088
  "typeIdentifier": "t_bool",
3089
3089
  "typeString": "bool"
@@ -3096,10 +3096,10 @@
3096
3096
  "id": 18657,
3097
3097
  "mutability": "mutable",
3098
3098
  "name": "targetAccount",
3099
- "nameLocation": "9385:13:49",
3099
+ "nameLocation": "9535:13:49",
3100
3100
  "nodeType": "VariableDeclaration",
3101
3101
  "scope": 18664,
3102
- "src": "9377:21:49",
3102
+ "src": "9527:21:49",
3103
3103
  "stateVariable": false,
3104
3104
  "storageLocation": "default",
3105
3105
  "typeDescriptions": {
@@ -3110,7 +3110,7 @@
3110
3110
  "id": 18656,
3111
3111
  "name": "address",
3112
3112
  "nodeType": "ElementaryTypeName",
3113
- "src": "9377:7:49",
3113
+ "src": "9527:7:49",
3114
3114
  "stateMutability": "nonpayable",
3115
3115
  "typeDescriptions": {
3116
3116
  "typeIdentifier": "t_address",
@@ -3124,10 +3124,10 @@
3124
3124
  "id": 18659,
3125
3125
  "mutability": "mutable",
3126
3126
  "name": "rewardAmount",
3127
- "nameLocation": "9416:12:49",
3127
+ "nameLocation": "9566:12:49",
3128
3128
  "nodeType": "VariableDeclaration",
3129
3129
  "scope": 18664,
3130
- "src": "9408:20:49",
3130
+ "src": "9558:20:49",
3131
3131
  "stateVariable": false,
3132
3132
  "storageLocation": "default",
3133
3133
  "typeDescriptions": {
@@ -3138,7 +3138,7 @@
3138
3138
  "id": 18658,
3139
3139
  "name": "uint256",
3140
3140
  "nodeType": "ElementaryTypeName",
3141
- "src": "9408:7:49",
3141
+ "src": "9558:7:49",
3142
3142
  "typeDescriptions": {
3143
3143
  "typeIdentifier": "t_uint256",
3144
3144
  "typeString": "uint256"
@@ -3151,10 +3151,10 @@
3151
3151
  "id": 18661,
3152
3152
  "mutability": "mutable",
3153
3153
  "name": "targetAccountBalanceDelta",
3154
- "nameLocation": "9445:25:49",
3154
+ "nameLocation": "9595:25:49",
3155
3155
  "nodeType": "VariableDeclaration",
3156
3156
  "scope": 18664,
3157
- "src": "9438:32:49",
3157
+ "src": "9588:32:49",
3158
3158
  "stateVariable": false,
3159
3159
  "storageLocation": "default",
3160
3160
  "typeDescriptions": {
@@ -3165,7 +3165,7 @@
3165
3165
  "id": 18660,
3166
3166
  "name": "int256",
3167
3167
  "nodeType": "ElementaryTypeName",
3168
- "src": "9438:6:49",
3168
+ "src": "9588:6:49",
3169
3169
  "typeDescriptions": {
3170
3170
  "typeIdentifier": "t_int256",
3171
3171
  "typeString": "int256"
@@ -3174,16 +3174,16 @@
3174
3174
  "visibility": "internal"
3175
3175
  }
3176
3176
  ],
3177
- "src": "9232:244:49"
3177
+ "src": "9382:244:49"
3178
3178
  },
3179
3179
  "returnParameters": {
3180
3180
  "id": 18663,
3181
3181
  "nodeType": "ParameterList",
3182
3182
  "parameters": [],
3183
- "src": "9485:0:49"
3183
+ "src": "9635:0:49"
3184
3184
  },
3185
3185
  "scope": 18721,
3186
- "src": "9194:292:49",
3186
+ "src": "9344:292:49",
3187
3187
  "stateMutability": "nonpayable",
3188
3188
  "virtual": false,
3189
3189
  "visibility": "external"
@@ -3193,13 +3193,13 @@
3193
3193
  "documentation": {
3194
3194
  "id": 18665,
3195
3195
  "nodeType": "StructuredDocumentation",
3196
- "src": "9491:1504:49",
3197
- "text": " @dev Agreement liquidation event v2 (including agent account)\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param liquidatorAccount Address of the executor of the liquidation\n @param targetAccount Account of the stream sender\n @param rewardAmountReceiver Account that collects the reward or bails out insolvent accounts\n @param rewardAmount The amount the reward recipient account balance should change by\n @param targetAccountBalanceDelta The amount the sender account balance should change by\n @param liquidationTypeData The encoded liquidation type data including the version (how to decode)\n NOTE:\n Reward account rule:\n - if the agreement is liquidated during the PIC period\n - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount\n - the targetAccount will pay for the rewardAmount\n - if the agreement is liquidated after the PIC period AND the targetAccount is solvent\n - the rewardAmountReceiver will get the rewardAmount (remaining deposit)\n - the targetAccount will pay for the rewardAmount\n - if the targetAccount is insolvent\n - the liquidatorAccount will get the rewardAmount (single deposit)\n - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount\n - the targetAccount will receive the bailoutAmount"
3196
+ "src": "9641:1512:49",
3197
+ "text": " @dev Agreement liquidation event v2 (including agent account)\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param liquidatorAccount Address of the executor of the liquidation\n @param targetAccount Account of the stream sender\n @param rewardAmountReceiver Account that collects the reward or bails out insolvent accounts\n @param rewardAmount The amount the reward recipient account balance should change by\n @param targetAccountBalanceDelta The amount the sender account balance should change by\n @param liquidationTypeData The encoded liquidation type data including the version (how to decode)\n @custom:note \n Reward account rule:\n - if the agreement is liquidated during the PIC period\n - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount\n - the targetAccount will pay for the rewardAmount\n - if the agreement is liquidated after the PIC period AND the targetAccount is solvent\n - the rewardAmountReceiver will get the rewardAmount (remaining deposit)\n - the targetAccount will pay for the rewardAmount\n - if the targetAccount is insolvent\n - the liquidatorAccount will get the rewardAmount (single deposit)\n - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount\n - the targetAccount will receive the bailoutAmount"
3198
3198
  },
3199
3199
  "eventSelector": "b8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f",
3200
3200
  "id": 18683,
3201
3201
  "name": "AgreementLiquidatedV2",
3202
- "nameLocation": "11006:21:49",
3202
+ "nameLocation": "11164:21:49",
3203
3203
  "nodeType": "EventDefinition",
3204
3204
  "parameters": {
3205
3205
  "id": 18682,
@@ -3211,10 +3211,10 @@
3211
3211
  "indexed": true,
3212
3212
  "mutability": "mutable",
3213
3213
  "name": "agreementClass",
3214
- "nameLocation": "11053:14:49",
3214
+ "nameLocation": "11211:14:49",
3215
3215
  "nodeType": "VariableDeclaration",
3216
3216
  "scope": 18683,
3217
- "src": "11037:30:49",
3217
+ "src": "11195:30:49",
3218
3218
  "stateVariable": false,
3219
3219
  "storageLocation": "default",
3220
3220
  "typeDescriptions": {
@@ -3225,7 +3225,7 @@
3225
3225
  "id": 18666,
3226
3226
  "name": "address",
3227
3227
  "nodeType": "ElementaryTypeName",
3228
- "src": "11037:7:49",
3228
+ "src": "11195:7:49",
3229
3229
  "stateMutability": "nonpayable",
3230
3230
  "typeDescriptions": {
3231
3231
  "typeIdentifier": "t_address",
@@ -3240,10 +3240,10 @@
3240
3240
  "indexed": false,
3241
3241
  "mutability": "mutable",
3242
3242
  "name": "id",
3243
- "nameLocation": "11085:2:49",
3243
+ "nameLocation": "11243:2:49",
3244
3244
  "nodeType": "VariableDeclaration",
3245
3245
  "scope": 18683,
3246
- "src": "11077:10:49",
3246
+ "src": "11235:10:49",
3247
3247
  "stateVariable": false,
3248
3248
  "storageLocation": "default",
3249
3249
  "typeDescriptions": {
@@ -3254,7 +3254,7 @@
3254
3254
  "id": 18668,
3255
3255
  "name": "bytes32",
3256
3256
  "nodeType": "ElementaryTypeName",
3257
- "src": "11077:7:49",
3257
+ "src": "11235:7:49",
3258
3258
  "typeDescriptions": {
3259
3259
  "typeIdentifier": "t_bytes32",
3260
3260
  "typeString": "bytes32"
@@ -3268,10 +3268,10 @@
3268
3268
  "indexed": true,
3269
3269
  "mutability": "mutable",
3270
3270
  "name": "liquidatorAccount",
3271
- "nameLocation": "11113:17:49",
3271
+ "nameLocation": "11271:17:49",
3272
3272
  "nodeType": "VariableDeclaration",
3273
3273
  "scope": 18683,
3274
- "src": "11097:33:49",
3274
+ "src": "11255:33:49",
3275
3275
  "stateVariable": false,
3276
3276
  "storageLocation": "default",
3277
3277
  "typeDescriptions": {
@@ -3282,7 +3282,7 @@
3282
3282
  "id": 18670,
3283
3283
  "name": "address",
3284
3284
  "nodeType": "ElementaryTypeName",
3285
- "src": "11097:7:49",
3285
+ "src": "11255:7:49",
3286
3286
  "stateMutability": "nonpayable",
3287
3287
  "typeDescriptions": {
3288
3288
  "typeIdentifier": "t_address",
@@ -3297,10 +3297,10 @@
3297
3297
  "indexed": true,
3298
3298
  "mutability": "mutable",
3299
3299
  "name": "targetAccount",
3300
- "nameLocation": "11156:13:49",
3300
+ "nameLocation": "11314:13:49",
3301
3301
  "nodeType": "VariableDeclaration",
3302
3302
  "scope": 18683,
3303
- "src": "11140:29:49",
3303
+ "src": "11298:29:49",
3304
3304
  "stateVariable": false,
3305
3305
  "storageLocation": "default",
3306
3306
  "typeDescriptions": {
@@ -3311,7 +3311,7 @@
3311
3311
  "id": 18672,
3312
3312
  "name": "address",
3313
3313
  "nodeType": "ElementaryTypeName",
3314
- "src": "11140:7:49",
3314
+ "src": "11298:7:49",
3315
3315
  "stateMutability": "nonpayable",
3316
3316
  "typeDescriptions": {
3317
3317
  "typeIdentifier": "t_address",
@@ -3326,10 +3326,10 @@
3326
3326
  "indexed": false,
3327
3327
  "mutability": "mutable",
3328
3328
  "name": "rewardAmountReceiver",
3329
- "nameLocation": "11187:20:49",
3329
+ "nameLocation": "11345:20:49",
3330
3330
  "nodeType": "VariableDeclaration",
3331
3331
  "scope": 18683,
3332
- "src": "11179:28:49",
3332
+ "src": "11337:28:49",
3333
3333
  "stateVariable": false,
3334
3334
  "storageLocation": "default",
3335
3335
  "typeDescriptions": {
@@ -3340,7 +3340,7 @@
3340
3340
  "id": 18674,
3341
3341
  "name": "address",
3342
3342
  "nodeType": "ElementaryTypeName",
3343
- "src": "11179:7:49",
3343
+ "src": "11337:7:49",
3344
3344
  "stateMutability": "nonpayable",
3345
3345
  "typeDescriptions": {
3346
3346
  "typeIdentifier": "t_address",
@@ -3355,10 +3355,10 @@
3355
3355
  "indexed": false,
3356
3356
  "mutability": "mutable",
3357
3357
  "name": "rewardAmount",
3358
- "nameLocation": "11225:12:49",
3358
+ "nameLocation": "11383:12:49",
3359
3359
  "nodeType": "VariableDeclaration",
3360
3360
  "scope": 18683,
3361
- "src": "11217:20:49",
3361
+ "src": "11375:20:49",
3362
3362
  "stateVariable": false,
3363
3363
  "storageLocation": "default",
3364
3364
  "typeDescriptions": {
@@ -3369,7 +3369,7 @@
3369
3369
  "id": 18676,
3370
3370
  "name": "uint256",
3371
3371
  "nodeType": "ElementaryTypeName",
3372
- "src": "11217:7:49",
3372
+ "src": "11375:7:49",
3373
3373
  "typeDescriptions": {
3374
3374
  "typeIdentifier": "t_uint256",
3375
3375
  "typeString": "uint256"
@@ -3383,10 +3383,10 @@
3383
3383
  "indexed": false,
3384
3384
  "mutability": "mutable",
3385
3385
  "name": "targetAccountBalanceDelta",
3386
- "nameLocation": "11254:25:49",
3386
+ "nameLocation": "11412:25:49",
3387
3387
  "nodeType": "VariableDeclaration",
3388
3388
  "scope": 18683,
3389
- "src": "11247:32:49",
3389
+ "src": "11405:32:49",
3390
3390
  "stateVariable": false,
3391
3391
  "storageLocation": "default",
3392
3392
  "typeDescriptions": {
@@ -3397,7 +3397,7 @@
3397
3397
  "id": 18678,
3398
3398
  "name": "int256",
3399
3399
  "nodeType": "ElementaryTypeName",
3400
- "src": "11247:6:49",
3400
+ "src": "11405:6:49",
3401
3401
  "typeDescriptions": {
3402
3402
  "typeIdentifier": "t_int256",
3403
3403
  "typeString": "int256"
@@ -3411,10 +3411,10 @@
3411
3411
  "indexed": false,
3412
3412
  "mutability": "mutable",
3413
3413
  "name": "liquidationTypeData",
3414
- "nameLocation": "11295:19:49",
3414
+ "nameLocation": "11453:19:49",
3415
3415
  "nodeType": "VariableDeclaration",
3416
3416
  "scope": 18683,
3417
- "src": "11289:25:49",
3417
+ "src": "11447:25:49",
3418
3418
  "stateVariable": false,
3419
3419
  "storageLocation": "default",
3420
3420
  "typeDescriptions": {
@@ -3425,7 +3425,7 @@
3425
3425
  "id": 18680,
3426
3426
  "name": "bytes",
3427
3427
  "nodeType": "ElementaryTypeName",
3428
- "src": "11289:5:49",
3428
+ "src": "11447:5:49",
3429
3429
  "typeDescriptions": {
3430
3430
  "typeIdentifier": "t_bytes_storage_ptr",
3431
3431
  "typeString": "bytes"
@@ -3434,22 +3434,22 @@
3434
3434
  "visibility": "internal"
3435
3435
  }
3436
3436
  ],
3437
- "src": "11027:293:49"
3437
+ "src": "11185:293:49"
3438
3438
  },
3439
- "src": "11000:321:49"
3439
+ "src": "11158:321:49"
3440
3440
  },
3441
3441
  {
3442
3442
  "anonymous": false,
3443
3443
  "documentation": {
3444
3444
  "id": 18684,
3445
3445
  "nodeType": "StructuredDocumentation",
3446
- "src": "12133:449:49",
3447
- "text": " @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedBy)\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param penaltyAccount Account of the agreement to be penalized\n @param rewardAccount Account that collect the reward\n @param rewardAmount Amount of liquidation reward\n NOTE:\n [DEPRECATED] Use AgreementLiquidatedV2 instead"
3446
+ "src": "12291:435:49",
3447
+ "text": " @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedBy)\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param penaltyAccount Account of the agreement to be penalized\n @param rewardAccount Account that collect the reward\n @param rewardAmount Amount of liquidation reward\n @custom:deprecated Use AgreementLiquidatedV2 instead"
3448
3448
  },
3449
3449
  "eventSelector": "8505c3d8f1f184f032cf0bc4cd80ee61c8b9d94f8907c3281bf0101a2610fe80",
3450
3450
  "id": 18696,
3451
3451
  "name": "AgreementLiquidated",
3452
- "nameLocation": "12593:19:49",
3452
+ "nameLocation": "12737:19:49",
3453
3453
  "nodeType": "EventDefinition",
3454
3454
  "parameters": {
3455
3455
  "id": 18695,
@@ -3461,10 +3461,10 @@
3461
3461
  "indexed": true,
3462
3462
  "mutability": "mutable",
3463
3463
  "name": "agreementClass",
3464
- "nameLocation": "12638:14:49",
3464
+ "nameLocation": "12782:14:49",
3465
3465
  "nodeType": "VariableDeclaration",
3466
3466
  "scope": 18696,
3467
- "src": "12622:30:49",
3467
+ "src": "12766:30:49",
3468
3468
  "stateVariable": false,
3469
3469
  "storageLocation": "default",
3470
3470
  "typeDescriptions": {
@@ -3475,7 +3475,7 @@
3475
3475
  "id": 18685,
3476
3476
  "name": "address",
3477
3477
  "nodeType": "ElementaryTypeName",
3478
- "src": "12622:7:49",
3478
+ "src": "12766:7:49",
3479
3479
  "stateMutability": "nonpayable",
3480
3480
  "typeDescriptions": {
3481
3481
  "typeIdentifier": "t_address",
@@ -3490,10 +3490,10 @@
3490
3490
  "indexed": false,
3491
3491
  "mutability": "mutable",
3492
3492
  "name": "id",
3493
- "nameLocation": "12670:2:49",
3493
+ "nameLocation": "12814:2:49",
3494
3494
  "nodeType": "VariableDeclaration",
3495
3495
  "scope": 18696,
3496
- "src": "12662:10:49",
3496
+ "src": "12806:10:49",
3497
3497
  "stateVariable": false,
3498
3498
  "storageLocation": "default",
3499
3499
  "typeDescriptions": {
@@ -3504,7 +3504,7 @@
3504
3504
  "id": 18687,
3505
3505
  "name": "bytes32",
3506
3506
  "nodeType": "ElementaryTypeName",
3507
- "src": "12662:7:49",
3507
+ "src": "12806:7:49",
3508
3508
  "typeDescriptions": {
3509
3509
  "typeIdentifier": "t_bytes32",
3510
3510
  "typeString": "bytes32"
@@ -3518,10 +3518,10 @@
3518
3518
  "indexed": true,
3519
3519
  "mutability": "mutable",
3520
3520
  "name": "penaltyAccount",
3521
- "nameLocation": "12698:14:49",
3521
+ "nameLocation": "12842:14:49",
3522
3522
  "nodeType": "VariableDeclaration",
3523
3523
  "scope": 18696,
3524
- "src": "12682:30:49",
3524
+ "src": "12826:30:49",
3525
3525
  "stateVariable": false,
3526
3526
  "storageLocation": "default",
3527
3527
  "typeDescriptions": {
@@ -3532,7 +3532,7 @@
3532
3532
  "id": 18689,
3533
3533
  "name": "address",
3534
3534
  "nodeType": "ElementaryTypeName",
3535
- "src": "12682:7:49",
3535
+ "src": "12826:7:49",
3536
3536
  "stateMutability": "nonpayable",
3537
3537
  "typeDescriptions": {
3538
3538
  "typeIdentifier": "t_address",
@@ -3547,10 +3547,10 @@
3547
3547
  "indexed": true,
3548
3548
  "mutability": "mutable",
3549
3549
  "name": "rewardAccount",
3550
- "nameLocation": "12738:13:49",
3550
+ "nameLocation": "12882:13:49",
3551
3551
  "nodeType": "VariableDeclaration",
3552
3552
  "scope": 18696,
3553
- "src": "12722:29:49",
3553
+ "src": "12866:29:49",
3554
3554
  "stateVariable": false,
3555
3555
  "storageLocation": "default",
3556
3556
  "typeDescriptions": {
@@ -3561,7 +3561,7 @@
3561
3561
  "id": 18691,
3562
3562
  "name": "address",
3563
3563
  "nodeType": "ElementaryTypeName",
3564
- "src": "12722:7:49",
3564
+ "src": "12866:7:49",
3565
3565
  "stateMutability": "nonpayable",
3566
3566
  "typeDescriptions": {
3567
3567
  "typeIdentifier": "t_address",
@@ -3576,10 +3576,10 @@
3576
3576
  "indexed": false,
3577
3577
  "mutability": "mutable",
3578
3578
  "name": "rewardAmount",
3579
- "nameLocation": "12769:12:49",
3579
+ "nameLocation": "12913:12:49",
3580
3580
  "nodeType": "VariableDeclaration",
3581
3581
  "scope": 18696,
3582
- "src": "12761:20:49",
3582
+ "src": "12905:20:49",
3583
3583
  "stateVariable": false,
3584
3584
  "storageLocation": "default",
3585
3585
  "typeDescriptions": {
@@ -3590,7 +3590,7 @@
3590
3590
  "id": 18693,
3591
3591
  "name": "uint256",
3592
3592
  "nodeType": "ElementaryTypeName",
3593
- "src": "12761:7:49",
3593
+ "src": "12905:7:49",
3594
3594
  "typeDescriptions": {
3595
3595
  "typeIdentifier": "t_uint256",
3596
3596
  "typeString": "uint256"
@@ -3599,22 +3599,22 @@
3599
3599
  "visibility": "internal"
3600
3600
  }
3601
3601
  ],
3602
- "src": "12612:175:49"
3602
+ "src": "12756:175:49"
3603
3603
  },
3604
- "src": "12587:201:49"
3604
+ "src": "12731:201:49"
3605
3605
  },
3606
3606
  {
3607
3607
  "anonymous": false,
3608
3608
  "documentation": {
3609
3609
  "id": 18697,
3610
3610
  "nodeType": "StructuredDocumentation",
3611
- "src": "12794:290:49",
3612
- "text": " @dev System bailout occurred (DEPRECATED BY AgreementLiquidatedBy)\n @param bailoutAccount Account that bailout the penalty account\n @param bailoutAmount Amount of account bailout\n NOTE:\n [DEPRECATED] Use AgreementLiquidatedV2 instead"
3611
+ "src": "12938:276:49",
3612
+ "text": " @dev System bailout occurred (DEPRECATED BY AgreementLiquidatedBy)\n @param bailoutAccount Account that bailout the penalty account\n @param bailoutAmount Amount of account bailout\n @custom:deprecated Use AgreementLiquidatedV2 instead"
3613
3613
  },
3614
3614
  "eventSelector": "d6c9a04afc81e8c614310bbee6c9e84f5abe15b82038bf8347014ce0852e6ffd",
3615
3615
  "id": 18703,
3616
3616
  "name": "Bailout",
3617
- "nameLocation": "13095:7:49",
3617
+ "nameLocation": "13225:7:49",
3618
3618
  "nodeType": "EventDefinition",
3619
3619
  "parameters": {
3620
3620
  "id": 18702,
@@ -3626,10 +3626,10 @@
3626
3626
  "indexed": true,
3627
3627
  "mutability": "mutable",
3628
3628
  "name": "bailoutAccount",
3629
- "nameLocation": "13128:14:49",
3629
+ "nameLocation": "13258:14:49",
3630
3630
  "nodeType": "VariableDeclaration",
3631
3631
  "scope": 18703,
3632
- "src": "13112:30:49",
3632
+ "src": "13242:30:49",
3633
3633
  "stateVariable": false,
3634
3634
  "storageLocation": "default",
3635
3635
  "typeDescriptions": {
@@ -3640,7 +3640,7 @@
3640
3640
  "id": 18698,
3641
3641
  "name": "address",
3642
3642
  "nodeType": "ElementaryTypeName",
3643
- "src": "13112:7:49",
3643
+ "src": "13242:7:49",
3644
3644
  "stateMutability": "nonpayable",
3645
3645
  "typeDescriptions": {
3646
3646
  "typeIdentifier": "t_address",
@@ -3655,10 +3655,10 @@
3655
3655
  "indexed": false,
3656
3656
  "mutability": "mutable",
3657
3657
  "name": "bailoutAmount",
3658
- "nameLocation": "13160:13:49",
3658
+ "nameLocation": "13290:13:49",
3659
3659
  "nodeType": "VariableDeclaration",
3660
3660
  "scope": 18703,
3661
- "src": "13152:21:49",
3661
+ "src": "13282:21:49",
3662
3662
  "stateVariable": false,
3663
3663
  "storageLocation": "default",
3664
3664
  "typeDescriptions": {
@@ -3669,7 +3669,7 @@
3669
3669
  "id": 18700,
3670
3670
  "name": "uint256",
3671
3671
  "nodeType": "ElementaryTypeName",
3672
- "src": "13152:7:49",
3672
+ "src": "13282:7:49",
3673
3673
  "typeDescriptions": {
3674
3674
  "typeIdentifier": "t_uint256",
3675
3675
  "typeString": "uint256"
@@ -3678,22 +3678,22 @@
3678
3678
  "visibility": "internal"
3679
3679
  }
3680
3680
  ],
3681
- "src": "13102:77:49"
3681
+ "src": "13232:77:49"
3682
3682
  },
3683
- "src": "13089:91:49"
3683
+ "src": "13219:91:49"
3684
3684
  },
3685
3685
  {
3686
3686
  "anonymous": false,
3687
3687
  "documentation": {
3688
3688
  "id": 18704,
3689
3689
  "nodeType": "StructuredDocumentation",
3690
- "src": "13186:1007:49",
3691
- "text": " @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedV2)\n @param liquidatorAccount Account of the agent that performed the liquidation.\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param penaltyAccount Account of the agreement to be penalized\n @param bondAccount Account that collect the reward or bailout accounts\n @param rewardAmount Amount of liquidation reward\n @param bailoutAmount Amount of liquidation bailouot\n NOTE:\n Reward account rule:\n - if bailout is equal to 0, then\n - the bondAccount will get the rewardAmount,\n - the penaltyAccount will pay for the rewardAmount.\n - if bailout is larger than 0, then\n - the liquidatorAccount will get the rewardAmouont,\n - the bondAccount will pay for both the rewardAmount and bailoutAmount,\n - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount."
3690
+ "src": "13316:1082:49",
3691
+ "text": " @dev Agreement liquidation event (DEPRECATED BY AgreementLiquidatedV2)\n @param liquidatorAccount Account of the agent that performed the liquidation.\n @param agreementClass Contract address of the agreement\n @param id Agreement ID\n @param penaltyAccount Account of the agreement to be penalized\n @param bondAccount Account that collect the reward or bailout accounts\n @param rewardAmount Amount of liquidation reward\n @param bailoutAmount Amount of liquidation bailouot\n @custom:deprecated Use AgreementLiquidatedV2 instead\n @custom:note \n Reward account rule:\n - if bailout is equal to 0, then\n - the bondAccount will get the rewardAmount,\n - the penaltyAccount will pay for the rewardAmount.\n - if bailout is larger than 0, then\n - the liquidatorAccount will get the rewardAmouont,\n - the bondAccount will pay for both the rewardAmount and bailoutAmount,\n - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount."
3692
3692
  },
3693
3693
  "eventSelector": "5f22b60e58b1d6de858bc27c48d5a4653e052da99e083c1d88bb8c58e1abc8ef",
3694
3694
  "id": 18720,
3695
3695
  "name": "AgreementLiquidatedBy",
3696
- "nameLocation": "14204:21:49",
3696
+ "nameLocation": "14409:21:49",
3697
3697
  "nodeType": "EventDefinition",
3698
3698
  "parameters": {
3699
3699
  "id": 18719,
@@ -3705,10 +3705,10 @@
3705
3705
  "indexed": false,
3706
3706
  "mutability": "mutable",
3707
3707
  "name": "liquidatorAccount",
3708
- "nameLocation": "14243:17:49",
3708
+ "nameLocation": "14448:17:49",
3709
3709
  "nodeType": "VariableDeclaration",
3710
3710
  "scope": 18720,
3711
- "src": "14235:25:49",
3711
+ "src": "14440:25:49",
3712
3712
  "stateVariable": false,
3713
3713
  "storageLocation": "default",
3714
3714
  "typeDescriptions": {
@@ -3719,7 +3719,7 @@
3719
3719
  "id": 18705,
3720
3720
  "name": "address",
3721
3721
  "nodeType": "ElementaryTypeName",
3722
- "src": "14235:7:49",
3722
+ "src": "14440:7:49",
3723
3723
  "stateMutability": "nonpayable",
3724
3724
  "typeDescriptions": {
3725
3725
  "typeIdentifier": "t_address",
@@ -3734,10 +3734,10 @@
3734
3734
  "indexed": true,
3735
3735
  "mutability": "mutable",
3736
3736
  "name": "agreementClass",
3737
- "nameLocation": "14286:14:49",
3737
+ "nameLocation": "14491:14:49",
3738
3738
  "nodeType": "VariableDeclaration",
3739
3739
  "scope": 18720,
3740
- "src": "14270:30:49",
3740
+ "src": "14475:30:49",
3741
3741
  "stateVariable": false,
3742
3742
  "storageLocation": "default",
3743
3743
  "typeDescriptions": {
@@ -3748,7 +3748,7 @@
3748
3748
  "id": 18707,
3749
3749
  "name": "address",
3750
3750
  "nodeType": "ElementaryTypeName",
3751
- "src": "14270:7:49",
3751
+ "src": "14475:7:49",
3752
3752
  "stateMutability": "nonpayable",
3753
3753
  "typeDescriptions": {
3754
3754
  "typeIdentifier": "t_address",
@@ -3763,10 +3763,10 @@
3763
3763
  "indexed": false,
3764
3764
  "mutability": "mutable",
3765
3765
  "name": "id",
3766
- "nameLocation": "14318:2:49",
3766
+ "nameLocation": "14523:2:49",
3767
3767
  "nodeType": "VariableDeclaration",
3768
3768
  "scope": 18720,
3769
- "src": "14310:10:49",
3769
+ "src": "14515:10:49",
3770
3770
  "stateVariable": false,
3771
3771
  "storageLocation": "default",
3772
3772
  "typeDescriptions": {
@@ -3777,7 +3777,7 @@
3777
3777
  "id": 18709,
3778
3778
  "name": "bytes32",
3779
3779
  "nodeType": "ElementaryTypeName",
3780
- "src": "14310:7:49",
3780
+ "src": "14515:7:49",
3781
3781
  "typeDescriptions": {
3782
3782
  "typeIdentifier": "t_bytes32",
3783
3783
  "typeString": "bytes32"
@@ -3791,10 +3791,10 @@
3791
3791
  "indexed": true,
3792
3792
  "mutability": "mutable",
3793
3793
  "name": "penaltyAccount",
3794
- "nameLocation": "14346:14:49",
3794
+ "nameLocation": "14551:14:49",
3795
3795
  "nodeType": "VariableDeclaration",
3796
3796
  "scope": 18720,
3797
- "src": "14330:30:49",
3797
+ "src": "14535:30:49",
3798
3798
  "stateVariable": false,
3799
3799
  "storageLocation": "default",
3800
3800
  "typeDescriptions": {
@@ -3805,7 +3805,7 @@
3805
3805
  "id": 18711,
3806
3806
  "name": "address",
3807
3807
  "nodeType": "ElementaryTypeName",
3808
- "src": "14330:7:49",
3808
+ "src": "14535:7:49",
3809
3809
  "stateMutability": "nonpayable",
3810
3810
  "typeDescriptions": {
3811
3811
  "typeIdentifier": "t_address",
@@ -3820,10 +3820,10 @@
3820
3820
  "indexed": true,
3821
3821
  "mutability": "mutable",
3822
3822
  "name": "bondAccount",
3823
- "nameLocation": "14386:11:49",
3823
+ "nameLocation": "14591:11:49",
3824
3824
  "nodeType": "VariableDeclaration",
3825
3825
  "scope": 18720,
3826
- "src": "14370:27:49",
3826
+ "src": "14575:27:49",
3827
3827
  "stateVariable": false,
3828
3828
  "storageLocation": "default",
3829
3829
  "typeDescriptions": {
@@ -3834,7 +3834,7 @@
3834
3834
  "id": 18713,
3835
3835
  "name": "address",
3836
3836
  "nodeType": "ElementaryTypeName",
3837
- "src": "14370:7:49",
3837
+ "src": "14575:7:49",
3838
3838
  "stateMutability": "nonpayable",
3839
3839
  "typeDescriptions": {
3840
3840
  "typeIdentifier": "t_address",
@@ -3849,10 +3849,10 @@
3849
3849
  "indexed": false,
3850
3850
  "mutability": "mutable",
3851
3851
  "name": "rewardAmount",
3852
- "nameLocation": "14415:12:49",
3852
+ "nameLocation": "14620:12:49",
3853
3853
  "nodeType": "VariableDeclaration",
3854
3854
  "scope": 18720,
3855
- "src": "14407:20:49",
3855
+ "src": "14612:20:49",
3856
3856
  "stateVariable": false,
3857
3857
  "storageLocation": "default",
3858
3858
  "typeDescriptions": {
@@ -3863,7 +3863,7 @@
3863
3863
  "id": 18715,
3864
3864
  "name": "uint256",
3865
3865
  "nodeType": "ElementaryTypeName",
3866
- "src": "14407:7:49",
3866
+ "src": "14612:7:49",
3867
3867
  "typeDescriptions": {
3868
3868
  "typeIdentifier": "t_uint256",
3869
3869
  "typeString": "uint256"
@@ -3877,10 +3877,10 @@
3877
3877
  "indexed": false,
3878
3878
  "mutability": "mutable",
3879
3879
  "name": "bailoutAmount",
3880
- "nameLocation": "14445:13:49",
3880
+ "nameLocation": "14650:13:49",
3881
3881
  "nodeType": "VariableDeclaration",
3882
3882
  "scope": 18720,
3883
- "src": "14437:21:49",
3883
+ "src": "14642:21:49",
3884
3884
  "stateVariable": false,
3885
3885
  "storageLocation": "default",
3886
3886
  "typeDescriptions": {
@@ -3891,7 +3891,7 @@
3891
3891
  "id": 18717,
3892
3892
  "name": "uint256",
3893
3893
  "nodeType": "ElementaryTypeName",
3894
- "src": "14437:7:49",
3894
+ "src": "14642:7:49",
3895
3895
  "typeDescriptions": {
3896
3896
  "typeIdentifier": "t_uint256",
3897
3897
  "typeString": "uint256"
@@ -3900,25 +3900,25 @@
3900
3900
  "visibility": "internal"
3901
3901
  }
3902
3902
  ],
3903
- "src": "14225:239:49"
3903
+ "src": "14430:239:49"
3904
3904
  },
3905
- "src": "14198:267:49"
3905
+ "src": "14403:267:49"
3906
3906
  }
3907
3907
  ],
3908
3908
  "scope": 18722,
3909
- "src": "188:14279:49",
3909
+ "src": "188:14484:49",
3910
3910
  "usedErrors": []
3911
3911
  }
3912
3912
  ],
3913
- "src": "35:14433:49"
3913
+ "src": "35:14638:49"
3914
3914
  },
3915
3915
  "compiler": {
3916
3916
  "name": "solc",
3917
- "version": "0.8.13+commit.abaa5c0e.Emscripten.clang"
3917
+ "version": "0.8.14+commit.80d49f37.Emscripten.clang"
3918
3918
  },
3919
3919
  "networks": {},
3920
3920
  "schemaVersion": "3.4.7",
3921
- "updatedAt": "2022-06-03T09:45:13.999Z",
3921
+ "updatedAt": "2022-06-15T22:03:58.613Z",
3922
3922
  "devdoc": {
3923
3923
  "author": "Superfluid",
3924
3924
  "events": {
@@ -3931,20 +3931,23 @@
3931
3931
  }
3932
3932
  },
3933
3933
  "AgreementLiquidated(address,bytes32,address,address,uint256)": {
3934
+ "custom:deprecated": "Use AgreementLiquidatedV2 instead",
3934
3935
  "details": "Agreement liquidation event (DEPRECATED BY AgreementLiquidatedBy)",
3935
3936
  "params": {
3936
3937
  "agreementClass": "Contract address of the agreement",
3937
3938
  "id": "Agreement ID",
3938
3939
  "penaltyAccount": "Account of the agreement to be penalized",
3939
3940
  "rewardAccount": "Account that collect the reward",
3940
- "rewardAmount": "Amount of liquidation reward NOTE: [DEPRECATED] Use AgreementLiquidatedV2 instead"
3941
+ "rewardAmount": "Amount of liquidation reward"
3941
3942
  }
3942
3943
  },
3943
3944
  "AgreementLiquidatedBy(address,address,bytes32,address,address,uint256,uint256)": {
3945
+ "custom:deprecated": "Use AgreementLiquidatedV2 instead",
3946
+ "custom:note": " Reward account rule: - if bailout is equal to 0, then - the bondAccount will get the rewardAmount, - the penaltyAccount will pay for the rewardAmount. - if bailout is larger than 0, then - the liquidatorAccount will get the rewardAmouont, - the bondAccount will pay for both the rewardAmount and bailoutAmount, - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount.",
3944
3947
  "details": "Agreement liquidation event (DEPRECATED BY AgreementLiquidatedV2)",
3945
3948
  "params": {
3946
3949
  "agreementClass": "Contract address of the agreement",
3947
- "bailoutAmount": "Amount of liquidation bailouot NOTE: Reward account rule: - if bailout is equal to 0, then - the bondAccount will get the rewardAmount, - the penaltyAccount will pay for the rewardAmount. - if bailout is larger than 0, then - the liquidatorAccount will get the rewardAmouont, - the bondAccount will pay for both the rewardAmount and bailoutAmount, - the penaltyAccount will pay for the rewardAmount while get the bailoutAmount.",
3950
+ "bailoutAmount": "Amount of liquidation bailouot",
3948
3951
  "bondAccount": "Account that collect the reward or bailout accounts",
3949
3952
  "id": "Agreement ID",
3950
3953
  "liquidatorAccount": "Account of the agent that performed the liquidation.",
@@ -3953,11 +3956,12 @@
3953
3956
  }
3954
3957
  },
3955
3958
  "AgreementLiquidatedV2(address,bytes32,address,address,address,uint256,int256,bytes)": {
3959
+ "custom:note": " Reward account rule: - if the agreement is liquidated during the PIC period - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount - the targetAccount will pay for the rewardAmount - if the agreement is liquidated after the PIC period AND the targetAccount is solvent - the rewardAmountReceiver will get the rewardAmount (remaining deposit) - the targetAccount will pay for the rewardAmount - if the targetAccount is insolvent - the liquidatorAccount will get the rewardAmount (single deposit) - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount - the targetAccount will receive the bailoutAmount",
3956
3960
  "details": "Agreement liquidation event v2 (including agent account)",
3957
3961
  "params": {
3958
3962
  "agreementClass": "Contract address of the agreement",
3959
3963
  "id": "Agreement ID",
3960
- "liquidationTypeData": "The encoded liquidation type data including the version (how to decode) NOTE: Reward account rule: - if the agreement is liquidated during the PIC period - the rewardAmountReceiver will get the rewardAmount (remaining deposit), regardless of the liquidatorAccount - the targetAccount will pay for the rewardAmount - if the agreement is liquidated after the PIC period AND the targetAccount is solvent - the rewardAmountReceiver will get the rewardAmount (remaining deposit) - the targetAccount will pay for the rewardAmount - if the targetAccount is insolvent - the liquidatorAccount will get the rewardAmount (single deposit) - the default reward account (governance) will pay for both the rewardAmount and bailoutAmount - the targetAccount will receive the bailoutAmount",
3964
+ "liquidationTypeData": "The encoded liquidation type data including the version (how to decode)",
3961
3965
  "liquidatorAccount": "Address of the executor of the liquidation",
3962
3966
  "rewardAmount": "The amount the reward recipient account balance should change by",
3963
3967
  "rewardAmountReceiver": "Account that collects the reward or bails out insolvent accounts",
@@ -3989,10 +3993,11 @@
3989
3993
  }
3990
3994
  },
3991
3995
  "Bailout(address,uint256)": {
3996
+ "custom:deprecated": "Use AgreementLiquidatedV2 instead",
3992
3997
  "details": "System bailout occurred (DEPRECATED BY AgreementLiquidatedBy)",
3993
3998
  "params": {
3994
3999
  "bailoutAccount": "Account that bailout the penalty account",
3995
- "bailoutAmount": "Amount of account bailout NOTE: [DEPRECATED] Use AgreementLiquidatedV2 instead"
4000
+ "bailoutAmount": "Amount of account bailout"
3996
4001
  }
3997
4002
  }
3998
4003
  },
@@ -4062,7 +4067,7 @@
4062
4067
  "timestamp": "The time we'd like to check if the account is solvent (should use future)"
4063
4068
  },
4064
4069
  "returns": {
4065
- "isSolvent": "isSolvent"
4070
+ "isSolvent": "True if the account is solvent, false otherwise"
4066
4071
  }
4067
4072
  },
4068
4073
  "isAccountSolventNow(address)": {
@@ -4071,10 +4076,12 @@
4071
4076
  "account": "The account to check"
4072
4077
  },
4073
4078
  "returns": {
4074
- "isSolvent": "isSolvent"
4079
+ "isSolvent": "True if the account is solvent, false otherwise"
4075
4080
  }
4076
4081
  },
4077
4082
  "makeLiquidationPayoutsV2(bytes32,bytes,address,bool,address,uint256,int256)": {
4083
+ "custom:modifiers": " - onlyAgreement",
4084
+ "custom:note": " - If a bailout is required (bailoutAmount > 0) - the actual reward (single deposit) goes to the executor, - while the reward account becomes the bailout account - total bailout include: bailout amount + reward amount - the targetAccount will be bailed out - If a bailout is not required - the targetAccount will pay the rewardAmount - the liquidator (reward account in PIC period) will receive the rewardAmount",
4078
4085
  "details": "Make liquidation payouts (v2)",
4079
4086
  "params": {
4080
4087
  "id": "Agreement ID",
@@ -4082,7 +4089,7 @@
4082
4089
  "liquidatorAccount": "Address of the executor of the liquidation",
4083
4090
  "rewardAmount": "The amount the rewarded account will receive",
4084
4091
  "targetAccount": "Account to be liquidated",
4085
- "targetAccountBalanceDelta": "The delta amount the target account balance should change by - If a bailout is required (bailoutAmount > 0) - the actual reward (single deposit) goes to the executor, - while the reward account becomes the bailout account - total bailout include: bailout amount + reward amount - the targetAccount will be bailed out - If a bailout is not required - the targetAccount will pay the rewardAmount - the liquidator (reward account in PIC period) will receive the rewardAmount Modifiers: - onlyAgreement",
4092
+ "targetAccountBalanceDelta": "The delta amount the target account balance should change by",
4086
4093
  "useDefaultRewardAccount": "Whether or not the default reward account receives the rewardAmount"
4087
4094
  }
4088
4095
  },
@@ -4110,10 +4117,11 @@
4110
4117
  }
4111
4118
  },
4112
4119
  "settleBalance(address,int256)": {
4120
+ "custom:modifiers": " - onlyAgreement",
4113
4121
  "details": "The agreement needs to make sure that the balance delta is balanced afterwards",
4114
4122
  "params": {
4115
4123
  "account": "Account to query.",
4116
- "delta": "Amount of balance delta to be settled Modifiers: - onlyAgreement"
4124
+ "delta": "Amount of balance delta to be settled"
4117
4125
  }
4118
4126
  },
4119
4127
  "terminateAgreement(bytes32,uint256)": {
@@ -4130,9 +4138,10 @@
4130
4138
  }
4131
4139
  },
4132
4140
  "updateAgreementStateSlot(address,uint256,bytes32[])": {
4141
+ "custom:note": " - To clear the storage out, provide zero-ed array of intended length",
4133
4142
  "details": "Update agreement state slot",
4134
4143
  "params": {
4135
- "account": "Account to be updated NOTE - To clear the storage out, provide zero-ed array of intended length"
4144
+ "account": "Account to be updated"
4136
4145
  }
4137
4146
  }
4138
4147
  },