@superfluid-finance/ethereum-contracts 1.2.3-dev.3df6de8.0 → 1.2.3-dev.4eebafa.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 (118) hide show
  1. package/build/contracts/AccessControl.json +1 -1
  2. package/build/contracts/AccessControlEnumerable.json +1 -1
  3. package/build/contracts/Address.json +1 -1
  4. package/build/contracts/AgreementBase.json +10 -10
  5. package/build/contracts/AgreementLibrary.json +4 -4
  6. package/build/contracts/BaseRelayRecipient.json +1 -1
  7. package/build/contracts/BatchLiquidator.json +1385 -1242
  8. package/build/contracts/BatchOperation.json +1 -1
  9. package/build/contracts/CFAv1Library.json +3437 -3625
  10. package/build/contracts/CallUtils.json +1 -1
  11. package/build/contracts/ClosingOnUpdateFlowTestApp.json +4440 -4451
  12. package/build/contracts/ConstantFlowAgreementV1.json +5204 -5204
  13. package/build/contracts/Context.json +1 -1
  14. package/build/contracts/ContextDefinitions.json +1 -1
  15. package/build/contracts/Create2.json +1 -1
  16. package/build/contracts/CustomSuperTokenBase.json +2 -2
  17. package/build/contracts/ERC165.json +1 -1
  18. package/build/contracts/ERC1820Implementer.json +79 -79
  19. package/build/contracts/ERC1820RegistryCompiled.json +1 -1
  20. package/build/contracts/ERC20.json +1008 -1008
  21. package/build/contracts/ERC20Burnable.json +1 -1
  22. package/build/contracts/ERC20Pausable.json +1 -1
  23. package/build/contracts/ERC20PresetMinterPauser.json +1816 -1816
  24. package/build/contracts/ERC20WithTokenInfo.json +1 -1
  25. package/build/contracts/ERC777Helper.json +1 -1
  26. package/build/contracts/ERC777RecipientDrainingGas.json +1874 -1874
  27. package/build/contracts/ERC777RecipientReverting.json +1896 -1896
  28. package/build/contracts/EnumerableSet.json +1 -1
  29. package/build/contracts/EventsEmitter.json +414 -0
  30. package/build/contracts/ExclusiveInflowTestApp.json +4468 -4479
  31. package/build/contracts/FixedSizeData.json +405 -405
  32. package/build/contracts/FlowExchangeTestApp.json +4578 -4589
  33. package/build/contracts/FlowOperatorDefinitions.json +1 -1
  34. package/build/contracts/FullUpgradableSuperTokenProxy.json +319 -319
  35. package/build/contracts/IAccessControl.json +1 -1
  36. package/build/contracts/IAccessControlEnumerable.json +1 -1
  37. package/build/contracts/IConstantFlowAgreementV1.json +2 -2
  38. package/build/contracts/IDAv1Library.json +3227 -3403
  39. package/build/contracts/IERC165.json +1 -1
  40. package/build/contracts/IERC1820Implementer.json +1 -1
  41. package/build/contracts/IERC1820Registry.json +1 -1
  42. package/build/contracts/IERC20.json +1 -1
  43. package/build/contracts/IERC20Metadata.json +1 -1
  44. package/build/contracts/IERC777.json +1 -1
  45. package/build/contracts/IERC777Recipient.json +1 -1
  46. package/build/contracts/IERC777Sender.json +1 -1
  47. package/build/contracts/IInstantDistributionAgreementV1.json +2 -2
  48. package/build/contracts/IMaticBridgedNativeSuperToken.json +6 -6
  49. package/build/contracts/IMaticBridgedNativeSuperTokenCustom.json +2 -2
  50. package/build/contracts/IMultiSigWallet.json +1 -1
  51. package/build/contracts/IPureSuperToken.json +6 -6
  52. package/build/contracts/IPureSuperTokenCustom.json +2 -2
  53. package/build/contracts/IRelayRecipient.json +1 -1
  54. package/build/contracts/IResolver.json +1 -1
  55. package/build/contracts/ISETH.json +6 -6
  56. package/build/contracts/ISETHCustom.json +2 -2
  57. package/build/contracts/ISuperAgreement.json +2 -2
  58. package/build/contracts/ISuperApp.json +2 -2
  59. package/build/contracts/ISuperToken.json +6 -6
  60. package/build/contracts/ISuperTokenFactory.json +2 -2
  61. package/build/contracts/ISuperfluid.json +2 -2
  62. package/build/contracts/ISuperfluidGovernance.json +2 -2
  63. package/build/contracts/ISuperfluidToken.json +122 -122
  64. package/build/contracts/ITOGAv1.json +2689 -2739
  65. package/build/contracts/ITOGAv2.json +2689 -2739
  66. package/build/contracts/Initializable.json +1 -1
  67. package/build/contracts/InstantDistributionAgreementV1.json +5387 -5387
  68. package/build/contracts/MaticBridgedNativeSuperTokenProxy.json +971 -971
  69. package/build/contracts/NonClosableOutflowTestApp.json +4343 -4354
  70. package/build/contracts/Ownable.json +1 -1
  71. package/build/contracts/Pausable.json +1 -1
  72. package/build/contracts/Proxy.json +1 -1
  73. package/build/contracts/PureSuperToken.json +694 -694
  74. package/build/contracts/Resolver.json +1058 -1058
  75. package/build/contracts/SETHProxy.json +661 -661
  76. package/build/contracts/SafeCast.json +1 -1
  77. package/build/contracts/SafeERC20.json +1 -1
  78. package/build/contracts/SafeMath.json +1 -1
  79. package/build/contracts/SelfDeletingFlowTestApp.json +4440 -4451
  80. package/build/contracts/SlotsBitmapLibrary.json +1757 -1757
  81. package/build/contracts/Strings.json +1 -1
  82. package/build/contracts/SuperAppBase.json +2 -2
  83. package/build/contracts/SuperAppDefinitions.json +1 -1
  84. package/build/contracts/SuperToken.json +9757 -9515
  85. package/build/contracts/SuperTokenFactory.json +2074 -2074
  86. package/build/contracts/SuperTokenFactoryBase.json +989 -989
  87. package/build/contracts/SuperTokenFactoryHelper.json +1095 -1095
  88. package/build/contracts/SuperUpgrader.json +2495 -2495
  89. package/build/contracts/Superfluid.json +12978 -12978
  90. package/build/contracts/SuperfluidFrameworkDeployer.json +2042 -2042
  91. package/build/contracts/SuperfluidGovernanceBase.json +9 -9
  92. package/build/contracts/SuperfluidGovernanceConfigs.json +1 -1
  93. package/build/contracts/SuperfluidGovernanceII.json +2022 -2022
  94. package/build/contracts/SuperfluidGovernanceIIProxy.json +227 -227
  95. package/build/contracts/SuperfluidLoader.json +752 -752
  96. package/build/contracts/SuperfluidToken.json +3476 -2953
  97. package/build/contracts/TOGA.json +4681 -4731
  98. package/build/contracts/TestGovernance.json +2402 -2402
  99. package/build/contracts/TestToken.json +1267 -1267
  100. package/build/contracts/TokenCustodian.json +903 -903
  101. package/build/contracts/TokenInfo.json +1 -1
  102. package/build/contracts/UUPSProxiable.json +233 -233
  103. package/build/contracts/UUPSProxy.json +257 -257
  104. package/build/contracts/UUPSUtils.json +85 -85
  105. package/build/contracts-sizes.txt +6 -6
  106. package/contracts/apps/CFAv1Library.sol +147 -111
  107. package/contracts/apps/IDAv1Library.sol +133 -101
  108. package/contracts/interfaces/superfluid/ISuperfluidToken.sol +8 -8
  109. package/contracts/libs/EventsEmitter.sol +16 -0
  110. package/contracts/mocks/CFAAppMocks.sol +52 -36
  111. package/contracts/mocks/CustomSuperTokenMock.sol +11 -4
  112. package/contracts/mocks/IDASuperAppTester.sol +24 -18
  113. package/contracts/mocks/MultiFlowTesterApp.sol +33 -24
  114. package/contracts/mocks/SuperAppMocks.sol +54 -40
  115. package/contracts/superfluid/SuperfluidToken.sol +33 -31
  116. package/contracts/utils/BatchLiquidator.sol +15 -11
  117. package/contracts/utils/TOGA.sol +40 -30
  118. package/package.json +2 -2
@@ -142,7 +142,7 @@
142
142
  {
143
143
  "indexed": false,
144
144
  "internalType": "address",
145
- "name": "rewardAccount",
145
+ "name": "rewardAmountReceiver",
146
146
  "type": "address"
147
147
  },
148
148
  {
@@ -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\":\"rewardAccount\",\"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 rewardAccount 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 liquidatorAccount 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 rewardAccount will pay for both the rewardAmount and bailoutAmount - the targetAccount will receive the bailoutAmount\",\"liquidatorAccount\":\"Address of the executor of the liquidation\",\"rewardAccount\":\"Account that collects the reward or bails out insolvent accounts\",\"rewardAmount\":\"The amount the reward recipient account balance should change by\",\"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 reward recepient account will receive\",\"targetAccount\":\"Account of the stream sender\",\"targetAccountBalanceDelta\":\"The amount the sender 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\":\"0x9189eaba9e856cc4932ea29eeaf4e89a09448dde13860591691ec122856fdc75\",\"license\":\"AGPLv3\",\"urls\":[\"bzz-raw://7d5991b906bba706373f5bfe3c2c8789a7a45360a41eee50574272b393c4ab70\",\"dweb:/ipfs/QmVCXVnYA13vMNxa7rGzNB129sUXiGE1asuHdnEMEPVZsp\"]}},\"version\":1}",
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}",
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 of the stream sender\n * @param rewardAmount The amount the reward recepient account will receive\n * @param targetAccountBalanceDelta The amount the sender 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 rewardAccount 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 rewardAccount 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 liquidatorAccount 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 rewardAccount 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 rewardAccount,\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 * 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",
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",
@@ -2967,8 +2967,8 @@
2967
2967
  "documentation": {
2968
2968
  "id": 18647,
2969
2969
  "nodeType": "StructuredDocumentation",
2970
- "src": "8064:1131: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 of the stream sender\n @param rewardAmount The amount the reward recepient account will receive\n @param targetAccountBalanceDelta The amount the sender 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": "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"
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": "9209:24:49",
2979
+ "nameLocation": "9203: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": "9256:2:49",
2990
+ "nameLocation": "9250:2:49",
2991
2991
  "nodeType": "VariableDeclaration",
2992
2992
  "scope": 18664,
2993
- "src": "9248:10:49",
2993
+ "src": "9242: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": "9248:7:49",
3004
+ "src": "9242: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": "9281:19:49",
3017
+ "nameLocation": "9275:19:49",
3018
3018
  "nodeType": "VariableDeclaration",
3019
3019
  "scope": 18664,
3020
- "src": "9268:32:49",
3020
+ "src": "9262: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": "9268:5:49",
3031
+ "src": "9262: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": "9318:17:49",
3044
+ "nameLocation": "9312:17:49",
3045
3045
  "nodeType": "VariableDeclaration",
3046
3046
  "scope": 18664,
3047
- "src": "9310:25:49",
3047
+ "src": "9304: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": "9310:7:49",
3058
+ "src": "9304: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": "9350:23:49",
3072
+ "nameLocation": "9344:23:49",
3073
3073
  "nodeType": "VariableDeclaration",
3074
3074
  "scope": 18664,
3075
- "src": "9345:28:49",
3075
+ "src": "9339: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": "9345:4:49",
3086
+ "src": "9339: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": "9391:13:49",
3099
+ "nameLocation": "9385:13:49",
3100
3100
  "nodeType": "VariableDeclaration",
3101
3101
  "scope": 18664,
3102
- "src": "9383:21:49",
3102
+ "src": "9377: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": "9383:7:49",
3113
+ "src": "9377: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": "9422:12:49",
3127
+ "nameLocation": "9416:12:49",
3128
3128
  "nodeType": "VariableDeclaration",
3129
3129
  "scope": 18664,
3130
- "src": "9414:20:49",
3130
+ "src": "9408: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": "9414:7:49",
3141
+ "src": "9408: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": "9451:25:49",
3154
+ "nameLocation": "9445:25:49",
3155
3155
  "nodeType": "VariableDeclaration",
3156
3156
  "scope": 18664,
3157
- "src": "9444:32:49",
3157
+ "src": "9438: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": "9444:6:49",
3168
+ "src": "9438: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": "9238:244:49"
3177
+ "src": "9232:244:49"
3178
3178
  },
3179
3179
  "returnParameters": {
3180
3180
  "id": 18663,
3181
3181
  "nodeType": "ParameterList",
3182
3182
  "parameters": [],
3183
- "src": "9491:0:49"
3183
+ "src": "9485:0:49"
3184
3184
  },
3185
3185
  "scope": 18721,
3186
- "src": "9200:292:49",
3186
+ "src": "9194: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": "9497:1465: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 rewardAccount 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 rewardAccount 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 liquidatorAccount 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 rewardAccount will pay for both the rewardAmount and bailoutAmount\n - the targetAccount will receive the bailoutAmount"
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"
3198
3198
  },
3199
3199
  "eventSelector": "b8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f",
3200
3200
  "id": 18683,
3201
3201
  "name": "AgreementLiquidatedV2",
3202
- "nameLocation": "10973:21:49",
3202
+ "nameLocation": "11006: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": "11020:14:49",
3214
+ "nameLocation": "11053:14:49",
3215
3215
  "nodeType": "VariableDeclaration",
3216
3216
  "scope": 18683,
3217
- "src": "11004:30:49",
3217
+ "src": "11037: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": "11004:7:49",
3228
+ "src": "11037: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": "11052:2:49",
3243
+ "nameLocation": "11085:2:49",
3244
3244
  "nodeType": "VariableDeclaration",
3245
3245
  "scope": 18683,
3246
- "src": "11044:10:49",
3246
+ "src": "11077: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": "11044:7:49",
3257
+ "src": "11077: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": "11080:17:49",
3271
+ "nameLocation": "11113:17:49",
3272
3272
  "nodeType": "VariableDeclaration",
3273
3273
  "scope": 18683,
3274
- "src": "11064:33:49",
3274
+ "src": "11097: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": "11064:7:49",
3285
+ "src": "11097: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": "11123:13:49",
3300
+ "nameLocation": "11156:13:49",
3301
3301
  "nodeType": "VariableDeclaration",
3302
3302
  "scope": 18683,
3303
- "src": "11107:29:49",
3303
+ "src": "11140: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": "11107:7:49",
3314
+ "src": "11140:7:49",
3315
3315
  "stateMutability": "nonpayable",
3316
3316
  "typeDescriptions": {
3317
3317
  "typeIdentifier": "t_address",
@@ -3325,11 +3325,11 @@
3325
3325
  "id": 18675,
3326
3326
  "indexed": false,
3327
3327
  "mutability": "mutable",
3328
- "name": "rewardAccount",
3329
- "nameLocation": "11154:13:49",
3328
+ "name": "rewardAmountReceiver",
3329
+ "nameLocation": "11187:20:49",
3330
3330
  "nodeType": "VariableDeclaration",
3331
3331
  "scope": 18683,
3332
- "src": "11146:21:49",
3332
+ "src": "11179: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": "11146:7:49",
3343
+ "src": "11179: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": "11185:12:49",
3358
+ "nameLocation": "11225:12:49",
3359
3359
  "nodeType": "VariableDeclaration",
3360
3360
  "scope": 18683,
3361
- "src": "11177:20:49",
3361
+ "src": "11217: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": "11177:7:49",
3372
+ "src": "11217: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": "11214:25:49",
3386
+ "nameLocation": "11254:25:49",
3387
3387
  "nodeType": "VariableDeclaration",
3388
3388
  "scope": 18683,
3389
- "src": "11207:32:49",
3389
+ "src": "11247: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": "11207:6:49",
3400
+ "src": "11247: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": "11255:19:49",
3414
+ "nameLocation": "11295:19:49",
3415
3415
  "nodeType": "VariableDeclaration",
3416
3416
  "scope": 18683,
3417
- "src": "11249:25:49",
3417
+ "src": "11289: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": "11249:5:49",
3428
+ "src": "11289: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": "10994:286:49"
3437
+ "src": "11027:293:49"
3438
3438
  },
3439
- "src": "10967:314:49"
3439
+ "src": "11000:321:49"
3440
3440
  },
3441
3441
  {
3442
3442
  "anonymous": false,
3443
3443
  "documentation": {
3444
3444
  "id": 18684,
3445
3445
  "nodeType": "StructuredDocumentation",
3446
- "src": "12093:449:49",
3446
+ "src": "12133:449:49",
3447
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"
3448
3448
  },
3449
3449
  "eventSelector": "8505c3d8f1f184f032cf0bc4cd80ee61c8b9d94f8907c3281bf0101a2610fe80",
3450
3450
  "id": 18696,
3451
3451
  "name": "AgreementLiquidated",
3452
- "nameLocation": "12553:19:49",
3452
+ "nameLocation": "12593: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": "12598:14:49",
3464
+ "nameLocation": "12638:14:49",
3465
3465
  "nodeType": "VariableDeclaration",
3466
3466
  "scope": 18696,
3467
- "src": "12582:30:49",
3467
+ "src": "12622: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": "12582:7:49",
3478
+ "src": "12622: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": "12630:2:49",
3493
+ "nameLocation": "12670:2:49",
3494
3494
  "nodeType": "VariableDeclaration",
3495
3495
  "scope": 18696,
3496
- "src": "12622:10:49",
3496
+ "src": "12662: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": "12622:7:49",
3507
+ "src": "12662: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": "12658:14:49",
3521
+ "nameLocation": "12698:14:49",
3522
3522
  "nodeType": "VariableDeclaration",
3523
3523
  "scope": 18696,
3524
- "src": "12642:30:49",
3524
+ "src": "12682: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": "12642:7:49",
3535
+ "src": "12682: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": "12698:13:49",
3550
+ "nameLocation": "12738:13:49",
3551
3551
  "nodeType": "VariableDeclaration",
3552
3552
  "scope": 18696,
3553
- "src": "12682:29:49",
3553
+ "src": "12722: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": "12682:7:49",
3564
+ "src": "12722: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": "12729:12:49",
3579
+ "nameLocation": "12769:12:49",
3580
3580
  "nodeType": "VariableDeclaration",
3581
3581
  "scope": 18696,
3582
- "src": "12721:20:49",
3582
+ "src": "12761: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": "12721:7:49",
3593
+ "src": "12761: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": "12572:175:49"
3602
+ "src": "12612:175:49"
3603
3603
  },
3604
- "src": "12547:201:49"
3604
+ "src": "12587:201:49"
3605
3605
  },
3606
3606
  {
3607
3607
  "anonymous": false,
3608
3608
  "documentation": {
3609
3609
  "id": 18697,
3610
3610
  "nodeType": "StructuredDocumentation",
3611
- "src": "12754:290:49",
3611
+ "src": "12794:290:49",
3612
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"
3613
3613
  },
3614
3614
  "eventSelector": "d6c9a04afc81e8c614310bbee6c9e84f5abe15b82038bf8347014ce0852e6ffd",
3615
3615
  "id": 18703,
3616
3616
  "name": "Bailout",
3617
- "nameLocation": "13055:7:49",
3617
+ "nameLocation": "13095: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": "13088:14:49",
3629
+ "nameLocation": "13128:14:49",
3630
3630
  "nodeType": "VariableDeclaration",
3631
3631
  "scope": 18703,
3632
- "src": "13072:30:49",
3632
+ "src": "13112: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": "13072:7:49",
3643
+ "src": "13112: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": "13120:13:49",
3658
+ "nameLocation": "13160:13:49",
3659
3659
  "nodeType": "VariableDeclaration",
3660
3660
  "scope": 18703,
3661
- "src": "13112:21:49",
3661
+ "src": "13152: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": "13112:7:49",
3672
+ "src": "13152: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": "13062:77:49"
3681
+ "src": "13102:77:49"
3682
3682
  },
3683
- "src": "13049:91:49"
3683
+ "src": "13089:91:49"
3684
3684
  },
3685
3685
  {
3686
3686
  "anonymous": false,
3687
3687
  "documentation": {
3688
3688
  "id": 18704,
3689
3689
  "nodeType": "StructuredDocumentation",
3690
- "src": "13146:1007:49",
3690
+ "src": "13186:1007:49",
3691
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."
3692
3692
  },
3693
3693
  "eventSelector": "5f22b60e58b1d6de858bc27c48d5a4653e052da99e083c1d88bb8c58e1abc8ef",
3694
3694
  "id": 18720,
3695
3695
  "name": "AgreementLiquidatedBy",
3696
- "nameLocation": "14164:21:49",
3696
+ "nameLocation": "14204: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": "14203:17:49",
3708
+ "nameLocation": "14243:17:49",
3709
3709
  "nodeType": "VariableDeclaration",
3710
3710
  "scope": 18720,
3711
- "src": "14195:25:49",
3711
+ "src": "14235: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": "14195:7:49",
3722
+ "src": "14235: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": "14246:14:49",
3737
+ "nameLocation": "14286:14:49",
3738
3738
  "nodeType": "VariableDeclaration",
3739
3739
  "scope": 18720,
3740
- "src": "14230:30:49",
3740
+ "src": "14270: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": "14230:7:49",
3751
+ "src": "14270: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": "14278:2:49",
3766
+ "nameLocation": "14318:2:49",
3767
3767
  "nodeType": "VariableDeclaration",
3768
3768
  "scope": 18720,
3769
- "src": "14270:10:49",
3769
+ "src": "14310: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": "14270:7:49",
3780
+ "src": "14310: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": "14306:14:49",
3794
+ "nameLocation": "14346:14:49",
3795
3795
  "nodeType": "VariableDeclaration",
3796
3796
  "scope": 18720,
3797
- "src": "14290:30:49",
3797
+ "src": "14330: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": "14290:7:49",
3808
+ "src": "14330: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": "14346:11:49",
3823
+ "nameLocation": "14386:11:49",
3824
3824
  "nodeType": "VariableDeclaration",
3825
3825
  "scope": 18720,
3826
- "src": "14330:27:49",
3826
+ "src": "14370: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": "14330:7:49",
3837
+ "src": "14370: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": "14375:12:49",
3852
+ "nameLocation": "14415:12:49",
3853
3853
  "nodeType": "VariableDeclaration",
3854
3854
  "scope": 18720,
3855
- "src": "14367:20:49",
3855
+ "src": "14407: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": "14367:7:49",
3866
+ "src": "14407: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": "14405:13:49",
3880
+ "nameLocation": "14445:13:49",
3881
3881
  "nodeType": "VariableDeclaration",
3882
3882
  "scope": 18720,
3883
- "src": "14397:21:49",
3883
+ "src": "14437: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": "14397:7:49",
3894
+ "src": "14437:7:49",
3895
3895
  "typeDescriptions": {
3896
3896
  "typeIdentifier": "t_uint256",
3897
3897
  "typeString": "uint256"
@@ -3900,17 +3900,17 @@
3900
3900
  "visibility": "internal"
3901
3901
  }
3902
3902
  ],
3903
- "src": "14185:239:49"
3903
+ "src": "14225:239:49"
3904
3904
  },
3905
- "src": "14158:267:49"
3905
+ "src": "14198:267:49"
3906
3906
  }
3907
3907
  ],
3908
3908
  "scope": 18722,
3909
- "src": "188:14239:49",
3909
+ "src": "188:14279:49",
3910
3910
  "usedErrors": []
3911
3911
  }
3912
3912
  ],
3913
- "src": "35:14393:49"
3913
+ "src": "35:14433:49"
3914
3914
  },
3915
3915
  "compiler": {
3916
3916
  "name": "solc",
@@ -3918,7 +3918,7 @@
3918
3918
  },
3919
3919
  "networks": {},
3920
3920
  "schemaVersion": "3.4.7",
3921
- "updatedAt": "2022-05-27T08:56:18.804Z",
3921
+ "updatedAt": "2022-06-06T10:25:55.176Z",
3922
3922
  "devdoc": {
3923
3923
  "author": "Superfluid",
3924
3924
  "events": {
@@ -3957,10 +3957,10 @@
3957
3957
  "params": {
3958
3958
  "agreementClass": "Contract address of the agreement",
3959
3959
  "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 rewardAccount 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 liquidatorAccount 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 rewardAccount will pay for both the rewardAmount and bailoutAmount - the targetAccount will receive the bailoutAmount",
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",
3961
3961
  "liquidatorAccount": "Address of the executor of the liquidation",
3962
- "rewardAccount": "Account that collects the reward or bails out insolvent accounts",
3963
3962
  "rewardAmount": "The amount the reward recipient account balance should change by",
3963
+ "rewardAmountReceiver": "Account that collects the reward or bails out insolvent accounts",
3964
3964
  "targetAccount": "Account of the stream sender",
3965
3965
  "targetAccountBalanceDelta": "The amount the sender account balance should change by"
3966
3966
  }
@@ -4080,9 +4080,9 @@
4080
4080
  "id": "Agreement ID",
4081
4081
  "liquidationTypeData": "Data regarding the version of the liquidation schema and the type",
4082
4082
  "liquidatorAccount": "Address of the executor of the liquidation",
4083
- "rewardAmount": "The amount the reward recepient account will receive",
4084
- "targetAccount": "Account of the stream sender",
4085
- "targetAccountBalanceDelta": "The amount the sender 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",
4083
+ "rewardAmount": "The amount the rewarded account will receive",
4084
+ "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",
4086
4086
  "useDefaultRewardAccount": "Whether or not the default reward account receives the rewardAmount"
4087
4087
  }
4088
4088
  },