@superfluid-finance/ethereum-contracts 1.7.2-dev.3cd1f8a.0 → 1.7.2-dev.3e0e33e.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 (209) hide show
  1. package/README.md +2 -2
  2. package/artifacts/contracts/apps/SuperAppBaseFlow.sol/SuperAppBaseFlow.json +13 -13
  3. package/artifacts/contracts/apps/SuperfluidLoaderLibrary.sol/SuperfluidLoaderLibrary.json +2 -2
  4. package/artifacts/contracts/mocks/IDASuperAppTester.sol/IDASuperAppTester.json +2 -2
  5. package/artifacts/contracts/mocks/MockSmartWallet.sol/MockSmartWallet.json +2 -2
  6. package/artifacts/contracts/mocks/SuperAppBaseFlowTester.sol/SuperAppBaseFlowTester.json +15 -15
  7. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock.json +2 -2
  8. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMock.json +2 -2
  9. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel.json +2 -2
  10. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux.json +2 -2
  11. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMockNotSelfRegistering.json +2 -2
  12. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx.json +2 -2
  13. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx.json +2 -2
  14. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp.json +2 -2
  15. package/artifacts/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey.json +2 -2
  16. package/artifacts/contracts/mocks/SuperfluidMock.sol/SuperfluidMock.json +2 -2
  17. package/artifacts/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester.json +2 -2
  18. package/artifacts/contracts/superfluid/Superfluid.sol/Superfluid.json +2 -2
  19. package/artifacts/contracts/utils/SuperfluidFrameworkDeployer.sol/SuperfluidFrameworkDeployer.json +2 -2
  20. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/CFAv1ForwarderDeployerLibrary.json +2 -2
  21. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/IDAv1ForwarderDeployerLibrary.json +2 -2
  22. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/ProxyDeployerLibrary.json +2 -2
  23. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperTokenDeployerLibrary.json +2 -2
  24. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidCFAv1DeployerLibrary.json +2 -2
  25. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidFrameworkDeploymentSteps.json +2 -2
  26. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidGovDeployerLibrary.json +2 -2
  27. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidHostDeployerLibrary.json +2 -2
  28. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidIDAv1DeployerLibrary.json +2 -2
  29. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidLoaderDeployerLibrary.json +2 -2
  30. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidNFTLogicDeployerLibrary.json +2 -2
  31. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/SuperfluidPeripheryDeployerLibrary.json +2 -2
  32. package/artifacts/contracts/utils/SuperfluidFrameworkDeploymentSteps.sol/TokenDeployerLibrary.json +2 -2
  33. package/build/contracts/AccessControl.json +1 -1
  34. package/build/contracts/AccessControlEnumerable.json +1 -1
  35. package/build/contracts/Address.json +1 -1
  36. package/build/contracts/AgreementBase.json +18 -18
  37. package/build/contracts/AgreementLibrary.json +165 -165
  38. package/build/contracts/BaseRelayRecipient.json +57 -57
  39. package/build/contracts/BatchLiquidator.json +382 -382
  40. package/build/contracts/BatchOperation.json +614 -614
  41. package/build/contracts/CFAv1Forwarder.json +1250 -1250
  42. package/build/contracts/CFAv1ForwarderDeployerLibrary.json +2387 -2387
  43. package/build/contracts/CFAv1Library.json +389 -389
  44. package/build/contracts/CallUtils.json +198 -198
  45. package/build/contracts/ClosingOnUpdateFlowTestApp.json +1525 -1525
  46. package/build/contracts/ConstantFlowAgreementV1.json +1087 -1087
  47. package/build/contracts/ConstantInflowNFT.json +402 -402
  48. package/build/contracts/ConstantOutflowNFT.json +661 -661
  49. package/build/contracts/Context.json +1 -1
  50. package/build/contracts/ContextDefinitions.json +614 -614
  51. package/build/contracts/CustomSuperTokenBase.json +19 -19
  52. package/build/contracts/ERC165.json +1 -1
  53. package/build/contracts/ERC1820Implementer.json +1 -1
  54. package/build/contracts/ERC1820RegistryCompiled.json +22 -22
  55. package/build/contracts/ERC20.json +1 -1
  56. package/build/contracts/ERC20WithTokenInfo.json +23 -23
  57. package/build/contracts/ERC777Helper.json +384 -384
  58. package/build/contracts/ERC777RecipientDrainingGas.json +863 -863
  59. package/build/contracts/ERC777RecipientReverting.json +863 -863
  60. package/build/contracts/EnumerableSet.json +1 -1
  61. package/build/contracts/EventsEmitter.json +43 -43
  62. package/build/contracts/ExclusiveInflowTestApp.json +1525 -1525
  63. package/build/contracts/FixedSizeData.json +200 -200
  64. package/build/contracts/FlowExchangeTestApp.json +1526 -1526
  65. package/build/contracts/FlowNFTBase.json +1280 -1280
  66. package/build/contracts/FlowOperatorDefinitions.json +614 -614
  67. package/build/contracts/ForwarderBase.json +190 -190
  68. package/build/contracts/FullUpgradableSuperTokenProxy.json +116 -116
  69. package/build/contracts/IAccessControl.json +1 -1
  70. package/build/contracts/IAccessControlEnumerable.json +1 -1
  71. package/build/contracts/IConstantFlowAgreementV1.json +677 -677
  72. package/build/contracts/IConstantInflowNFT.json +54 -54
  73. package/build/contracts/IConstantOutflowNFT.json +107 -107
  74. package/build/contracts/IDAv1Forwarder.json +912 -912
  75. package/build/contracts/IDAv1ForwarderDeployerLibrary.json +2387 -2387
  76. package/build/contracts/IDAv1Library.json +430 -430
  77. package/build/contracts/IERC165.json +1 -1
  78. package/build/contracts/IERC1820Implementer.json +1 -1
  79. package/build/contracts/IERC1820Registry.json +1 -1
  80. package/build/contracts/IERC20.json +1 -1
  81. package/build/contracts/IERC20Metadata.json +1 -1
  82. package/build/contracts/IERC20Permit.json +1 -1
  83. package/build/contracts/IERC721.json +1 -1
  84. package/build/contracts/IERC721Metadata.json +1 -1
  85. package/build/contracts/IERC777.json +1 -1
  86. package/build/contracts/IERC777Recipient.json +1 -1
  87. package/build/contracts/IERC777Sender.json +1 -1
  88. package/build/contracts/IFlowNFTBase.json +115 -115
  89. package/build/contracts/IInstantDistributionAgreementV1.json +667 -667
  90. package/build/contracts/IMultiSigWallet.json +31 -31
  91. package/build/contracts/IPoolAdminNFT.json +7 -7
  92. package/build/contracts/IPoolMemberNFT.json +7 -7
  93. package/build/contracts/IPureSuperToken.json +62 -62
  94. package/build/contracts/IPureSuperTokenCustom.json +62 -62
  95. package/build/contracts/IRelayRecipient.json +27 -27
  96. package/build/contracts/IResolver.json +38 -38
  97. package/build/contracts/ISETH.json +67 -67
  98. package/build/contracts/ISETHCustom.json +67 -67
  99. package/build/contracts/ISuperAgreement.json +50 -50
  100. package/build/contracts/ISuperApp.json +191 -191
  101. package/build/contracts/ISuperToken.json +695 -695
  102. package/build/contracts/ISuperTokenFactory.json +225 -225
  103. package/build/contracts/ISuperfluid.json +904 -904
  104. package/build/contracts/ISuperfluidGovernance.json +251 -251
  105. package/build/contracts/ISuperfluidToken.json +407 -407
  106. package/build/contracts/ITOGAv1.json +1346 -1346
  107. package/build/contracts/ITOGAv2.json +1346 -1346
  108. package/build/contracts/ITOGAv3.json +1346 -1346
  109. package/build/contracts/Initializable.json +1 -1
  110. package/build/contracts/InstantDistributionAgreementV1.json +594 -594
  111. package/build/contracts/Math.json +1 -1
  112. package/build/contracts/NonClosableOutflowTestApp.json +1526 -1526
  113. package/build/contracts/Ownable.json +1 -1
  114. package/build/contracts/Proxy.json +1 -1
  115. package/build/contracts/ProxyDeployerLibrary.json +2385 -2385
  116. package/build/contracts/PureSuperToken.json +106 -106
  117. package/build/contracts/Resolver.json +98 -98
  118. package/build/contracts/SETHProxy.json +224 -224
  119. package/build/contracts/SafeCast.json +1 -1
  120. package/build/contracts/SafeERC20.json +1 -1
  121. package/build/contracts/SafeGasLibrary.json +51 -51
  122. package/build/contracts/SafeMath.json +1 -1
  123. package/build/contracts/SelfDeletingFlowTestApp.json +1525 -1525
  124. package/build/contracts/SlotsBitmapLibrary.json +457 -457
  125. package/build/contracts/StreamRedirector.json +704 -704
  126. package/build/contracts/Strings.json +1 -1
  127. package/build/contracts/SuperAppBase.json +42 -42
  128. package/build/contracts/SuperAppBaseFlow.json +1580 -1537
  129. package/build/contracts/SuperAppDefinitions.json +614 -614
  130. package/build/contracts/SuperToken.json +2714 -2714
  131. package/build/contracts/SuperTokenDeployerLibrary.json +2386 -2386
  132. package/build/contracts/SuperTokenFactory.json +1347 -1347
  133. package/build/contracts/SuperTokenFactoryBase.json +1329 -1329
  134. package/build/contracts/SuperTokenV1Library.json +5632 -5632
  135. package/build/contracts/SuperUpgrader.json +439 -439
  136. package/build/contracts/Superfluid.json +7999 -7996
  137. package/build/contracts/SuperfluidCFAv1DeployerLibrary.json +2386 -2386
  138. package/build/contracts/SuperfluidFrameworkDeployer.json +1263 -1263
  139. package/build/contracts/SuperfluidFrameworkDeploymentSteps.json +2385 -2385
  140. package/build/contracts/SuperfluidGovDeployerLibrary.json +2386 -2386
  141. package/build/contracts/SuperfluidGovernanceBase.json +2449 -2449
  142. package/build/contracts/SuperfluidGovernanceConfigs.json +614 -614
  143. package/build/contracts/SuperfluidGovernanceII.json +155 -155
  144. package/build/contracts/SuperfluidGovernanceIIProxy.json +135 -135
  145. package/build/contracts/SuperfluidHostDeployerLibrary.json +2385 -2385
  146. package/build/contracts/SuperfluidIDAv1DeployerLibrary.json +2386 -2386
  147. package/build/contracts/SuperfluidLoader.json +207 -207
  148. package/build/contracts/SuperfluidLoaderDeployerLibrary.json +2387 -2387
  149. package/build/contracts/SuperfluidLoaderLibrary.json +481 -480
  150. package/build/contracts/SuperfluidNFTLogicDeployerLibrary.json +2390 -2390
  151. package/build/contracts/SuperfluidPeripheryDeployerLibrary.json +2388 -2388
  152. package/build/contracts/SuperfluidToken.json +1423 -1423
  153. package/build/contracts/TOGA.json +1360 -1360
  154. package/build/contracts/TestGovernance.json +250 -250
  155. package/build/contracts/TestResolver.json +47 -47
  156. package/build/contracts/TestToken.json +102 -102
  157. package/build/contracts/TokenDeployerLibrary.json +2387 -2387
  158. package/build/contracts/TokenInfo.json +32 -32
  159. package/build/contracts/UUPSProxiable.json +139 -139
  160. package/build/contracts/UUPSProxy.json +81 -81
  161. package/build/contracts/UUPSUtils.json +37 -37
  162. package/build/contracts-sizes.txt +15 -15
  163. package/build/typechain/contracts/apps/SuperAppBaseFlow.d.ts +9 -9
  164. package/build/typechain/contracts/apps/SuperAppBaseFlow.d.ts.map +1 -1
  165. package/build/typechain/contracts/mocks/SuperAppBaseFlowTester.d.ts +9 -9
  166. package/build/typechain/contracts/mocks/SuperAppBaseFlowTester.d.ts.map +1 -1
  167. package/build/typechain/factories/contracts/apps/SuperAppBaseFlow__factory.d.ts +10 -10
  168. package/build/typechain/factories/contracts/apps/SuperAppBaseFlow__factory.js +13 -13
  169. package/build/typechain/factories/contracts/apps/SuperAppBaseFlow__factory.js.map +1 -1
  170. package/build/typechain/factories/contracts/apps/SuperfluidLoaderLibrary__factory.d.ts +1 -1
  171. package/build/typechain/factories/contracts/apps/SuperfluidLoaderLibrary__factory.js +1 -1
  172. package/build/typechain/factories/contracts/mocks/IDASuperAppTester__factory.d.ts +1 -1
  173. package/build/typechain/factories/contracts/mocks/IDASuperAppTester__factory.js +1 -1
  174. package/build/typechain/factories/contracts/mocks/MockSmartWallet__factory.d.ts +1 -1
  175. package/build/typechain/factories/contracts/mocks/MockSmartWallet__factory.js +1 -1
  176. package/build/typechain/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts +11 -11
  177. package/build/typechain/factories/contracts/mocks/SuperAppBaseFlowTester__factory.d.ts.map +1 -1
  178. package/build/typechain/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js +14 -14
  179. package/build/typechain/factories/contracts/mocks/SuperAppBaseFlowTester__factory.js.map +1 -1
  180. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.d.ts +1 -1
  181. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppFactoryMock__factory.js +1 -1
  182. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.d.ts +1 -1
  183. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock2ndLevel__factory.js +1 -1
  184. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.d.ts +1 -1
  185. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockAux__factory.js +1 -1
  186. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.d.ts +1 -1
  187. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningEmptyCtx__factory.js +1 -1
  188. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.d.ts +1 -1
  189. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockReturningInvalidCtx__factory.js +1 -1
  190. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp__factory.d.ts +1 -1
  191. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockUsingDeprecatedRegisterApp__factory.js +1 -1
  192. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.d.ts +1 -1
  193. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMockWithRegistrationKey__factory.js +1 -1
  194. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.d.ts +1 -1
  195. package/build/typechain/factories/contracts/mocks/SuperAppMocks.sol/SuperAppMock__factory.js +1 -1
  196. package/build/typechain/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.d.ts +1 -1
  197. package/build/typechain/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidMock__factory.js +1 -1
  198. package/build/typechain/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.d.ts +1 -1
  199. package/build/typechain/factories/contracts/mocks/SuperfluidMock.sol/SuperfluidUpgradabilityTester__factory.js +1 -1
  200. package/build/typechain/factories/contracts/superfluid/Superfluid__factory.d.ts +1 -1
  201. package/build/typechain/factories/contracts/superfluid/Superfluid__factory.js +1 -1
  202. package/build/typechain/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.d.ts +1 -1
  203. package/build/typechain/factories/contracts/utils/SuperfluidFrameworkDeployer__factory.js +1 -1
  204. package/build/typechain/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.d.ts +1 -1
  205. package/build/typechain/factories/contracts/utils/SuperfluidFrameworkDeploymentSteps__factory.js +1 -1
  206. package/contracts/apps/SuperAppBaseFlow.sol +11 -10
  207. package/contracts/apps/SuperfluidLoaderLibrary.sol +1 -1
  208. package/contracts/superfluid/Superfluid.sol +1 -0
  209. package/package.json +4 -3
@@ -740,7 +740,7 @@
740
740
  "bytecode": "0x60e06040523480156200001157600080fd5b506040516200244d3803806200244d8339810160408190526200003491620000fd565b6001600160a01b03821660a0819052604051635b69006f60e11b81527fa9214cc96615e0085d3bb077758db69497dc2dce3b2b1e97bc93c3d18d83efd3600482015283919063b6d200de90602401602060405180830381865afa158015620000a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000c691906200013c565b6001600160a01b039081166080529190911660c05250620001639050565b6001600160a01b0381168114620000fa57600080fd5b50565b600080604083850312156200011157600080fd5b82516200011e81620000e4565b60208401519092506200013181620000e4565b809150509250929050565b6000602082840312156200014f57600080fd5b81516200015c81620000e4565b9392505050565b60805160a05160c051612282620001cb600039600081816102e501528181610b1601528181610c100152610d270152600081816102be015261067601526000818161024b01528181610a8901528181610b8c01528181610c88015261121f01526122826000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80636352211e116100f9578063a22cb46511610097578063e985e9c511610071578063e985e9c514610436578063eb54a7ca14610449578063ef1f02371461045c578063f7e3d9831461046f57600080fd5b8063a22cb465146103fd578063b88d4fde14610410578063c87b56dd1461042357600080fd5b806389f71d2d116100d357806389f71d2d146103815780638d47859e1461039457806395d89b41146103ed5780639903ad38146103f557600080fd5b80636352211e146103525780636c0360eb1461036557806370a082311461036d57600080fd5b806342842e0e116101665780634c5c0c85116101405780634c5c0c85146102e05780634cd88b761461030757806350d75d251461031a57806352d1902d1461032257600080fd5b806342842e0e1461029357806346951954146102a657806349f289dc146102b957600080fd5b8063095ea7b3116101a2578063095ea7b314610231578063181561011461024657806323b872dd1461026d5780632f3885601461028057600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063081812fc14610206575b600080fd5b6101dc6101d7366004611982565b610482565b60405190151581526020015b60405180910390f35b6101f96104d4565b6040516101e891906119d0565b610219610214366004611a03565b610566565b6040516001600160a01b0390911681526020016101e8565b61024461023f366004611a31565b61058d565b005b6102197f000000000000000000000000000000000000000000000000000000000000000081565b61024461027b366004611a5d565b610619565b61024461028e366004611a03565b61064b565b6102446102a1366004611a5d565b610657565b6102446102b4366004611a9e565b610672565b6102197f000000000000000000000000000000000000000000000000000000000000000081565b6102197f000000000000000000000000000000000000000000000000000000000000000081565b610244610315366004611b88565b61072e565b610219610814565b7f87e44dce6a0d65a5ccf441783661f5727c2624b1f0088bbe957ce2c95406b7845b6040519081526020016101e8565b610219610360366004611a03565b610843565b6101f961087c565b61034461037b366004611a9e565b50600190565b61034461038f366004611bec565b610898565b6103a76103a2366004611a03565b6108ad565b6040805182516001600160a01b03908116825260208085015182169083015283830151169181019190915260609182015163ffffffff16918101919091526080016101e8565b6101f961092e565b61024461093d565b61024461040b366004611c37565b6109ff565b61024461041e366004611c75565b610a0a565b6101f9610431366004611a03565b610a43565b6101dc610444366004611cf5565b610a50565b610244610457366004611bec565b610a7e565b61024461046a366004611bec565b610b81565b61024461047d366004611bec565b610c7d565b60006301ffc9a760e01b6001600160e01b0319831614806104b357506380ac58cd60e01b6001600160e01b03198316145b806104ce5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6060600180546104e390611d23565b80601f016020809104026020016040519081016040528092919081815260200182805461050f90611d23565b801561055c5780601f106105315761010080835404028352916020019161055c565b820191906000526020600020905b81548152906001019060200180831161053f57829003601f168201915b5050505050905090565b600061057182610d56565b506000908152600360205260409020546001600160a01b031690565b600061059882610843565b9050806001600160a01b0316836001600160a01b0316036105cc5760405163e4790b2560e01b815260040160405180910390fd5b336001600160a01b038216148015906105ec57506105ea8133610a50565b155b1561060a5760405163519a92c160e11b815260040160405180910390fd5b6106148383610d8e565b505050565b6106233382610df8565b610640576040516312a8eb0360e11b815260040160405180910390fd5b610614838383610e56565b61065481610e6f565b50565b61061483838360405180602001604052806000815250610a0a565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663731aed6e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190611d5d565b9050336001600160a01b038216146107215760405163ebb7505b60e01b815260040160405180910390fd5b61072a82610e9f565b5050565b600054610100900460ff161580801561074e5750600054600160ff909116105b806107685750303b158015610768575060005460ff166001145b61078d5760405162461bcd60e51b815260040161078490611d7a565b60405180910390fd5b6000805460ff1916600117905580156107b0576000805461ff0019166101001790555b60016107bc8482611e16565b5060026107c98382611e16565b508015610614576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b600061083e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000818152601660205260408120600101546001600160a01b0316806104ce5760405163eab95e3b60e01b815260040160405180910390fd5b6040518060600160405280602d8152602001612220602d913981565b60006108a58484846110d9565b949350505050565b60408051608081018252600080825260208201819052918101829052606081019190915250600090815260166020908152604091829020825160808101845281546001600160a01b039081168252600183015481169382019390935260029091015491821692810192909252600160a01b900463ffffffff16606082015290565b6060600280546104e390611d23565b600054610100900460ff161580801561095d5750600054600160ff909116105b806109775750303b158015610977575060005460ff166001145b6109935760405162461bcd60e51b815260040161078490611d7a565b6000805460ff1916600117905580156109b6576000805461ff0019166101001790555b8015610654576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b61072a338383611125565b610a143383610df8565b610a31576040516312a8eb0360e11b815260040160405180910390fd5b610a3d848484846111c4565b50505050565b60606104ce8260006111cf565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ac75760405163d367b64f60e01b815260040160405180910390fd5b6000610ad48484846110d9565b6000818152601660205260409020600101549091506001600160a01b031615610a3d57610b0081610e6f565b604051630179c42b60e51b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632f388560906024015b600060405180830381600087803b158015610b6357600080fd5b505af1158015610b77573d6000803e3d6000fd5b5050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bca5760405163d367b64f60e01b815260040160405180910390fd5b6000610bd78484846110d9565b6000818152601660205260409020600101549091506001600160a01b031615610a3d57604051630852cd8d60e31b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b158015610c5c57600080fd5b505af1158015610c70573d6000803e3d6000fd5b50505050610a3d8161133b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cc65760405163d367b64f60e01b815260040160405180910390fd5b6000610cd38484846110d9565b6000818152601660205260409020600101549091506001600160a01b0316610a3d57610d01848484846113ca565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401610b49565b6000818152601660205260409020600101546001600160a01b03166106545760405163eab95e3b60e01b815260040160405180910390fd5b600081815260036020908152604080832080546001600160a01b0319166001600160a01b038781169182179092556016909352818420600101549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b600080610e0483610843565b9050806001600160a01b0316846001600160a01b03161480610e2b5750610e2b8185610a50565b806108a55750836001600160a01b0316610e4484610566565b6001600160a01b031614949350505050565b60405163553a3f6560e11b815260040160405180910390fd5b6040518181527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7906020016109f4565b6000610ec97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603610f1f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401610784565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f819190611ed6565b7f87e44dce6a0d65a5ccf441783661f5727c2624b1f0088bbe957ce2c95406b78414610ffb5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401610784565b6001600160a01b03811630036110535760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401610784565b61107b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f87e44dce6a0d65a5ccf441783661f5727c2624b1f0088bbe957ce2c95406b784604080519182526001600160a01b0384166020830152016109f4565b60408051466020808301919091526001600160a01b03958616828401529385166060820152919093166080808301919091528351808303909101815260a0909101909252815191012090565b816001600160a01b0316836001600160a01b0316036111575760405163d3c7732960e01b815260040160405180910390fd5b6001600160a01b03838116600081815260046020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a3d848484610e56565b606060006111dc846108ad565b805160208201516040808401519051631cd43d1160e31b81526001600160a01b0380851660048301529283166024820152908216604482015292935090916000917f0000000000000000000000000000000000000000000000000000000000000000169063e6a1e88890606401608060405180830381865afa158015611266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128a9190611eef565b50509150506040518060600160405280602d8152602001612220602d91396112bf826bffffffffffffffffffffffff166114f9565b866112e657604051806040016040528060048152602001637472756560e01b815250611305565b6040518060400160405280600581526020016466616c736560d81b8152505b61130e8961158c565b6040516020016113219493929190611f4f565b604051602081830303815290604052935050505092915050565b60008181526016602081815260408084206001810180546003855283872080546001600160a01b0319908116909155959094528154851682558054909416909355600290920180546001600160c01b031916905590516001600160a01b0390911691839183907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0383166113e0576113e0611fd7565b816001600160a01b0316836001600160a01b03160361140157611401611fd7565b6000818152601660205260409020600101546001600160a01b03161561142957611429611fd7565b604080516080810182526001600160a01b038087168252858116602080840182815287841685870190815263ffffffff4281166060880190815260008a81526016909552888520975188549088166001600160a01b0319918216178955935160018901805491891691909516179093559051600290960180549251909116600160a01b026001600160c01b03199092169590941694909417939093179091559151839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a450505050565b6060600061150683611707565b600101905060008167ffffffffffffffff81111561152657611526611abb565b6040519080825280601f01601f191660200182016040528015611550576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461155a57509392505050565b60606000611599836108ad565b90506115b381600001516001600160a01b031660146117df565b6115bc466114f9565b82600001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156115fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116269190810190611fed565b61163e84602001516001600160a01b031660146117df565b61165685604001516001600160a01b031660146117df565b6116c786600001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf9190612064565b60ff166114f9565b6116da876060015163ffffffff166114f9565b6040516020016116f09796959493929190612087565b604051602081830303815290604052915050919050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106117465772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611772576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061179057662386f26fc10000830492506010015b6305f5e10083106117a8576305f5e100830492506008015b61271083106117bc57612710830492506004015b606483106117ce576064830492506002015b600a83106104ce5760010192915050565b606060006117ee8360026121c8565b6117f99060026121df565b67ffffffffffffffff81111561181157611811611abb565b6040519080825280601f01601f19166020018201604052801561183b576020820181803683370190505b509050600360fc1b81600081518110611856576118566121f2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611885576118856121f2565b60200101906001600160f81b031916908160001a90535060006118a98460026121c8565b6118b49060016121df565b90505b600181111561192c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106118e8576118e86121f2565b1a60f81b8282815181106118fe576118fe6121f2565b60200101906001600160f81b031916908160001a90535060049490941c9361192581612208565b90506118b7565b50831561197b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610784565b9392505050565b60006020828403121561199457600080fd5b81356001600160e01b03198116811461197b57600080fd5b60005b838110156119c75781810151838201526020016119af565b50506000910152565b60208152600082518060208401526119ef8160408501602087016119ac565b601f01601f19169190910160400192915050565b600060208284031215611a1557600080fd5b5035919050565b6001600160a01b038116811461065457600080fd5b60008060408385031215611a4457600080fd5b8235611a4f81611a1c565b946020939093013593505050565b600080600060608486031215611a7257600080fd5b8335611a7d81611a1c565b92506020840135611a8d81611a1c565b929592945050506040919091013590565b600060208284031215611ab057600080fd5b813561197b81611a1c565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611afa57611afa611abb565b604052919050565b600067ffffffffffffffff821115611b1c57611b1c611abb565b50601f01601f191660200190565b6000611b3d611b3884611b02565b611ad1565b9050828152838383011115611b5157600080fd5b828260208301376000602084830101529392505050565b600082601f830112611b7957600080fd5b61197b83833560208501611b2a565b60008060408385031215611b9b57600080fd5b823567ffffffffffffffff80821115611bb357600080fd5b611bbf86838701611b68565b93506020850135915080821115611bd557600080fd5b50611be285828601611b68565b9150509250929050565b600080600060608486031215611c0157600080fd5b8335611c0c81611a1c565b92506020840135611c1c81611a1c565b91506040840135611c2c81611a1c565b809150509250925092565b60008060408385031215611c4a57600080fd5b8235611c5581611a1c565b915060208301358015158114611c6a57600080fd5b809150509250929050565b60008060008060808587031215611c8b57600080fd5b8435611c9681611a1c565b93506020850135611ca681611a1c565b925060408501359150606085013567ffffffffffffffff811115611cc957600080fd5b8501601f81018713611cda57600080fd5b611ce987823560208401611b2a565b91505092959194509250565b60008060408385031215611d0857600080fd5b8235611d1381611a1c565b91506020830135611c6a81611a1c565b600181811c90821680611d3757607f821691505b602082108103611d5757634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611d6f57600080fd5b815161197b81611a1c565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b601f82111561061457600081815260208120601f850160051c81016020861015611def5750805b601f850160051c820191505b81811015611e0e57828155600101611dfb565b505050505050565b815167ffffffffffffffff811115611e3057611e30611abb565b611e4481611e3e8454611d23565b84611dc8565b602080601f831160018114611e795760008415611e615750858301515b600019600386901b1c1916600185901b178555611e0e565b600085815260208120601f198616915b82811015611ea857888601518255948401946001909101908401611e89565b5085821015611ec65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215611ee857600080fd5b5051919050565b60008060008060808587031215611f0557600080fd5b84519350602085015180600b0b8114611f1d57600080fd5b6040860151606090960151949790965092505050565b60008151611f458185602086016119ac565b9290920192915050565b60008551611f61818460208a016119ac565b693f666c6f77526174653d60b01b9083019081528551611f8881600a840160208a016119ac565b69266f7574676f696e673d60b01b600a92909101918201528451611fb38160148401602089016119ac565b8451910190611fc98160148401602088016119ac565b016014019695505050505050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215611fff57600080fd5b815167ffffffffffffffff81111561201657600080fd5b8201601f8101841361202757600080fd5b8051612035611b3882611b02565b81815285602083850101111561204a57600080fd5b61205b8260208301602086016119ac565b95945050505050565b60006020828403121561207657600080fd5b815160ff8116811461197b57600080fd5b6e26746f6b656e5f616464726573733d60881b8152600088516120b181600f850160208d016119ac565b6926636861696e5f69643d60b01b600f9184019182015288516120db816019840160208d016119ac565b6d26746f6b656e5f73796d626f6c3d60901b60199290910191820152875161210a816027840160208c016119ac565b672673656e6465723d60c01b60279290910191820152865161213381602f840160208b016119ac565b692672656365697665723d60b01b602f92909101918201526121a461219e612186612180612164603986018b611f33565b6f26746f6b656e5f646563696d616c733d60801b815260100190565b88611f33565b6b2673746172745f646174653d60a01b8152600c0190565b85611f33565b9a9950505050505050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104ce576104ce6121b2565b808201808211156104ce576104ce6121b2565b634e487b7160e01b600052603260045260246000fd5b600081612217576122176121b2565b50600019019056fe68747470733a2f2f6e66742e7375706572666c7569642e66696e616e63652f6366612f76322f6765746d657461a26469706673582212204d14ff5d6ed3bda0c37ca0777977e8207e4df1b1cc9e4217aeeda3147f6a3cdd64736f6c63430008130033",
741
741
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636352211e116100f9578063a22cb46511610097578063e985e9c511610071578063e985e9c514610436578063eb54a7ca14610449578063ef1f02371461045c578063f7e3d9831461046f57600080fd5b8063a22cb465146103fd578063b88d4fde14610410578063c87b56dd1461042357600080fd5b806389f71d2d116100d357806389f71d2d146103815780638d47859e1461039457806395d89b41146103ed5780639903ad38146103f557600080fd5b80636352211e146103525780636c0360eb1461036557806370a082311461036d57600080fd5b806342842e0e116101665780634c5c0c85116101405780634c5c0c85146102e05780634cd88b761461030757806350d75d251461031a57806352d1902d1461032257600080fd5b806342842e0e1461029357806346951954146102a657806349f289dc146102b957600080fd5b8063095ea7b3116101a2578063095ea7b314610231578063181561011461024657806323b872dd1461026d5780632f3885601461028057600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063081812fc14610206575b600080fd5b6101dc6101d7366004611982565b610482565b60405190151581526020015b60405180910390f35b6101f96104d4565b6040516101e891906119d0565b610219610214366004611a03565b610566565b6040516001600160a01b0390911681526020016101e8565b61024461023f366004611a31565b61058d565b005b6102197f000000000000000000000000000000000000000000000000000000000000000081565b61024461027b366004611a5d565b610619565b61024461028e366004611a03565b61064b565b6102446102a1366004611a5d565b610657565b6102446102b4366004611a9e565b610672565b6102197f000000000000000000000000000000000000000000000000000000000000000081565b6102197f000000000000000000000000000000000000000000000000000000000000000081565b610244610315366004611b88565b61072e565b610219610814565b7f87e44dce6a0d65a5ccf441783661f5727c2624b1f0088bbe957ce2c95406b7845b6040519081526020016101e8565b610219610360366004611a03565b610843565b6101f961087c565b61034461037b366004611a9e565b50600190565b61034461038f366004611bec565b610898565b6103a76103a2366004611a03565b6108ad565b6040805182516001600160a01b03908116825260208085015182169083015283830151169181019190915260609182015163ffffffff16918101919091526080016101e8565b6101f961092e565b61024461093d565b61024461040b366004611c37565b6109ff565b61024461041e366004611c75565b610a0a565b6101f9610431366004611a03565b610a43565b6101dc610444366004611cf5565b610a50565b610244610457366004611bec565b610a7e565b61024461046a366004611bec565b610b81565b61024461047d366004611bec565b610c7d565b60006301ffc9a760e01b6001600160e01b0319831614806104b357506380ac58cd60e01b6001600160e01b03198316145b806104ce5750635b5e139f60e01b6001600160e01b03198316145b92915050565b6060600180546104e390611d23565b80601f016020809104026020016040519081016040528092919081815260200182805461050f90611d23565b801561055c5780601f106105315761010080835404028352916020019161055c565b820191906000526020600020905b81548152906001019060200180831161053f57829003601f168201915b5050505050905090565b600061057182610d56565b506000908152600360205260409020546001600160a01b031690565b600061059882610843565b9050806001600160a01b0316836001600160a01b0316036105cc5760405163e4790b2560e01b815260040160405180910390fd5b336001600160a01b038216148015906105ec57506105ea8133610a50565b155b1561060a5760405163519a92c160e11b815260040160405180910390fd5b6106148383610d8e565b505050565b6106233382610df8565b610640576040516312a8eb0360e11b815260040160405180910390fd5b610614838383610e56565b61065481610e6f565b50565b61061483838360405180602001604052806000815250610a0a565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663731aed6e6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f69190611d5d565b9050336001600160a01b038216146107215760405163ebb7505b60e01b815260040160405180910390fd5b61072a82610e9f565b5050565b600054610100900460ff161580801561074e5750600054600160ff909116105b806107685750303b158015610768575060005460ff166001145b61078d5760405162461bcd60e51b815260040161078490611d7a565b60405180910390fd5b6000805460ff1916600117905580156107b0576000805461ff0019166101001790555b60016107bc8482611e16565b5060026107c98382611e16565b508015610614576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b600061083e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905090565b6000818152601660205260408120600101546001600160a01b0316806104ce5760405163eab95e3b60e01b815260040160405180910390fd5b6040518060600160405280602d8152602001612220602d913981565b60006108a58484846110d9565b949350505050565b60408051608081018252600080825260208201819052918101829052606081019190915250600090815260166020908152604091829020825160808101845281546001600160a01b039081168252600183015481169382019390935260029091015491821692810192909252600160a01b900463ffffffff16606082015290565b6060600280546104e390611d23565b600054610100900460ff161580801561095d5750600054600160ff909116105b806109775750303b158015610977575060005460ff166001145b6109935760405162461bcd60e51b815260040161078490611d7a565b6000805460ff1916600117905580156109b6576000805461ff0019166101001790555b8015610654576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b61072a338383611125565b610a143383610df8565b610a31576040516312a8eb0360e11b815260040160405180910390fd5b610a3d848484846111c4565b50505050565b60606104ce8260006111cf565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ac75760405163d367b64f60e01b815260040160405180910390fd5b6000610ad48484846110d9565b6000818152601660205260409020600101549091506001600160a01b031615610a3d57610b0081610e6f565b604051630179c42b60e51b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632f388560906024015b600060405180830381600087803b158015610b6357600080fd5b505af1158015610b77573d6000803e3d6000fd5b5050505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bca5760405163d367b64f60e01b815260040160405180910390fd5b6000610bd78484846110d9565b6000818152601660205260409020600101549091506001600160a01b031615610a3d57604051630852cd8d60e31b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906342966c6890602401600060405180830381600087803b158015610c5c57600080fd5b505af1158015610c70573d6000803e3d6000fd5b50505050610a3d8161133b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cc65760405163d367b64f60e01b815260040160405180910390fd5b6000610cd38484846110d9565b6000818152601660205260409020600101549091506001600160a01b0316610a3d57610d01848484846113ca565b6040516340c10f1960e01b81526001600160a01b038381166004830152602482018390527f000000000000000000000000000000000000000000000000000000000000000016906340c10f1990604401610b49565b6000818152601660205260409020600101546001600160a01b03166106545760405163eab95e3b60e01b815260040160405180910390fd5b600081815260036020908152604080832080546001600160a01b0319166001600160a01b038781169182179092556016909352818420600101549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b600080610e0483610843565b9050806001600160a01b0316846001600160a01b03161480610e2b5750610e2b8185610a50565b806108a55750836001600160a01b0316610e4484610566565b6001600160a01b031614949350505050565b60405163553a3f6560e11b815260040160405180910390fd5b6040518181527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7906020016109f4565b6000610ec97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031603610f1f5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401610784565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f819190611ed6565b7f87e44dce6a0d65a5ccf441783661f5727c2624b1f0088bbe957ce2c95406b78414610ffb5760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401610784565b6001600160a01b03811630036110535760405162461bcd60e51b815260206004820152601960248201527f5555505350726f786961626c653a2070726f7879206c6f6f70000000000000006044820152606401610784565b61107b817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc7f87e44dce6a0d65a5ccf441783661f5727c2624b1f0088bbe957ce2c95406b784604080519182526001600160a01b0384166020830152016109f4565b60408051466020808301919091526001600160a01b03958616828401529385166060820152919093166080808301919091528351808303909101815260a0909101909252815191012090565b816001600160a01b0316836001600160a01b0316036111575760405163d3c7732960e01b815260040160405180910390fd5b6001600160a01b03838116600081815260046020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a3d848484610e56565b606060006111dc846108ad565b805160208201516040808401519051631cd43d1160e31b81526001600160a01b0380851660048301529283166024820152908216604482015292935090916000917f0000000000000000000000000000000000000000000000000000000000000000169063e6a1e88890606401608060405180830381865afa158015611266573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128a9190611eef565b50509150506040518060600160405280602d8152602001612220602d91396112bf826bffffffffffffffffffffffff166114f9565b866112e657604051806040016040528060048152602001637472756560e01b815250611305565b6040518060400160405280600581526020016466616c736560d81b8152505b61130e8961158c565b6040516020016113219493929190611f4f565b604051602081830303815290604052935050505092915050565b60008181526016602081815260408084206001810180546003855283872080546001600160a01b0319908116909155959094528154851682558054909416909355600290920180546001600160c01b031916905590516001600160a01b0390911691839183907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6001600160a01b0383166113e0576113e0611fd7565b816001600160a01b0316836001600160a01b03160361140157611401611fd7565b6000818152601660205260409020600101546001600160a01b03161561142957611429611fd7565b604080516080810182526001600160a01b038087168252858116602080840182815287841685870190815263ffffffff4281166060880190815260008a81526016909552888520975188549088166001600160a01b0319918216178955935160018901805491891691909516179093559051600290960180549251909116600160a01b026001600160c01b03199092169590941694909417939093179091559151839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a450505050565b6060600061150683611707565b600101905060008167ffffffffffffffff81111561152657611526611abb565b6040519080825280601f01601f191660200182016040528015611550576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461155a57509392505050565b60606000611599836108ad565b90506115b381600001516001600160a01b031660146117df565b6115bc466114f9565b82600001516001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156115fe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526116269190810190611fed565b61163e84602001516001600160a01b031660146117df565b61165685604001516001600160a01b031660146117df565b6116c786600001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561169b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bf9190612064565b60ff166114f9565b6116da876060015163ffffffff166114f9565b6040516020016116f09796959493929190612087565b604051602081830303815290604052915050919050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106117465772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611772576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061179057662386f26fc10000830492506010015b6305f5e10083106117a8576305f5e100830492506008015b61271083106117bc57612710830492506004015b606483106117ce576064830492506002015b600a83106104ce5760010192915050565b606060006117ee8360026121c8565b6117f99060026121df565b67ffffffffffffffff81111561181157611811611abb565b6040519080825280601f01601f19166020018201604052801561183b576020820181803683370190505b509050600360fc1b81600081518110611856576118566121f2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611885576118856121f2565b60200101906001600160f81b031916908160001a90535060006118a98460026121c8565b6118b49060016121df565b90505b600181111561192c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106118e8576118e86121f2565b1a60f81b8282815181106118fe576118fe6121f2565b60200101906001600160f81b031916908160001a90535060049490941c9361192581612208565b90506118b7565b50831561197b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610784565b9392505050565b60006020828403121561199457600080fd5b81356001600160e01b03198116811461197b57600080fd5b60005b838110156119c75781810151838201526020016119af565b50506000910152565b60208152600082518060208401526119ef8160408501602087016119ac565b601f01601f19169190910160400192915050565b600060208284031215611a1557600080fd5b5035919050565b6001600160a01b038116811461065457600080fd5b60008060408385031215611a4457600080fd5b8235611a4f81611a1c565b946020939093013593505050565b600080600060608486031215611a7257600080fd5b8335611a7d81611a1c565b92506020840135611a8d81611a1c565b929592945050506040919091013590565b600060208284031215611ab057600080fd5b813561197b81611a1c565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611afa57611afa611abb565b604052919050565b600067ffffffffffffffff821115611b1c57611b1c611abb565b50601f01601f191660200190565b6000611b3d611b3884611b02565b611ad1565b9050828152838383011115611b5157600080fd5b828260208301376000602084830101529392505050565b600082601f830112611b7957600080fd5b61197b83833560208501611b2a565b60008060408385031215611b9b57600080fd5b823567ffffffffffffffff80821115611bb357600080fd5b611bbf86838701611b68565b93506020850135915080821115611bd557600080fd5b50611be285828601611b68565b9150509250929050565b600080600060608486031215611c0157600080fd5b8335611c0c81611a1c565b92506020840135611c1c81611a1c565b91506040840135611c2c81611a1c565b809150509250925092565b60008060408385031215611c4a57600080fd5b8235611c5581611a1c565b915060208301358015158114611c6a57600080fd5b809150509250929050565b60008060008060808587031215611c8b57600080fd5b8435611c9681611a1c565b93506020850135611ca681611a1c565b925060408501359150606085013567ffffffffffffffff811115611cc957600080fd5b8501601f81018713611cda57600080fd5b611ce987823560208401611b2a565b91505092959194509250565b60008060408385031215611d0857600080fd5b8235611d1381611a1c565b91506020830135611c6a81611a1c565b600181811c90821680611d3757607f821691505b602082108103611d5757634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215611d6f57600080fd5b815161197b81611a1c565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b601f82111561061457600081815260208120601f850160051c81016020861015611def5750805b601f850160051c820191505b81811015611e0e57828155600101611dfb565b505050505050565b815167ffffffffffffffff811115611e3057611e30611abb565b611e4481611e3e8454611d23565b84611dc8565b602080601f831160018114611e795760008415611e615750858301515b600019600386901b1c1916600185901b178555611e0e565b600085815260208120601f198616915b82811015611ea857888601518255948401946001909101908401611e89565b5085821015611ec65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215611ee857600080fd5b5051919050565b60008060008060808587031215611f0557600080fd5b84519350602085015180600b0b8114611f1d57600080fd5b6040860151606090960151949790965092505050565b60008151611f458185602086016119ac565b9290920192915050565b60008551611f61818460208a016119ac565b693f666c6f77526174653d60b01b9083019081528551611f8881600a840160208a016119ac565b69266f7574676f696e673d60b01b600a92909101918201528451611fb38160148401602089016119ac565b8451910190611fc98160148401602088016119ac565b016014019695505050505050565b634e487b7160e01b600052600160045260246000fd5b600060208284031215611fff57600080fd5b815167ffffffffffffffff81111561201657600080fd5b8201601f8101841361202757600080fd5b8051612035611b3882611b02565b81815285602083850101111561204a57600080fd5b61205b8260208301602086016119ac565b95945050505050565b60006020828403121561207657600080fd5b815160ff8116811461197b57600080fd5b6e26746f6b656e5f616464726573733d60881b8152600088516120b181600f850160208d016119ac565b6926636861696e5f69643d60b01b600f9184019182015288516120db816019840160208d016119ac565b6d26746f6b656e5f73796d626f6c3d60901b60199290910191820152875161210a816027840160208c016119ac565b672673656e6465723d60c01b60279290910191820152865161213381602f840160208b016119ac565b692672656365697665723d60b01b602f92909101918201526121a461219e612186612180612164603986018b611f33565b6f26746f6b656e5f646563696d616c733d60801b815260100190565b88611f33565b6b2673746172745f646174653d60a01b8152600c0190565b85611f33565b9a9950505050505050505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176104ce576104ce6121b2565b808201808211156104ce576104ce6121b2565b634e487b7160e01b600052603260045260246000fd5b600081612217576122176121b2565b50600019019056fe68747470733a2f2f6e66742e7375706572666c7569642e66696e616e63652f6366612f76322f6765746d657461a26469706673582212204d14ff5d6ed3bda0c37ca0777977e8207e4df1b1cc9e4217aeeda3147f6a3cdd64736f6c63430008130033",
742
742
  "immutableReferences": {
743
- "38921": [
743
+ "38925": [
744
744
  {
745
745
  "length": 32,
746
746
  "start": 741
@@ -758,7 +758,7 @@
758
758
  "start": 3367
759
759
  }
760
760
  ],
761
- "39312": [
761
+ "39316": [
762
762
  {
763
763
  "length": 32,
764
764
  "start": 587
@@ -780,7 +780,7 @@
780
780
  "start": 4639
781
781
  }
782
782
  ],
783
- "39316": [
783
+ "39320": [
784
784
  {
785
785
  "length": 32,
786
786
  "start": 702
@@ -1177,7 +1177,7 @@
1177
1177
  }
1178
1178
  ]
1179
1179
  },
1180
- "name": "abi_decode_tuple_t_contract$_ISuperfluid_$25048t_contract$_IConstantInflowNFT_$23643_fromMemory",
1180
+ "name": "abi_decode_tuple_t_contract$_ISuperfluid_$25051t_contract$_IConstantInflowNFT_$23646_fromMemory",
1181
1181
  "nodeType": "YulFunctionDefinition",
1182
1182
  "parameters": [
1183
1183
  {
@@ -1450,7 +1450,7 @@
1450
1450
  }
1451
1451
  ]
1452
1452
  },
1453
- "name": "abi_decode_tuple_t_contract$_ISuperAgreement_$23806_fromMemory",
1453
+ "name": "abi_decode_tuple_t_contract$_ISuperAgreement_$23809_fromMemory",
1454
1454
  "nodeType": "YulFunctionDefinition",
1455
1455
  "parameters": [
1456
1456
  {
@@ -1478,7 +1478,7 @@
1478
1478
  }
1479
1479
  ]
1480
1480
  },
1481
- "contents": "{\n { }\n function validator_revert_contract_ISuperfluid(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_ISuperfluid_$25048t_contract$_IConstantInflowNFT_$23643_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_contract_ISuperfluid(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_contract_ISuperfluid(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_contract$_ISuperAgreement_$23806_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_contract_ISuperfluid(value)\n value0 := value\n }\n}",
1481
+ "contents": "{\n { }\n function validator_revert_contract_ISuperfluid(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_contract$_ISuperfluid_$25051t_contract$_IConstantInflowNFT_$23646_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_contract_ISuperfluid(value)\n value0 := value\n let value_1 := mload(add(headStart, 32))\n validator_revert_contract_ISuperfluid(value_1)\n value1 := value_1\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_contract$_ISuperAgreement_$23809_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_contract_ISuperfluid(value)\n value0 := value\n }\n}",
1482
1482
  "id": 124,
1483
1483
  "language": "Yul",
1484
1484
  "name": "#utility.yul"
@@ -3176,7 +3176,7 @@
3176
3176
  }
3177
3177
  ]
3178
3178
  },
3179
- "name": "abi_encode_tuple_t_contract$_IConstantFlowAgreementV1_$22729__to_t_address__fromStack_reversed",
3179
+ "name": "abi_encode_tuple_t_contract$_IConstantFlowAgreementV1_$22732__to_t_address__fromStack_reversed",
3180
3180
  "nodeType": "YulFunctionDefinition",
3181
3181
  "parameters": [
3182
3182
  {
@@ -3811,7 +3811,7 @@
3811
3811
  }
3812
3812
  ]
3813
3813
  },
3814
- "name": "abi_encode_tuple_t_contract$_ISuperfluid_$25048__to_t_address__fromStack_reversed",
3814
+ "name": "abi_encode_tuple_t_contract$_ISuperfluid_$25051__to_t_address__fromStack_reversed",
3815
3815
  "nodeType": "YulFunctionDefinition",
3816
3816
  "parameters": [
3817
3817
  {
@@ -3957,7 +3957,7 @@
3957
3957
  }
3958
3958
  ]
3959
3959
  },
3960
- "name": "abi_encode_tuple_t_contract$_IConstantInflowNFT_$23643__to_t_address__fromStack_reversed",
3960
+ "name": "abi_encode_tuple_t_contract$_IConstantInflowNFT_$23646__to_t_address__fromStack_reversed",
3961
3961
  "nodeType": "YulFunctionDefinition",
3962
3962
  "parameters": [
3963
3963
  {
@@ -6346,7 +6346,7 @@
6346
6346
  }
6347
6347
  ]
6348
6348
  },
6349
- "name": "abi_encode_tuple_t_struct$_FlowNFTData_$23714_memory_ptr__to_t_struct$_FlowNFTData_$23714_memory_ptr__fromStack_reversed",
6349
+ "name": "abi_encode_tuple_t_struct$_FlowNFTData_$23717_memory_ptr__to_t_struct$_FlowNFTData_$23717_memory_ptr__fromStack_reversed",
6350
6350
  "nodeType": "YulFunctionDefinition",
6351
6351
  "parameters": [
6352
6352
  {
@@ -7900,7 +7900,7 @@
7900
7900
  }
7901
7901
  ]
7902
7902
  },
7903
- "name": "abi_decode_tuple_t_contract$_ISuperfluidToken_$25463t_addresst_address",
7903
+ "name": "abi_decode_tuple_t_contract$_ISuperfluidToken_$25466t_addresst_address",
7904
7904
  "nodeType": "YulFunctionDefinition",
7905
7905
  "parameters": [
7906
7906
  {
@@ -8397,7 +8397,7 @@
8397
8397
  }
8398
8398
  ]
8399
8399
  },
8400
- "name": "abi_decode_tuple_t_contract$_ISuperTokenFactory_$24524_fromMemory",
8400
+ "name": "abi_decode_tuple_t_contract$_ISuperTokenFactory_$24527_fromMemory",
8401
8401
  "nodeType": "YulFunctionDefinition",
8402
8402
  "parameters": [
8403
8403
  {
@@ -12080,7 +12080,7 @@
12080
12080
  }
12081
12081
  ]
12082
12082
  },
12083
- "name": "abi_encode_tuple_t_contract$_ISuperToken_$24394_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed",
12083
+ "name": "abi_encode_tuple_t_contract$_ISuperToken_$24397_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed",
12084
12084
  "nodeType": "YulFunctionDefinition",
12085
12085
  "parameters": [
12086
12086
  {
@@ -16225,7 +16225,7 @@
16225
16225
  }
16226
16226
  ]
16227
16227
  },
16228
- "contents": "{\n { }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IConstantFlowAgreementV1_$22729__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_contract$_ISuperfluid_$25048__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IConstantInflowNFT_$23643__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_available_length_string(src, length, end) -> array\n {\n array := allocate_memory(array_allocation_size_string(length))\n mstore(array, length)\n if gt(add(src, length), end) { revert(0, 0) }\n calldatacopy(add(array, 0x20), src, length)\n mstore(add(add(array, length), 0x20), 0)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n }\n function abi_encode_tuple_t_struct$_FlowNFTData_$23714_memory_ptr__to_t_struct$_FlowNFTData_$23714_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(mload(value0), _1))\n mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), _1))\n mstore(add(headStart, 0x40), and(mload(add(value0, 0x40)), _1))\n mstore(add(headStart, 0x60), and(mload(add(value0, 0x60)), 0xffffffff))\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value1 := value_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_contract$_ISuperfluidToken_$25463t_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_decode_tuple_t_contract$_ISuperTokenFactory_$24524_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_stringliteral_befd5f2ffca520b9208eba0ffa41bf9e0aed29a8580655fdb778030efa521bea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"UUPSProxiable: not upgradable\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_stringliteral_0c74ad657035ec53451093745d5caa5909a42dace836130f97873b36755af913__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"UUPSProxiable: not compatible lo\")\n mstore(add(headStart, 96), \"gic\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7cebf0bf1547141b7b7f87cc08cf4eb6b11676b9b00928b28fdc7e005edd97c0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"UUPSProxiable: proxy loop\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_t_address_t_address__to_t_uint256_t_address_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_contract$_ISuperToken_$24394_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_decode_tuple_t_uint256t_int96t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := mload(headStart)\n let value := mload(add(headStart, 32))\n if iszero(eq(value, signextend(11, value))) { revert(0, 0) }\n value1 := value\n value2 := mload(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_6be3bffc8e156e10c68478215346cd37bdb43a0a035bcfae06acf193852f2a2c_t_string_memory_ptr_t_stringliteral_ae798cf7ec34ee49f7e0cd1235c8f2569de1d54f520de0a75ccdb5df54ca39ea_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, \"?flowRate=\")\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(end_1, 10), length_1)\n let _1 := add(end_1, length_1)\n mstore(add(_1, 10), \"&outgoing=\")\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), add(_1, 20), length_2)\n let _2 := add(_1, length_2)\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), add(_2, 20), length_3)\n end := add(add(_2, length_3), 20)\n }\n function panic_error_0x01()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_string(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_stringliteral_c1bf(pos) -> end\n {\n mstore(pos, \"&token_decimals=\")\n end := add(pos, 16)\n }\n function abi_encode_stringliteral_75f3(pos) -> end\n {\n mstore(pos, \"&start_date=\")\n end := add(pos, 12)\n }\n function abi_encode_tuple_packed_t_stringliteral_4117b9934a95d0644e7342f637868e6a288c6a26fedd109ed3f49114379289f1_t_string_memory_ptr_t_stringliteral_01847fa300add37827ba70c89a70b3b5606b0b8dafd1b83974841385bae126fd_t_string_memory_ptr_t_stringliteral_377434ce9054b30a89006449a2b4548d3a976c2360bb0db5449287b18659a722_t_string_memory_ptr_t_stringliteral_863ed937574d7da9b7b8e7d15377a1b5b2ba32c83650007709916e177e891d43_t_string_memory_ptr_t_stringliteral_2178213b326e57f78a76acf802eff07532fd4852a28b95162939ee7085ea509a_t_string_memory_ptr_t_stringliteral_c1bf9fbafe1881f2f498b720fa9e1fddaf6b58a207e72dc2e9e7b47336fe3494_t_string_memory_ptr_t_stringliteral_75f3bcb45e0d7da7a39095e1c5e60de0548890ebcacd7072da1d6d7274046b0a_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value6, value5, value4, value3, value2, value1, value0) -> end\n {\n mstore(pos, \"&token_address=\")\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), add(pos, 15), length)\n let _1 := add(pos, length)\n mstore(add(_1, 15), \"&chain_id=\")\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(_1, 25), length_1)\n let _2 := add(_1, length_1)\n mstore(add(_2, 25), \"&token_symbol=\")\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), add(_2, 39), length_2)\n let _3 := add(_2, length_2)\n mstore(add(_3, 39), \"&sender=\")\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), add(_3, 47), length_3)\n let _4 := add(_3, length_3)\n mstore(add(_4, 47), \"&receiver=\")\n end := abi_encode_string(value6, abi_encode_stringliteral_75f3(abi_encode_string(value5, abi_encode_stringliteral_c1bf(abi_encode_string(value4, add(_4, 57))))))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n}",
16228
+ "contents": "{\n { }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_contract$_IConstantFlowAgreementV1_$22732__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_contract$_ISuperfluid_$25051__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_contract$_IConstantInflowNFT_$23646__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_string(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_available_length_string(src, length, end) -> array\n {\n array := allocate_memory(array_allocation_size_string(length))\n mstore(array, length)\n if gt(add(src, length), end) { revert(0, 0) }\n calldatacopy(add(array, 0x20), src, length)\n mstore(add(add(array, length), 0x20), 0)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n array := abi_decode_available_length_string(add(offset, 0x20), calldataload(offset), end)\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n }\n function abi_encode_tuple_t_struct$_FlowNFTData_$23717_memory_ptr__to_t_struct$_FlowNFTData_$23717_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 128)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(mload(value0), _1))\n mstore(add(headStart, 0x20), and(mload(add(value0, 0x20)), _1))\n mstore(add(headStart, 0x40), and(mload(add(value0, 0x40)), _1))\n mstore(add(headStart, 0x60), and(mload(add(value0, 0x60)), 0xffffffff))\n }\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n if iszero(eq(value_1, iszero(iszero(value_1)))) { revert(0, 0) }\n value1 := value_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n value3 := abi_decode_available_length_string(add(_1, 32), calldataload(_1), dataEnd)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n }\n function abi_decode_tuple_t_contract$_ISuperfluidToken_$25466t_addresst_address(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let value_2 := calldataload(add(headStart, 64))\n validator_revert_address(value_2)\n value2 := value_2\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_decode_tuple_t_contract$_ISuperTokenFactory_$24527_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 46)\n mstore(add(headStart, 64), \"Initializable: contract is alrea\")\n mstore(add(headStart, 96), \"dy initialized\")\n tail := add(headStart, 128)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_stringliteral_befd5f2ffca520b9208eba0ffa41bf9e0aed29a8580655fdb778030efa521bea__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"UUPSProxiable: not upgradable\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_stringliteral_0c74ad657035ec53451093745d5caa5909a42dace836130f97873b36755af913__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"UUPSProxiable: not compatible lo\")\n mstore(add(headStart, 96), \"gic\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_7cebf0bf1547141b7b7f87cc08cf4eb6b11676b9b00928b28fdc7e005edd97c0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"UUPSProxiable: proxy loop\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes32_t_address__to_t_bytes32_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_t_address_t_address__to_t_uint256_t_address_t_address_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n }\n function abi_encode_tuple_t_contract$_ISuperToken_$24397_t_address_t_address__to_t_address_t_address_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), and(value2, _1))\n }\n function abi_decode_tuple_t_uint256t_int96t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := mload(headStart)\n let value := mload(add(headStart, 32))\n if iszero(eq(value, signextend(11, value))) { revert(0, 0) }\n value1 := value\n value2 := mload(add(headStart, 64))\n value3 := mload(add(headStart, 96))\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr_t_stringliteral_6be3bffc8e156e10c68478215346cd37bdb43a0a035bcfae06acf193852f2a2c_t_string_memory_ptr_t_stringliteral_ae798cf7ec34ee49f7e0cd1235c8f2569de1d54f520de0a75ccdb5df54ca39ea_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n let end_1 := add(pos, length)\n mstore(end_1, \"?flowRate=\")\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(end_1, 10), length_1)\n let _1 := add(end_1, length_1)\n mstore(add(_1, 10), \"&outgoing=\")\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), add(_1, 20), length_2)\n let _2 := add(_1, length_2)\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), add(_2, 20), length_3)\n end := add(add(_2, length_3), 20)\n }\n function panic_error_0x01()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_string(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_stringliteral_c1bf(pos) -> end\n {\n mstore(pos, \"&token_decimals=\")\n end := add(pos, 16)\n }\n function abi_encode_stringliteral_75f3(pos) -> end\n {\n mstore(pos, \"&start_date=\")\n end := add(pos, 12)\n }\n function abi_encode_tuple_packed_t_stringliteral_4117b9934a95d0644e7342f637868e6a288c6a26fedd109ed3f49114379289f1_t_string_memory_ptr_t_stringliteral_01847fa300add37827ba70c89a70b3b5606b0b8dafd1b83974841385bae126fd_t_string_memory_ptr_t_stringliteral_377434ce9054b30a89006449a2b4548d3a976c2360bb0db5449287b18659a722_t_string_memory_ptr_t_stringliteral_863ed937574d7da9b7b8e7d15377a1b5b2ba32c83650007709916e177e891d43_t_string_memory_ptr_t_stringliteral_2178213b326e57f78a76acf802eff07532fd4852a28b95162939ee7085ea509a_t_string_memory_ptr_t_stringliteral_c1bf9fbafe1881f2f498b720fa9e1fddaf6b58a207e72dc2e9e7b47336fe3494_t_string_memory_ptr_t_stringliteral_75f3bcb45e0d7da7a39095e1c5e60de0548890ebcacd7072da1d6d7274046b0a_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value6, value5, value4, value3, value2, value1, value0) -> end\n {\n mstore(pos, \"&token_address=\")\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), add(pos, 15), length)\n let _1 := add(pos, length)\n mstore(add(_1, 15), \"&chain_id=\")\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(_1, 25), length_1)\n let _2 := add(_1, length_1)\n mstore(add(_2, 25), \"&token_symbol=\")\n let length_2 := mload(value2)\n copy_memory_to_memory_with_cleanup(add(value2, 0x20), add(_2, 39), length_2)\n let _3 := add(_2, length_2)\n mstore(add(_3, 39), \"&sender=\")\n let length_3 := mload(value3)\n copy_memory_to_memory_with_cleanup(add(value3, 0x20), add(_3, 47), length_3)\n let _4 := add(_3, length_3)\n mstore(add(_4, 47), \"&receiver=\")\n end := abi_encode_string(value6, abi_encode_stringliteral_75f3(abi_encode_string(value5, abi_encode_stringliteral_c1bf(abi_encode_string(value4, add(_4, 57))))))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function decrement_t_uint256(value) -> ret\n {\n if iszero(value) { panic_error_0x11() }\n ret := add(value, not(0))\n }\n function abi_encode_tuple_t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"Strings: hex length insufficient\")\n tail := add(headStart, 96)\n }\n}",
16229
16229
  "id": 124,
16230
16230
  "language": "Yul",
16231
16231
  "name": "#utility.yul"
@@ -16239,42 +16239,42 @@
16239
16239
  "absolutePath": "project:/contracts/superfluid/ConstantOutflowNFT.sol",
16240
16240
  "exportedSymbols": {
16241
16241
  "ConstantOutflowNFT": [
16242
- 39275
16242
+ 39279
16243
16243
  ],
16244
16244
  "FlowNFTBase": [
16245
- 40119
16245
+ 40123
16246
16246
  ],
16247
16247
  "IConstantFlowAgreementV1": [
16248
- 22729
16248
+ 22732
16249
16249
  ],
16250
16250
  "IConstantInflowNFT": [
16251
- 23643
16251
+ 23646
16252
16252
  ],
16253
16253
  "IConstantOutflowNFT": [
16254
- 23697
16254
+ 23700
16255
16255
  ],
16256
16256
  "IERC721Metadata": [
16257
16257
  2025
16258
16258
  ],
16259
16259
  "IFlowNFTBase": [
16260
- 23771
16260
+ 23774
16261
16261
  ],
16262
16262
  "ISuperfluid": [
16263
- 25048
16263
+ 25051
16264
16264
  ],
16265
16265
  "ISuperfluidToken": [
16266
- 25463
16266
+ 25466
16267
16267
  ],
16268
16268
  "UUPSProxiable": [
16269
- 46999
16269
+ 47004
16270
16270
  ]
16271
16271
  },
16272
- "id": 39276,
16272
+ "id": 39280,
16273
16273
  "license": "AGPLv3",
16274
16274
  "nodeType": "SourceUnit",
16275
16275
  "nodes": [
16276
16276
  {
16277
- "id": 38896,
16277
+ "id": 38900,
16278
16278
  "literals": [
16279
16279
  "solidity",
16280
16280
  "0.8",
@@ -16286,16 +16286,16 @@
16286
16286
  {
16287
16287
  "absolutePath": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
16288
16288
  "file": "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
16289
- "id": 38898,
16289
+ "id": 38902,
16290
16290
  "nameLocation": "-1:-1:-1",
16291
16291
  "nodeType": "ImportDirective",
16292
- "scope": 39276,
16292
+ "scope": 39280,
16293
16293
  "sourceUnit": 2026,
16294
16294
  "src": "96:106:99",
16295
16295
  "symbolAliases": [
16296
16296
  {
16297
16297
  "foreign": {
16298
- "id": 38897,
16298
+ "id": 38901,
16299
16299
  "name": "IERC721Metadata",
16300
16300
  "nodeType": "Identifier",
16301
16301
  "overloadedDeclarations": [],
@@ -16311,20 +16311,20 @@
16311
16311
  {
16312
16312
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluidToken.sol",
16313
16313
  "file": "../interfaces/superfluid/ISuperfluidToken.sol",
16314
- "id": 38900,
16314
+ "id": 38904,
16315
16315
  "nameLocation": "-1:-1:-1",
16316
16316
  "nodeType": "ImportDirective",
16317
- "scope": 39276,
16318
- "sourceUnit": 25464,
16317
+ "scope": 39280,
16318
+ "sourceUnit": 25467,
16319
16319
  "src": "203:85:99",
16320
16320
  "symbolAliases": [
16321
16321
  {
16322
16322
  "foreign": {
16323
- "id": 38899,
16323
+ "id": 38903,
16324
16324
  "name": "ISuperfluidToken",
16325
16325
  "nodeType": "Identifier",
16326
16326
  "overloadedDeclarations": [],
16327
- "referencedDeclaration": 25463,
16327
+ "referencedDeclaration": 25466,
16328
16328
  "src": "216:16:99",
16329
16329
  "typeDescriptions": {}
16330
16330
  },
@@ -16336,20 +16336,20 @@
16336
16336
  {
16337
16337
  "absolutePath": "project:/contracts/interfaces/agreements/IConstantFlowAgreementV1.sol",
16338
16338
  "file": "../interfaces/agreements/IConstantFlowAgreementV1.sol",
16339
- "id": 38902,
16339
+ "id": 38906,
16340
16340
  "nameLocation": "-1:-1:-1",
16341
16341
  "nodeType": "ImportDirective",
16342
- "scope": 39276,
16343
- "sourceUnit": 22730,
16342
+ "scope": 39280,
16343
+ "sourceUnit": 22733,
16344
16344
  "src": "289:101:99",
16345
16345
  "symbolAliases": [
16346
16346
  {
16347
16347
  "foreign": {
16348
- "id": 38901,
16348
+ "id": 38905,
16349
16349
  "name": "IConstantFlowAgreementV1",
16350
16350
  "nodeType": "Identifier",
16351
16351
  "overloadedDeclarations": [],
16352
- "referencedDeclaration": 22729,
16352
+ "referencedDeclaration": 22732,
16353
16353
  "src": "302:24:99",
16354
16354
  "typeDescriptions": {}
16355
16355
  },
@@ -16361,20 +16361,20 @@
16361
16361
  {
16362
16362
  "absolutePath": "project:/contracts/interfaces/superfluid/IConstantInflowNFT.sol",
16363
16363
  "file": "../interfaces/superfluid/IConstantInflowNFT.sol",
16364
- "id": 38904,
16364
+ "id": 38908,
16365
16365
  "nameLocation": "-1:-1:-1",
16366
16366
  "nodeType": "ImportDirective",
16367
- "scope": 39276,
16368
- "sourceUnit": 23644,
16367
+ "scope": 39280,
16368
+ "sourceUnit": 23647,
16369
16369
  "src": "391:89:99",
16370
16370
  "symbolAliases": [
16371
16371
  {
16372
16372
  "foreign": {
16373
- "id": 38903,
16373
+ "id": 38907,
16374
16374
  "name": "IConstantInflowNFT",
16375
16375
  "nodeType": "Identifier",
16376
16376
  "overloadedDeclarations": [],
16377
- "referencedDeclaration": 23643,
16377
+ "referencedDeclaration": 23646,
16378
16378
  "src": "404:18:99",
16379
16379
  "typeDescriptions": {}
16380
16380
  },
@@ -16386,20 +16386,20 @@
16386
16386
  {
16387
16387
  "absolutePath": "project:/contracts/interfaces/superfluid/IConstantOutflowNFT.sol",
16388
16388
  "file": "../interfaces/superfluid/IConstantOutflowNFT.sol",
16389
- "id": 38906,
16389
+ "id": 38910,
16390
16390
  "nameLocation": "-1:-1:-1",
16391
16391
  "nodeType": "ImportDirective",
16392
- "scope": 39276,
16393
- "sourceUnit": 23698,
16392
+ "scope": 39280,
16393
+ "sourceUnit": 23701,
16394
16394
  "src": "481:91:99",
16395
16395
  "symbolAliases": [
16396
16396
  {
16397
16397
  "foreign": {
16398
- "id": 38905,
16398
+ "id": 38909,
16399
16399
  "name": "IConstantOutflowNFT",
16400
16400
  "nodeType": "Identifier",
16401
16401
  "overloadedDeclarations": [],
16402
- "referencedDeclaration": 23697,
16402
+ "referencedDeclaration": 23700,
16403
16403
  "src": "494:19:99",
16404
16404
  "typeDescriptions": {}
16405
16405
  },
@@ -16411,20 +16411,20 @@
16411
16411
  {
16412
16412
  "absolutePath": "project:/contracts/interfaces/superfluid/ISuperfluid.sol",
16413
16413
  "file": "../interfaces/superfluid/ISuperfluid.sol",
16414
- "id": 38908,
16414
+ "id": 38912,
16415
16415
  "nameLocation": "-1:-1:-1",
16416
16416
  "nodeType": "ImportDirective",
16417
- "scope": 39276,
16418
- "sourceUnit": 25049,
16417
+ "scope": 39280,
16418
+ "sourceUnit": 25052,
16419
16419
  "src": "573:71:99",
16420
16420
  "symbolAliases": [
16421
16421
  {
16422
16422
  "foreign": {
16423
- "id": 38907,
16423
+ "id": 38911,
16424
16424
  "name": "ISuperfluid",
16425
16425
  "nodeType": "Identifier",
16426
16426
  "overloadedDeclarations": [],
16427
- "referencedDeclaration": 25048,
16427
+ "referencedDeclaration": 25051,
16428
16428
  "src": "582:11:99",
16429
16429
  "typeDescriptions": {}
16430
16430
  },
@@ -16436,20 +16436,20 @@
16436
16436
  {
16437
16437
  "absolutePath": "project:/contracts/superfluid/FlowNFTBase.sol",
16438
16438
  "file": "./FlowNFTBase.sol",
16439
- "id": 38911,
16439
+ "id": 38915,
16440
16440
  "nameLocation": "-1:-1:-1",
16441
16441
  "nodeType": "ImportDirective",
16442
- "scope": 39276,
16443
- "sourceUnit": 40120,
16442
+ "scope": 39280,
16443
+ "sourceUnit": 40124,
16444
16444
  "src": "645:62:99",
16445
16445
  "symbolAliases": [
16446
16446
  {
16447
16447
  "foreign": {
16448
- "id": 38909,
16448
+ "id": 38913,
16449
16449
  "name": "FlowNFTBase",
16450
16450
  "nodeType": "Identifier",
16451
16451
  "overloadedDeclarations": [],
16452
- "referencedDeclaration": 40119,
16452
+ "referencedDeclaration": 40123,
16453
16453
  "src": "654:11:99",
16454
16454
  "typeDescriptions": {}
16455
16455
  },
@@ -16457,11 +16457,11 @@
16457
16457
  },
16458
16458
  {
16459
16459
  "foreign": {
16460
- "id": 38910,
16460
+ "id": 38914,
16461
16461
  "name": "IFlowNFTBase",
16462
16462
  "nodeType": "Identifier",
16463
16463
  "overloadedDeclarations": [],
16464
- "referencedDeclaration": 23771,
16464
+ "referencedDeclaration": 23774,
16465
16465
  "src": "667:12:99",
16466
16466
  "typeDescriptions": {}
16467
16467
  },
@@ -16473,20 +16473,20 @@
16473
16473
  {
16474
16474
  "absolutePath": "project:/contracts/upgradability/UUPSProxiable.sol",
16475
16475
  "file": "../upgradability/UUPSProxiable.sol",
16476
- "id": 38913,
16476
+ "id": 38917,
16477
16477
  "nameLocation": "-1:-1:-1",
16478
16478
  "nodeType": "ImportDirective",
16479
- "scope": 39276,
16480
- "sourceUnit": 47000,
16479
+ "scope": 39280,
16480
+ "sourceUnit": 47005,
16481
16481
  "src": "708:67:99",
16482
16482
  "symbolAliases": [
16483
16483
  {
16484
16484
  "foreign": {
16485
- "id": 38912,
16485
+ "id": 38916,
16486
16486
  "name": "UUPSProxiable",
16487
16487
  "nodeType": "Identifier",
16488
16488
  "overloadedDeclarations": [],
16489
- "referencedDeclaration": 46999,
16489
+ "referencedDeclaration": 47004,
16490
16490
  "src": "717:13:99",
16491
16491
  "typeDescriptions": {}
16492
16492
  },
@@ -16500,31 +16500,31 @@
16500
16500
  "baseContracts": [
16501
16501
  {
16502
16502
  "baseName": {
16503
- "id": 38915,
16503
+ "id": 38919,
16504
16504
  "name": "FlowNFTBase",
16505
16505
  "nameLocations": [
16506
16506
  "1093:11:99"
16507
16507
  ],
16508
16508
  "nodeType": "IdentifierPath",
16509
- "referencedDeclaration": 40119,
16509
+ "referencedDeclaration": 40123,
16510
16510
  "src": "1093:11:99"
16511
16511
  },
16512
- "id": 38916,
16512
+ "id": 38920,
16513
16513
  "nodeType": "InheritanceSpecifier",
16514
16514
  "src": "1093:11:99"
16515
16515
  },
16516
16516
  {
16517
16517
  "baseName": {
16518
- "id": 38917,
16518
+ "id": 38921,
16519
16519
  "name": "IConstantOutflowNFT",
16520
16520
  "nameLocations": [
16521
16521
  "1106:19:99"
16522
16522
  ],
16523
16523
  "nodeType": "IdentifierPath",
16524
- "referencedDeclaration": 23697,
16524
+ "referencedDeclaration": 23700,
16525
16525
  "src": "1106:19:99"
16526
16526
  },
16527
- "id": 38918,
16527
+ "id": 38922,
16528
16528
  "nodeType": "InheritanceSpecifier",
16529
16529
  "src": "1106:19:99"
16530
16530
  }
@@ -16533,22 +16533,22 @@
16533
16533
  "contractDependencies": [],
16534
16534
  "contractKind": "contract",
16535
16535
  "documentation": {
16536
- "id": 38914,
16536
+ "id": 38918,
16537
16537
  "nodeType": "StructuredDocumentation",
16538
16538
  "src": "777:285:99",
16539
16539
  "text": "@title ConstantOutflowNFT contract (COF NFT)\n @author Superfluid\n @notice The ConstantOutflowNFT contract to be minted to the flow sender on flow creation.\n @dev This contract uses mint/burn interface for flow creation/deletion and holds the actual storage for both NFTs."
16540
16540
  },
16541
16541
  "fullyImplemented": true,
16542
- "id": 39275,
16542
+ "id": 39279,
16543
16543
  "linearizedBaseContracts": [
16544
- 39275,
16545
- 23697,
16546
- 40119,
16547
- 23771,
16544
+ 39279,
16545
+ 23700,
16546
+ 40123,
16547
+ 23774,
16548
16548
  2025,
16549
16549
  1998,
16550
16550
  2850,
16551
- 46999,
16551
+ 47004,
16552
16552
  875
16553
16553
  ],
16554
16554
  "name": "ConstantOutflowNFT",
@@ -16558,36 +16558,36 @@
16558
16558
  {
16559
16559
  "constant": false,
16560
16560
  "functionSelector": "4c5c0c85",
16561
- "id": 38921,
16561
+ "id": 38925,
16562
16562
  "mutability": "immutable",
16563
16563
  "name": "CONSTANT_INFLOW_NFT",
16564
16564
  "nameLocation": "1168:19:99",
16565
16565
  "nodeType": "VariableDeclaration",
16566
- "scope": 39275,
16566
+ "scope": 39279,
16567
16567
  "src": "1132:55:99",
16568
16568
  "stateVariable": true,
16569
16569
  "storageLocation": "default",
16570
16570
  "typeDescriptions": {
16571
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
16571
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
16572
16572
  "typeString": "contract IConstantInflowNFT"
16573
16573
  },
16574
16574
  "typeName": {
16575
- "id": 38920,
16575
+ "id": 38924,
16576
16576
  "nodeType": "UserDefinedTypeName",
16577
16577
  "pathNode": {
16578
- "id": 38919,
16578
+ "id": 38923,
16579
16579
  "name": "IConstantInflowNFT",
16580
16580
  "nameLocations": [
16581
16581
  "1132:18:99"
16582
16582
  ],
16583
16583
  "nodeType": "IdentifierPath",
16584
- "referencedDeclaration": 23643,
16584
+ "referencedDeclaration": 23646,
16585
16585
  "src": "1132:18:99"
16586
16586
  },
16587
- "referencedDeclaration": 23643,
16587
+ "referencedDeclaration": 23646,
16588
16588
  "src": "1132:18:99",
16589
16589
  "typeDescriptions": {
16590
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
16590
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
16591
16591
  "typeString": "contract IConstantInflowNFT"
16592
16592
  }
16593
16593
  },
@@ -16596,30 +16596,30 @@
16596
16596
  {
16597
16597
  "constant": false,
16598
16598
  "documentation": {
16599
- "id": 38922,
16599
+ "id": 38926,
16600
16600
  "nodeType": "StructuredDocumentation",
16601
16601
  "src": "1194:244:99",
16602
16602
  "text": "@notice A mapping from token id to FlowNFTData\n FlowNFTData: { address flowSender, uint32 flowStartDate, address flowReceiver, address superToken }\n @dev The token id is uint256(keccak256(abi.encode(flowSender, flowReceiver)))"
16603
16603
  },
16604
- "id": 38927,
16604
+ "id": 38931,
16605
16605
  "mutability": "mutable",
16606
16606
  "name": "_flowDataByTokenId",
16607
16607
  "nameLocation": "1484:18:99",
16608
16608
  "nodeType": "VariableDeclaration",
16609
- "scope": 39275,
16609
+ "scope": 39279,
16610
16610
  "src": "1443:59:99",
16611
16611
  "stateVariable": true,
16612
16612
  "storageLocation": "default",
16613
16613
  "typeDescriptions": {
16614
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
16614
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
16615
16615
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData)"
16616
16616
  },
16617
16617
  "typeName": {
16618
- "id": 38926,
16618
+ "id": 38930,
16619
16619
  "keyName": "",
16620
16620
  "keyNameLocation": "-1:-1:-1",
16621
16621
  "keyType": {
16622
- "id": 38923,
16622
+ "id": 38927,
16623
16623
  "name": "uint256",
16624
16624
  "nodeType": "ElementaryTypeName",
16625
16625
  "src": "1451:7:99",
@@ -16631,28 +16631,28 @@
16631
16631
  "nodeType": "Mapping",
16632
16632
  "src": "1443:31:99",
16633
16633
  "typeDescriptions": {
16634
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
16634
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
16635
16635
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData)"
16636
16636
  },
16637
16637
  "valueName": "",
16638
16638
  "valueNameLocation": "-1:-1:-1",
16639
16639
  "valueType": {
16640
- "id": 38925,
16640
+ "id": 38929,
16641
16641
  "nodeType": "UserDefinedTypeName",
16642
16642
  "pathNode": {
16643
- "id": 38924,
16643
+ "id": 38928,
16644
16644
  "name": "FlowNFTData",
16645
16645
  "nameLocations": [
16646
16646
  "1462:11:99"
16647
16647
  ],
16648
16648
  "nodeType": "IdentifierPath",
16649
- "referencedDeclaration": 23714,
16649
+ "referencedDeclaration": 23717,
16650
16650
  "src": "1462:11:99"
16651
16651
  },
16652
- "referencedDeclaration": 23714,
16652
+ "referencedDeclaration": 23717,
16653
16653
  "src": "1462:11:99",
16654
16654
  "typeDescriptions": {
16655
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage_ptr",
16655
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage_ptr",
16656
16656
  "typeString": "struct IFlowNFTBase.FlowNFTData"
16657
16657
  }
16658
16658
  }
@@ -16661,84 +16661,84 @@
16661
16661
  },
16662
16662
  {
16663
16663
  "body": {
16664
- "id": 38943,
16664
+ "id": 38947,
16665
16665
  "nodeType": "Block",
16666
16666
  "src": "1666:56:99",
16667
16667
  "statements": [
16668
16668
  {
16669
16669
  "expression": {
16670
- "id": 38941,
16670
+ "id": 38945,
16671
16671
  "isConstant": false,
16672
16672
  "isLValue": false,
16673
16673
  "isPure": false,
16674
16674
  "lValueRequested": false,
16675
16675
  "leftHandSide": {
16676
- "id": 38939,
16676
+ "id": 38943,
16677
16677
  "name": "CONSTANT_INFLOW_NFT",
16678
16678
  "nodeType": "Identifier",
16679
16679
  "overloadedDeclarations": [],
16680
- "referencedDeclaration": 38921,
16680
+ "referencedDeclaration": 38925,
16681
16681
  "src": "1676:19:99",
16682
16682
  "typeDescriptions": {
16683
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
16683
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
16684
16684
  "typeString": "contract IConstantInflowNFT"
16685
16685
  }
16686
16686
  },
16687
16687
  "nodeType": "Assignment",
16688
16688
  "operator": "=",
16689
16689
  "rightHandSide": {
16690
- "id": 38940,
16690
+ "id": 38944,
16691
16691
  "name": "constantInflowNFT",
16692
16692
  "nodeType": "Identifier",
16693
16693
  "overloadedDeclarations": [],
16694
- "referencedDeclaration": 38933,
16694
+ "referencedDeclaration": 38937,
16695
16695
  "src": "1698:17:99",
16696
16696
  "typeDescriptions": {
16697
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
16697
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
16698
16698
  "typeString": "contract IConstantInflowNFT"
16699
16699
  }
16700
16700
  },
16701
16701
  "src": "1676:39:99",
16702
16702
  "typeDescriptions": {
16703
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
16703
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
16704
16704
  "typeString": "contract IConstantInflowNFT"
16705
16705
  }
16706
16706
  },
16707
- "id": 38942,
16707
+ "id": 38946,
16708
16708
  "nodeType": "ExpressionStatement",
16709
16709
  "src": "1676:39:99"
16710
16710
  }
16711
16711
  ]
16712
16712
  },
16713
- "id": 38944,
16713
+ "id": 38948,
16714
16714
  "implemented": true,
16715
16715
  "kind": "constructor",
16716
16716
  "modifiers": [
16717
16717
  {
16718
16718
  "arguments": [
16719
16719
  {
16720
- "id": 38936,
16720
+ "id": 38940,
16721
16721
  "name": "host",
16722
16722
  "nodeType": "Identifier",
16723
16723
  "overloadedDeclarations": [],
16724
- "referencedDeclaration": 38930,
16724
+ "referencedDeclaration": 38934,
16725
16725
  "src": "1660:4:99",
16726
16726
  "typeDescriptions": {
16727
- "typeIdentifier": "t_contract$_ISuperfluid_$25048",
16727
+ "typeIdentifier": "t_contract$_ISuperfluid_$25051",
16728
16728
  "typeString": "contract ISuperfluid"
16729
16729
  }
16730
16730
  }
16731
16731
  ],
16732
- "id": 38937,
16732
+ "id": 38941,
16733
16733
  "kind": "baseConstructorSpecifier",
16734
16734
  "modifierName": {
16735
- "id": 38935,
16735
+ "id": 38939,
16736
16736
  "name": "FlowNFTBase",
16737
16737
  "nameLocations": [
16738
16738
  "1648:11:99"
16739
16739
  ],
16740
16740
  "nodeType": "IdentifierPath",
16741
- "referencedDeclaration": 40119,
16741
+ "referencedDeclaration": 40123,
16742
16742
  "src": "1648:11:99"
16743
16743
  },
16744
16744
  "nodeType": "ModifierInvocation",
@@ -16749,41 +16749,41 @@
16749
16749
  "nameLocation": "-1:-1:-1",
16750
16750
  "nodeType": "FunctionDefinition",
16751
16751
  "parameters": {
16752
- "id": 38934,
16752
+ "id": 38938,
16753
16753
  "nodeType": "ParameterList",
16754
16754
  "parameters": [
16755
16755
  {
16756
16756
  "constant": false,
16757
- "id": 38930,
16757
+ "id": 38934,
16758
16758
  "mutability": "mutable",
16759
16759
  "name": "host",
16760
16760
  "nameLocation": "1591:4:99",
16761
16761
  "nodeType": "VariableDeclaration",
16762
- "scope": 38944,
16762
+ "scope": 38948,
16763
16763
  "src": "1579:16:99",
16764
16764
  "stateVariable": false,
16765
16765
  "storageLocation": "default",
16766
16766
  "typeDescriptions": {
16767
- "typeIdentifier": "t_contract$_ISuperfluid_$25048",
16767
+ "typeIdentifier": "t_contract$_ISuperfluid_$25051",
16768
16768
  "typeString": "contract ISuperfluid"
16769
16769
  },
16770
16770
  "typeName": {
16771
- "id": 38929,
16771
+ "id": 38933,
16772
16772
  "nodeType": "UserDefinedTypeName",
16773
16773
  "pathNode": {
16774
- "id": 38928,
16774
+ "id": 38932,
16775
16775
  "name": "ISuperfluid",
16776
16776
  "nameLocations": [
16777
16777
  "1579:11:99"
16778
16778
  ],
16779
16779
  "nodeType": "IdentifierPath",
16780
- "referencedDeclaration": 25048,
16780
+ "referencedDeclaration": 25051,
16781
16781
  "src": "1579:11:99"
16782
16782
  },
16783
- "referencedDeclaration": 25048,
16783
+ "referencedDeclaration": 25051,
16784
16784
  "src": "1579:11:99",
16785
16785
  "typeDescriptions": {
16786
- "typeIdentifier": "t_contract$_ISuperfluid_$25048",
16786
+ "typeIdentifier": "t_contract$_ISuperfluid_$25051",
16787
16787
  "typeString": "contract ISuperfluid"
16788
16788
  }
16789
16789
  },
@@ -16791,36 +16791,36 @@
16791
16791
  },
16792
16792
  {
16793
16793
  "constant": false,
16794
- "id": 38933,
16794
+ "id": 38937,
16795
16795
  "mutability": "mutable",
16796
16796
  "name": "constantInflowNFT",
16797
16797
  "nameLocation": "1624:17:99",
16798
16798
  "nodeType": "VariableDeclaration",
16799
- "scope": 38944,
16799
+ "scope": 38948,
16800
16800
  "src": "1605:36:99",
16801
16801
  "stateVariable": false,
16802
16802
  "storageLocation": "default",
16803
16803
  "typeDescriptions": {
16804
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
16804
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
16805
16805
  "typeString": "contract IConstantInflowNFT"
16806
16806
  },
16807
16807
  "typeName": {
16808
- "id": 38932,
16808
+ "id": 38936,
16809
16809
  "nodeType": "UserDefinedTypeName",
16810
16810
  "pathNode": {
16811
- "id": 38931,
16811
+ "id": 38935,
16812
16812
  "name": "IConstantInflowNFT",
16813
16813
  "nameLocations": [
16814
16814
  "1605:18:99"
16815
16815
  ],
16816
16816
  "nodeType": "IdentifierPath",
16817
- "referencedDeclaration": 23643,
16817
+ "referencedDeclaration": 23646,
16818
16818
  "src": "1605:18:99"
16819
16819
  },
16820
- "referencedDeclaration": 23643,
16820
+ "referencedDeclaration": 23646,
16821
16821
  "src": "1605:18:99",
16822
16822
  "typeDescriptions": {
16823
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
16823
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
16824
16824
  "typeString": "contract IConstantInflowNFT"
16825
16825
  }
16826
16826
  },
@@ -16830,12 +16830,12 @@
16830
16830
  "src": "1569:78:99"
16831
16831
  },
16832
16832
  "returnParameters": {
16833
- "id": 38938,
16833
+ "id": 38942,
16834
16834
  "nodeType": "ParameterList",
16835
16835
  "parameters": [],
16836
16836
  "src": "1666:0:99"
16837
16837
  },
16838
- "scope": 39275,
16838
+ "scope": 39279,
16839
16839
  "src": "1558:164:99",
16840
16840
  "stateMutability": "nonpayable",
16841
16841
  "virtual": false,
@@ -16843,10 +16843,10 @@
16843
16843
  },
16844
16844
  {
16845
16845
  "baseFunctions": [
16846
- 46939
16846
+ 46944
16847
16847
  ],
16848
16848
  "body": {
16849
- "id": 38954,
16849
+ "id": 38958,
16850
16850
  "nodeType": "Block",
16851
16851
  "src": "1866:145:99",
16852
16852
  "statements": [
@@ -16855,7 +16855,7 @@
16855
16855
  "arguments": [
16856
16856
  {
16857
16857
  "hexValue": "6f72672e7375706572666c7569642d66696e616e63652e636f6e7472616374732e436f6e7374616e744f7574666c6f774e46542e696d706c656d656e746174696f6e",
16858
- "id": 38951,
16858
+ "id": 38955,
16859
16859
  "isConstant": false,
16860
16860
  "isLValue": false,
16861
16861
  "isPure": true,
@@ -16877,7 +16877,7 @@
16877
16877
  "typeString": "literal_string \"org.superfluid-finance.contracts.ConstantOutflowNFT.implementation\""
16878
16878
  }
16879
16879
  ],
16880
- "id": 38950,
16880
+ "id": 38954,
16881
16881
  "name": "keccak256",
16882
16882
  "nodeType": "Identifier",
16883
16883
  "overloadedDeclarations": [],
@@ -16888,7 +16888,7 @@
16888
16888
  "typeString": "function (bytes memory) pure returns (bytes32)"
16889
16889
  }
16890
16890
  },
16891
- "id": 38952,
16891
+ "id": 38956,
16892
16892
  "isConstant": false,
16893
16893
  "isLValue": false,
16894
16894
  "isPure": true,
@@ -16904,15 +16904,15 @@
16904
16904
  "typeString": "bytes32"
16905
16905
  }
16906
16906
  },
16907
- "functionReturnParameters": 38949,
16908
- "id": 38953,
16907
+ "functionReturnParameters": 38953,
16908
+ "id": 38957,
16909
16909
  "nodeType": "Return",
16910
16910
  "src": "1876:128:99"
16911
16911
  }
16912
16912
  ]
16913
16913
  },
16914
16914
  "functionSelector": "52d1902d",
16915
- "id": 38955,
16915
+ "id": 38959,
16916
16916
  "implemented": true,
16917
16917
  "kind": "function",
16918
16918
  "modifiers": [],
@@ -16920,29 +16920,29 @@
16920
16920
  "nameLocation": "1811:13:99",
16921
16921
  "nodeType": "FunctionDefinition",
16922
16922
  "overrides": {
16923
- "id": 38946,
16923
+ "id": 38950,
16924
16924
  "nodeType": "OverrideSpecifier",
16925
16925
  "overrides": [],
16926
16926
  "src": "1839:8:99"
16927
16927
  },
16928
16928
  "parameters": {
16929
- "id": 38945,
16929
+ "id": 38949,
16930
16930
  "nodeType": "ParameterList",
16931
16931
  "parameters": [],
16932
16932
  "src": "1824:2:99"
16933
16933
  },
16934
16934
  "returnParameters": {
16935
- "id": 38949,
16935
+ "id": 38953,
16936
16936
  "nodeType": "ParameterList",
16937
16937
  "parameters": [
16938
16938
  {
16939
16939
  "constant": false,
16940
- "id": 38948,
16940
+ "id": 38952,
16941
16941
  "mutability": "mutable",
16942
16942
  "name": "",
16943
16943
  "nameLocation": "-1:-1:-1",
16944
16944
  "nodeType": "VariableDeclaration",
16945
- "scope": 38955,
16945
+ "scope": 38959,
16946
16946
  "src": "1857:7:99",
16947
16947
  "stateVariable": false,
16948
16948
  "storageLocation": "default",
@@ -16951,7 +16951,7 @@
16951
16951
  "typeString": "bytes32"
16952
16952
  },
16953
16953
  "typeName": {
16954
- "id": 38947,
16954
+ "id": 38951,
16955
16955
  "name": "bytes32",
16956
16956
  "nodeType": "ElementaryTypeName",
16957
16957
  "src": "1857:7:99",
@@ -16965,7 +16965,7 @@
16965
16965
  ],
16966
16966
  "src": "1856:9:99"
16967
16967
  },
16968
- "scope": 39275,
16968
+ "scope": 39279,
16969
16969
  "src": "1802:209:99",
16970
16970
  "stateMutability": "pure",
16971
16971
  "virtual": false,
@@ -16973,30 +16973,30 @@
16973
16973
  },
16974
16974
  {
16975
16975
  "baseFunctions": [
16976
- 23746,
16977
- 40071
16976
+ 23749,
16977
+ 40075
16978
16978
  ],
16979
16979
  "body": {
16980
- "id": 38973,
16980
+ "id": 38977,
16981
16981
  "nodeType": "Block",
16982
16982
  "src": "2372:55:99",
16983
16983
  "statements": [
16984
16984
  {
16985
16985
  "expression": {
16986
- "id": 38971,
16986
+ "id": 38975,
16987
16987
  "isConstant": false,
16988
16988
  "isLValue": false,
16989
16989
  "isPure": false,
16990
16990
  "lValueRequested": false,
16991
16991
  "leftHandSide": {
16992
- "id": 38967,
16992
+ "id": 38971,
16993
16993
  "name": "flowData",
16994
16994
  "nodeType": "Identifier",
16995
16995
  "overloadedDeclarations": [],
16996
- "referencedDeclaration": 38965,
16996
+ "referencedDeclaration": 38969,
16997
16997
  "src": "2382:8:99",
16998
16998
  "typeDescriptions": {
16999
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_memory_ptr",
16999
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_memory_ptr",
17000
17000
  "typeString": "struct IFlowNFTBase.FlowNFTData memory"
17001
17001
  }
17002
17002
  },
@@ -17004,24 +17004,24 @@
17004
17004
  "operator": "=",
17005
17005
  "rightHandSide": {
17006
17006
  "baseExpression": {
17007
- "id": 38968,
17007
+ "id": 38972,
17008
17008
  "name": "_flowDataByTokenId",
17009
17009
  "nodeType": "Identifier",
17010
17010
  "overloadedDeclarations": [],
17011
- "referencedDeclaration": 38927,
17011
+ "referencedDeclaration": 38931,
17012
17012
  "src": "2393:18:99",
17013
17013
  "typeDescriptions": {
17014
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
17014
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
17015
17015
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData storage ref)"
17016
17016
  }
17017
17017
  },
17018
- "id": 38970,
17018
+ "id": 38974,
17019
17019
  "indexExpression": {
17020
- "id": 38969,
17020
+ "id": 38973,
17021
17021
  "name": "tokenId",
17022
17022
  "nodeType": "Identifier",
17023
17023
  "overloadedDeclarations": [],
17024
- "referencedDeclaration": 38958,
17024
+ "referencedDeclaration": 38962,
17025
17025
  "src": "2412:7:99",
17026
17026
  "typeDescriptions": {
17027
17027
  "typeIdentifier": "t_uint256",
@@ -17035,30 +17035,30 @@
17035
17035
  "nodeType": "IndexAccess",
17036
17036
  "src": "2393:27:99",
17037
17037
  "typeDescriptions": {
17038
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
17038
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
17039
17039
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
17040
17040
  }
17041
17041
  },
17042
17042
  "src": "2382:38:99",
17043
17043
  "typeDescriptions": {
17044
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_memory_ptr",
17044
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_memory_ptr",
17045
17045
  "typeString": "struct IFlowNFTBase.FlowNFTData memory"
17046
17046
  }
17047
17047
  },
17048
- "id": 38972,
17048
+ "id": 38976,
17049
17049
  "nodeType": "ExpressionStatement",
17050
17050
  "src": "2382:38:99"
17051
17051
  }
17052
17052
  ]
17053
17053
  },
17054
17054
  "documentation": {
17055
- "id": 38956,
17055
+ "id": 38960,
17056
17056
  "nodeType": "StructuredDocumentation",
17057
17057
  "src": "2017:170:99",
17058
17058
  "text": "@notice An external function for querying flow data by `tokenId``\n @param tokenId the token id\n @return flowData the flow data associated with `tokenId`"
17059
17059
  },
17060
17060
  "functionSelector": "8d47859e",
17061
- "id": 38974,
17061
+ "id": 38978,
17062
17062
  "implemented": true,
17063
17063
  "kind": "function",
17064
17064
  "modifiers": [],
@@ -17066,44 +17066,44 @@
17066
17066
  "nameLocation": "2201:17:99",
17067
17067
  "nodeType": "FunctionDefinition",
17068
17068
  "overrides": {
17069
- "id": 38962,
17069
+ "id": 38966,
17070
17070
  "nodeType": "OverrideSpecifier",
17071
17071
  "overrides": [
17072
17072
  {
17073
- "id": 38960,
17073
+ "id": 38964,
17074
17074
  "name": "FlowNFTBase",
17075
17075
  "nameLocations": [
17076
17076
  "2295:11:99"
17077
17077
  ],
17078
17078
  "nodeType": "IdentifierPath",
17079
- "referencedDeclaration": 40119,
17079
+ "referencedDeclaration": 40123,
17080
17080
  "src": "2295:11:99"
17081
17081
  },
17082
17082
  {
17083
- "id": 38961,
17083
+ "id": 38965,
17084
17084
  "name": "IFlowNFTBase",
17085
17085
  "nameLocations": [
17086
17086
  "2308:12:99"
17087
17087
  ],
17088
17088
  "nodeType": "IdentifierPath",
17089
- "referencedDeclaration": 23771,
17089
+ "referencedDeclaration": 23774,
17090
17090
  "src": "2308:12:99"
17091
17091
  }
17092
17092
  ],
17093
17093
  "src": "2286:35:99"
17094
17094
  },
17095
17095
  "parameters": {
17096
- "id": 38959,
17096
+ "id": 38963,
17097
17097
  "nodeType": "ParameterList",
17098
17098
  "parameters": [
17099
17099
  {
17100
17100
  "constant": false,
17101
- "id": 38958,
17101
+ "id": 38962,
17102
17102
  "mutability": "mutable",
17103
17103
  "name": "tokenId",
17104
17104
  "nameLocation": "2236:7:99",
17105
17105
  "nodeType": "VariableDeclaration",
17106
- "scope": 38974,
17106
+ "scope": 38978,
17107
17107
  "src": "2228:15:99",
17108
17108
  "stateVariable": false,
17109
17109
  "storageLocation": "default",
@@ -17112,7 +17112,7 @@
17112
17112
  "typeString": "uint256"
17113
17113
  },
17114
17114
  "typeName": {
17115
- "id": 38957,
17115
+ "id": 38961,
17116
17116
  "name": "uint256",
17117
17117
  "nodeType": "ElementaryTypeName",
17118
17118
  "src": "2228:7:99",
@@ -17127,41 +17127,41 @@
17127
17127
  "src": "2218:31:99"
17128
17128
  },
17129
17129
  "returnParameters": {
17130
- "id": 38966,
17130
+ "id": 38970,
17131
17131
  "nodeType": "ParameterList",
17132
17132
  "parameters": [
17133
17133
  {
17134
17134
  "constant": false,
17135
- "id": 38965,
17135
+ "id": 38969,
17136
17136
  "mutability": "mutable",
17137
17137
  "name": "flowData",
17138
17138
  "nameLocation": "2358:8:99",
17139
17139
  "nodeType": "VariableDeclaration",
17140
- "scope": 38974,
17140
+ "scope": 38978,
17141
17141
  "src": "2339:27:99",
17142
17142
  "stateVariable": false,
17143
17143
  "storageLocation": "memory",
17144
17144
  "typeDescriptions": {
17145
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_memory_ptr",
17145
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_memory_ptr",
17146
17146
  "typeString": "struct IFlowNFTBase.FlowNFTData"
17147
17147
  },
17148
17148
  "typeName": {
17149
- "id": 38964,
17149
+ "id": 38968,
17150
17150
  "nodeType": "UserDefinedTypeName",
17151
17151
  "pathNode": {
17152
- "id": 38963,
17152
+ "id": 38967,
17153
17153
  "name": "FlowNFTData",
17154
17154
  "nameLocations": [
17155
17155
  "2339:11:99"
17156
17156
  ],
17157
17157
  "nodeType": "IdentifierPath",
17158
- "referencedDeclaration": 23714,
17158
+ "referencedDeclaration": 23717,
17159
17159
  "src": "2339:11:99"
17160
17160
  },
17161
- "referencedDeclaration": 23714,
17161
+ "referencedDeclaration": 23717,
17162
17162
  "src": "2339:11:99",
17163
17163
  "typeDescriptions": {
17164
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage_ptr",
17164
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage_ptr",
17165
17165
  "typeString": "struct IFlowNFTBase.FlowNFTData"
17166
17166
  }
17167
17167
  },
@@ -17170,7 +17170,7 @@
17170
17170
  ],
17171
17171
  "src": "2338:29:99"
17172
17172
  },
17173
- "scope": 39275,
17173
+ "scope": 39279,
17174
17174
  "src": "2192:235:99",
17175
17175
  "stateMutability": "view",
17176
17176
  "virtual": false,
@@ -17179,10 +17179,10 @@
17179
17179
  {
17180
17180
  "baseFunctions": [
17181
17181
  2024,
17182
- 39549
17182
+ 39553
17183
17183
  ],
17184
17184
  "body": {
17185
- "id": 38989,
17185
+ "id": 38993,
17186
17186
  "nodeType": "Block",
17187
17187
  "src": "2595:49:99",
17188
17188
  "statements": [
@@ -17190,11 +17190,11 @@
17190
17190
  "expression": {
17191
17191
  "arguments": [
17192
17192
  {
17193
- "id": 38985,
17193
+ "id": 38989,
17194
17194
  "name": "tokenId",
17195
17195
  "nodeType": "Identifier",
17196
17196
  "overloadedDeclarations": [],
17197
- "referencedDeclaration": 38976,
17197
+ "referencedDeclaration": 38980,
17198
17198
  "src": "2622:7:99",
17199
17199
  "typeDescriptions": {
17200
17200
  "typeIdentifier": "t_uint256",
@@ -17203,7 +17203,7 @@
17203
17203
  },
17204
17204
  {
17205
17205
  "hexValue": "66616c7365",
17206
- "id": 38986,
17206
+ "id": 38990,
17207
17207
  "isConstant": false,
17208
17208
  "isLValue": false,
17209
17209
  "isPure": true,
@@ -17229,18 +17229,18 @@
17229
17229
  "typeString": "bool"
17230
17230
  }
17231
17231
  ],
17232
- "id": 38984,
17232
+ "id": 38988,
17233
17233
  "name": "_tokenURI",
17234
17234
  "nodeType": "Identifier",
17235
17235
  "overloadedDeclarations": [],
17236
- "referencedDeclaration": 39611,
17236
+ "referencedDeclaration": 39615,
17237
17237
  "src": "2612:9:99",
17238
17238
  "typeDescriptions": {
17239
17239
  "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_bool_$returns$_t_string_memory_ptr_$",
17240
17240
  "typeString": "function (uint256,bool) view returns (string memory)"
17241
17241
  }
17242
17242
  },
17243
- "id": 38987,
17243
+ "id": 38991,
17244
17244
  "isConstant": false,
17245
17245
  "isLValue": false,
17246
17246
  "isPure": false,
@@ -17256,15 +17256,15 @@
17256
17256
  "typeString": "string memory"
17257
17257
  }
17258
17258
  },
17259
- "functionReturnParameters": 38983,
17260
- "id": 38988,
17259
+ "functionReturnParameters": 38987,
17260
+ "id": 38992,
17261
17261
  "nodeType": "Return",
17262
17262
  "src": "2605:32:99"
17263
17263
  }
17264
17264
  ]
17265
17265
  },
17266
17266
  "functionSelector": "c87b56dd",
17267
- "id": 38990,
17267
+ "id": 38994,
17268
17268
  "implemented": true,
17269
17269
  "kind": "function",
17270
17270
  "modifiers": [],
@@ -17272,21 +17272,21 @@
17272
17272
  "nameLocation": "2442:8:99",
17273
17273
  "nodeType": "FunctionDefinition",
17274
17274
  "overrides": {
17275
- "id": 38980,
17275
+ "id": 38984,
17276
17276
  "nodeType": "OverrideSpecifier",
17277
17277
  "overrides": [
17278
17278
  {
17279
- "id": 38978,
17279
+ "id": 38982,
17280
17280
  "name": "FlowNFTBase",
17281
17281
  "nameLocations": [
17282
17282
  "2529:11:99"
17283
17283
  ],
17284
17284
  "nodeType": "IdentifierPath",
17285
- "referencedDeclaration": 40119,
17285
+ "referencedDeclaration": 40123,
17286
17286
  "src": "2529:11:99"
17287
17287
  },
17288
17288
  {
17289
- "id": 38979,
17289
+ "id": 38983,
17290
17290
  "name": "IERC721Metadata",
17291
17291
  "nameLocations": [
17292
17292
  "2542:15:99"
@@ -17299,17 +17299,17 @@
17299
17299
  "src": "2520:38:99"
17300
17300
  },
17301
17301
  "parameters": {
17302
- "id": 38977,
17302
+ "id": 38981,
17303
17303
  "nodeType": "ParameterList",
17304
17304
  "parameters": [
17305
17305
  {
17306
17306
  "constant": false,
17307
- "id": 38976,
17307
+ "id": 38980,
17308
17308
  "mutability": "mutable",
17309
17309
  "name": "tokenId",
17310
17310
  "nameLocation": "2468:7:99",
17311
17311
  "nodeType": "VariableDeclaration",
17312
- "scope": 38990,
17312
+ "scope": 38994,
17313
17313
  "src": "2460:15:99",
17314
17314
  "stateVariable": false,
17315
17315
  "storageLocation": "default",
@@ -17318,7 +17318,7 @@
17318
17318
  "typeString": "uint256"
17319
17319
  },
17320
17320
  "typeName": {
17321
- "id": 38975,
17321
+ "id": 38979,
17322
17322
  "name": "uint256",
17323
17323
  "nodeType": "ElementaryTypeName",
17324
17324
  "src": "2460:7:99",
@@ -17333,17 +17333,17 @@
17333
17333
  "src": "2450:31:99"
17334
17334
  },
17335
17335
  "returnParameters": {
17336
- "id": 38983,
17336
+ "id": 38987,
17337
17337
  "nodeType": "ParameterList",
17338
17338
  "parameters": [
17339
17339
  {
17340
17340
  "constant": false,
17341
- "id": 38982,
17341
+ "id": 38986,
17342
17342
  "mutability": "mutable",
17343
17343
  "name": "",
17344
17344
  "nameLocation": "-1:-1:-1",
17345
17345
  "nodeType": "VariableDeclaration",
17346
- "scope": 38990,
17346
+ "scope": 38994,
17347
17347
  "src": "2576:13:99",
17348
17348
  "stateVariable": false,
17349
17349
  "storageLocation": "memory",
@@ -17352,7 +17352,7 @@
17352
17352
  "typeString": "string"
17353
17353
  },
17354
17354
  "typeName": {
17355
- "id": 38981,
17355
+ "id": 38985,
17356
17356
  "name": "string",
17357
17357
  "nodeType": "ElementaryTypeName",
17358
17358
  "src": "2576:6:99",
@@ -17366,7 +17366,7 @@
17366
17366
  ],
17367
17367
  "src": "2575:15:99"
17368
17368
  },
17369
- "scope": 39275,
17369
+ "scope": 39279,
17370
17370
  "src": "2433:211:99",
17371
17371
  "stateMutability": "view",
17372
17372
  "virtual": false,
@@ -17374,26 +17374,26 @@
17374
17374
  },
17375
17375
  {
17376
17376
  "baseFunctions": [
17377
- 23674
17377
+ 23677
17378
17378
  ],
17379
17379
  "body": {
17380
- "id": 39042,
17380
+ "id": 39046,
17381
17381
  "nodeType": "Block",
17382
17382
  "src": "3206:486:99",
17383
17383
  "statements": [
17384
17384
  {
17385
17385
  "assignments": [
17386
- 39004
17386
+ 39008
17387
17387
  ],
17388
17388
  "declarations": [
17389
17389
  {
17390
17390
  "constant": false,
17391
- "id": 39004,
17391
+ "id": 39008,
17392
17392
  "mutability": "mutable",
17393
17393
  "name": "newTokenId",
17394
17394
  "nameLocation": "3344:10:99",
17395
17395
  "nodeType": "VariableDeclaration",
17396
- "scope": 39042,
17396
+ "scope": 39046,
17397
17397
  "src": "3336:18:99",
17398
17398
  "stateVariable": false,
17399
17399
  "storageLocation": "default",
@@ -17402,7 +17402,7 @@
17402
17402
  "typeString": "uint256"
17403
17403
  },
17404
17404
  "typeName": {
17405
- "id": 39003,
17405
+ "id": 39007,
17406
17406
  "name": "uint256",
17407
17407
  "nodeType": "ElementaryTypeName",
17408
17408
  "src": "3336:7:99",
@@ -17414,20 +17414,20 @@
17414
17414
  "visibility": "internal"
17415
17415
  }
17416
17416
  ],
17417
- "id": 39013,
17417
+ "id": 39017,
17418
17418
  "initialValue": {
17419
17419
  "arguments": [
17420
17420
  {
17421
17421
  "arguments": [
17422
17422
  {
17423
- "id": 39008,
17423
+ "id": 39012,
17424
17424
  "name": "superToken",
17425
17425
  "nodeType": "Identifier",
17426
17426
  "overloadedDeclarations": [],
17427
- "referencedDeclaration": 38994,
17427
+ "referencedDeclaration": 38998,
17428
17428
  "src": "3390:10:99",
17429
17429
  "typeDescriptions": {
17430
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
17430
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
17431
17431
  "typeString": "contract ISuperfluidToken"
17432
17432
  }
17433
17433
  }
@@ -17435,11 +17435,11 @@
17435
17435
  "expression": {
17436
17436
  "argumentTypes": [
17437
17437
  {
17438
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
17438
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
17439
17439
  "typeString": "contract ISuperfluidToken"
17440
17440
  }
17441
17441
  ],
17442
- "id": 39007,
17442
+ "id": 39011,
17443
17443
  "isConstant": false,
17444
17444
  "isLValue": false,
17445
17445
  "isPure": true,
@@ -17451,14 +17451,14 @@
17451
17451
  "typeString": "type(address)"
17452
17452
  },
17453
17453
  "typeName": {
17454
- "id": 39006,
17454
+ "id": 39010,
17455
17455
  "name": "address",
17456
17456
  "nodeType": "ElementaryTypeName",
17457
17457
  "src": "3382:7:99",
17458
17458
  "typeDescriptions": {}
17459
17459
  }
17460
17460
  },
17461
- "id": 39009,
17461
+ "id": 39013,
17462
17462
  "isConstant": false,
17463
17463
  "isLValue": false,
17464
17464
  "isPure": false,
@@ -17475,11 +17475,11 @@
17475
17475
  }
17476
17476
  },
17477
17477
  {
17478
- "id": 39010,
17478
+ "id": 39014,
17479
17479
  "name": "flowSender",
17480
17480
  "nodeType": "Identifier",
17481
17481
  "overloadedDeclarations": [],
17482
- "referencedDeclaration": 38996,
17482
+ "referencedDeclaration": 39000,
17483
17483
  "src": "3415:10:99",
17484
17484
  "typeDescriptions": {
17485
17485
  "typeIdentifier": "t_address",
@@ -17487,11 +17487,11 @@
17487
17487
  }
17488
17488
  },
17489
17489
  {
17490
- "id": 39011,
17490
+ "id": 39015,
17491
17491
  "name": "flowReceiver",
17492
17492
  "nodeType": "Identifier",
17493
17493
  "overloadedDeclarations": [],
17494
- "referencedDeclaration": 38998,
17494
+ "referencedDeclaration": 39002,
17495
17495
  "src": "3439:12:99",
17496
17496
  "typeDescriptions": {
17497
17497
  "typeIdentifier": "t_address",
@@ -17514,18 +17514,18 @@
17514
17514
  "typeString": "address"
17515
17515
  }
17516
17516
  ],
17517
- "id": 39005,
17517
+ "id": 39009,
17518
17518
  "name": "_getTokenId",
17519
17519
  "nodeType": "Identifier",
17520
17520
  "overloadedDeclarations": [],
17521
- "referencedDeclaration": 39799,
17521
+ "referencedDeclaration": 39803,
17522
17522
  "src": "3357:11:99",
17523
17523
  "typeDescriptions": {
17524
17524
  "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$",
17525
17525
  "typeString": "function (address,address,address) view returns (uint256)"
17526
17526
  }
17527
17527
  },
17528
- "id": 39012,
17528
+ "id": 39016,
17529
17529
  "isConstant": false,
17530
17530
  "isLValue": false,
17531
17531
  "isPure": false,
@@ -17550,7 +17550,7 @@
17550
17550
  "typeIdentifier": "t_address",
17551
17551
  "typeString": "address"
17552
17552
  },
17553
- "id": 39022,
17553
+ "id": 39026,
17554
17554
  "isConstant": false,
17555
17555
  "isLValue": false,
17556
17556
  "isPure": false,
@@ -17558,24 +17558,24 @@
17558
17558
  "leftExpression": {
17559
17559
  "expression": {
17560
17560
  "baseExpression": {
17561
- "id": 39014,
17561
+ "id": 39018,
17562
17562
  "name": "_flowDataByTokenId",
17563
17563
  "nodeType": "Identifier",
17564
17564
  "overloadedDeclarations": [],
17565
- "referencedDeclaration": 38927,
17565
+ "referencedDeclaration": 38931,
17566
17566
  "src": "3475:18:99",
17567
17567
  "typeDescriptions": {
17568
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
17568
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
17569
17569
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData storage ref)"
17570
17570
  }
17571
17571
  },
17572
- "id": 39016,
17572
+ "id": 39020,
17573
17573
  "indexExpression": {
17574
- "id": 39015,
17574
+ "id": 39019,
17575
17575
  "name": "newTokenId",
17576
17576
  "nodeType": "Identifier",
17577
17577
  "overloadedDeclarations": [],
17578
- "referencedDeclaration": 39004,
17578
+ "referencedDeclaration": 39008,
17579
17579
  "src": "3494:10:99",
17580
17580
  "typeDescriptions": {
17581
17581
  "typeIdentifier": "t_uint256",
@@ -17589,11 +17589,11 @@
17589
17589
  "nodeType": "IndexAccess",
17590
17590
  "src": "3475:30:99",
17591
17591
  "typeDescriptions": {
17592
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
17592
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
17593
17593
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
17594
17594
  }
17595
17595
  },
17596
- "id": 39017,
17596
+ "id": 39021,
17597
17597
  "isConstant": false,
17598
17598
  "isLValue": true,
17599
17599
  "isPure": false,
@@ -17601,7 +17601,7 @@
17601
17601
  "memberLocation": "3506:10:99",
17602
17602
  "memberName": "flowSender",
17603
17603
  "nodeType": "MemberAccess",
17604
- "referencedDeclaration": 23709,
17604
+ "referencedDeclaration": 23712,
17605
17605
  "src": "3475:41:99",
17606
17606
  "typeDescriptions": {
17607
17607
  "typeIdentifier": "t_address",
@@ -17614,7 +17614,7 @@
17614
17614
  "arguments": [
17615
17615
  {
17616
17616
  "hexValue": "30",
17617
- "id": 39020,
17617
+ "id": 39024,
17618
17618
  "isConstant": false,
17619
17619
  "isLValue": false,
17620
17620
  "isPure": true,
@@ -17636,7 +17636,7 @@
17636
17636
  "typeString": "int_const 0"
17637
17637
  }
17638
17638
  ],
17639
- "id": 39019,
17639
+ "id": 39023,
17640
17640
  "isConstant": false,
17641
17641
  "isLValue": false,
17642
17642
  "isPure": true,
@@ -17648,14 +17648,14 @@
17648
17648
  "typeString": "type(address)"
17649
17649
  },
17650
17650
  "typeName": {
17651
- "id": 39018,
17651
+ "id": 39022,
17652
17652
  "name": "address",
17653
17653
  "nodeType": "ElementaryTypeName",
17654
17654
  "src": "3520:7:99",
17655
17655
  "typeDescriptions": {}
17656
17656
  }
17657
17657
  },
17658
- "id": 39021,
17658
+ "id": 39025,
17659
17659
  "isConstant": false,
17660
17660
  "isLValue": false,
17661
17661
  "isPure": true,
@@ -17677,11 +17677,11 @@
17677
17677
  "typeString": "bool"
17678
17678
  }
17679
17679
  },
17680
- "id": 39041,
17680
+ "id": 39045,
17681
17681
  "nodeType": "IfStatement",
17682
17682
  "src": "3471:215:99",
17683
17683
  "trueBody": {
17684
- "id": 39040,
17684
+ "id": 39044,
17685
17685
  "nodeType": "Block",
17686
17686
  "src": "3532:154:99",
17687
17687
  "statements": [
@@ -17691,14 +17691,14 @@
17691
17691
  {
17692
17692
  "arguments": [
17693
17693
  {
17694
- "id": 39026,
17694
+ "id": 39030,
17695
17695
  "name": "superToken",
17696
17696
  "nodeType": "Identifier",
17697
17697
  "overloadedDeclarations": [],
17698
- "referencedDeclaration": 38994,
17698
+ "referencedDeclaration": 38998,
17699
17699
  "src": "3560:10:99",
17700
17700
  "typeDescriptions": {
17701
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
17701
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
17702
17702
  "typeString": "contract ISuperfluidToken"
17703
17703
  }
17704
17704
  }
@@ -17706,11 +17706,11 @@
17706
17706
  "expression": {
17707
17707
  "argumentTypes": [
17708
17708
  {
17709
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
17709
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
17710
17710
  "typeString": "contract ISuperfluidToken"
17711
17711
  }
17712
17712
  ],
17713
- "id": 39025,
17713
+ "id": 39029,
17714
17714
  "isConstant": false,
17715
17715
  "isLValue": false,
17716
17716
  "isPure": true,
@@ -17722,14 +17722,14 @@
17722
17722
  "typeString": "type(address)"
17723
17723
  },
17724
17724
  "typeName": {
17725
- "id": 39024,
17725
+ "id": 39028,
17726
17726
  "name": "address",
17727
17727
  "nodeType": "ElementaryTypeName",
17728
17728
  "src": "3552:7:99",
17729
17729
  "typeDescriptions": {}
17730
17730
  }
17731
17731
  },
17732
- "id": 39027,
17732
+ "id": 39031,
17733
17733
  "isConstant": false,
17734
17734
  "isLValue": false,
17735
17735
  "isPure": false,
@@ -17746,11 +17746,11 @@
17746
17746
  }
17747
17747
  },
17748
17748
  {
17749
- "id": 39028,
17749
+ "id": 39032,
17750
17750
  "name": "flowSender",
17751
17751
  "nodeType": "Identifier",
17752
17752
  "overloadedDeclarations": [],
17753
- "referencedDeclaration": 38996,
17753
+ "referencedDeclaration": 39000,
17754
17754
  "src": "3573:10:99",
17755
17755
  "typeDescriptions": {
17756
17756
  "typeIdentifier": "t_address",
@@ -17758,11 +17758,11 @@
17758
17758
  }
17759
17759
  },
17760
17760
  {
17761
- "id": 39029,
17761
+ "id": 39033,
17762
17762
  "name": "flowReceiver",
17763
17763
  "nodeType": "Identifier",
17764
17764
  "overloadedDeclarations": [],
17765
- "referencedDeclaration": 38998,
17765
+ "referencedDeclaration": 39002,
17766
17766
  "src": "3585:12:99",
17767
17767
  "typeDescriptions": {
17768
17768
  "typeIdentifier": "t_address",
@@ -17770,11 +17770,11 @@
17770
17770
  }
17771
17771
  },
17772
17772
  {
17773
- "id": 39030,
17773
+ "id": 39034,
17774
17774
  "name": "newTokenId",
17775
17775
  "nodeType": "Identifier",
17776
17776
  "overloadedDeclarations": [],
17777
- "referencedDeclaration": 39004,
17777
+ "referencedDeclaration": 39008,
17778
17778
  "src": "3599:10:99",
17779
17779
  "typeDescriptions": {
17780
17780
  "typeIdentifier": "t_uint256",
@@ -17801,18 +17801,18 @@
17801
17801
  "typeString": "uint256"
17802
17802
  }
17803
17803
  ],
17804
- "id": 39023,
17804
+ "id": 39027,
17805
17805
  "name": "_mint",
17806
17806
  "nodeType": "Identifier",
17807
17807
  "overloadedDeclarations": [],
17808
- "referencedDeclaration": 39224,
17808
+ "referencedDeclaration": 39228,
17809
17809
  "src": "3546:5:99",
17810
17810
  "typeDescriptions": {
17811
17811
  "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$",
17812
17812
  "typeString": "function (address,address,address,uint256)"
17813
17813
  }
17814
17814
  },
17815
- "id": 39031,
17815
+ "id": 39035,
17816
17816
  "isConstant": false,
17817
17817
  "isLValue": false,
17818
17818
  "isPure": false,
@@ -17828,7 +17828,7 @@
17828
17828
  "typeString": "tuple()"
17829
17829
  }
17830
17830
  },
17831
- "id": 39032,
17831
+ "id": 39036,
17832
17832
  "nodeType": "ExpressionStatement",
17833
17833
  "src": "3546:64:99"
17834
17834
  },
@@ -17836,11 +17836,11 @@
17836
17836
  "expression": {
17837
17837
  "arguments": [
17838
17838
  {
17839
- "id": 39036,
17839
+ "id": 39040,
17840
17840
  "name": "flowReceiver",
17841
17841
  "nodeType": "Identifier",
17842
17842
  "overloadedDeclarations": [],
17843
- "referencedDeclaration": 38998,
17843
+ "referencedDeclaration": 39002,
17844
17844
  "src": "3650:12:99",
17845
17845
  "typeDescriptions": {
17846
17846
  "typeIdentifier": "t_address",
@@ -17848,11 +17848,11 @@
17848
17848
  }
17849
17849
  },
17850
17850
  {
17851
- "id": 39037,
17851
+ "id": 39041,
17852
17852
  "name": "newTokenId",
17853
17853
  "nodeType": "Identifier",
17854
17854
  "overloadedDeclarations": [],
17855
- "referencedDeclaration": 39004,
17855
+ "referencedDeclaration": 39008,
17856
17856
  "src": "3664:10:99",
17857
17857
  "typeDescriptions": {
17858
17858
  "typeIdentifier": "t_uint256",
@@ -17872,18 +17872,18 @@
17872
17872
  }
17873
17873
  ],
17874
17874
  "expression": {
17875
- "id": 39033,
17875
+ "id": 39037,
17876
17876
  "name": "CONSTANT_INFLOW_NFT",
17877
17877
  "nodeType": "Identifier",
17878
17878
  "overloadedDeclarations": [],
17879
- "referencedDeclaration": 38921,
17879
+ "referencedDeclaration": 38925,
17880
17880
  "src": "3625:19:99",
17881
17881
  "typeDescriptions": {
17882
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
17882
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
17883
17883
  "typeString": "contract IConstantInflowNFT"
17884
17884
  }
17885
17885
  },
17886
- "id": 39035,
17886
+ "id": 39039,
17887
17887
  "isConstant": false,
17888
17888
  "isLValue": false,
17889
17889
  "isPure": false,
@@ -17891,14 +17891,14 @@
17891
17891
  "memberLocation": "3645:4:99",
17892
17892
  "memberName": "mint",
17893
17893
  "nodeType": "MemberAccess",
17894
- "referencedDeclaration": 23636,
17894
+ "referencedDeclaration": 23639,
17895
17895
  "src": "3625:24:99",
17896
17896
  "typeDescriptions": {
17897
17897
  "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
17898
17898
  "typeString": "function (address,uint256) external"
17899
17899
  }
17900
17900
  },
17901
- "id": 39038,
17901
+ "id": 39042,
17902
17902
  "isConstant": false,
17903
17903
  "isLValue": false,
17904
17904
  "isPure": false,
@@ -17914,7 +17914,7 @@
17914
17914
  "typeString": "tuple()"
17915
17915
  }
17916
17916
  },
17917
- "id": 39039,
17917
+ "id": 39043,
17918
17918
  "nodeType": "ExpressionStatement",
17919
17919
  "src": "3625:50:99"
17920
17920
  }
@@ -17924,27 +17924,27 @@
17924
17924
  ]
17925
17925
  },
17926
17926
  "documentation": {
17927
- "id": 38991,
17927
+ "id": 38995,
17928
17928
  "nodeType": "StructuredDocumentation",
17929
17929
  "src": "2650:404:99",
17930
17930
  "text": "@notice Hook called by CFA contract on flow creation\n @dev This function mints the COF NFT to the flow sender and mints the CIF NFT to the flow receiver\n @param superToken the SuperToken contract address\n @param flowSender the flow sender\n @param flowReceiver the flow receiver\n NOTE: We do an existence check in here to determine whether or not to execute the hook"
17931
17931
  },
17932
17932
  "functionSelector": "f7e3d983",
17933
- "id": 39043,
17933
+ "id": 39047,
17934
17934
  "implemented": true,
17935
17935
  "kind": "function",
17936
17936
  "modifiers": [
17937
17937
  {
17938
- "id": 39001,
17938
+ "id": 39005,
17939
17939
  "kind": "modifierInvocation",
17940
17940
  "modifierName": {
17941
- "id": 39000,
17941
+ "id": 39004,
17942
17942
  "name": "onlyFlowAgreements",
17943
17943
  "nameLocations": [
17944
17944
  "3187:18:99"
17945
17945
  ],
17946
17946
  "nodeType": "IdentifierPath",
17947
- "referencedDeclaration": 39274,
17947
+ "referencedDeclaration": 39278,
17948
17948
  "src": "3187:18:99"
17949
17949
  },
17950
17950
  "nodeType": "ModifierInvocation",
@@ -17955,41 +17955,41 @@
17955
17955
  "nameLocation": "3068:8:99",
17956
17956
  "nodeType": "FunctionDefinition",
17957
17957
  "parameters": {
17958
- "id": 38999,
17958
+ "id": 39003,
17959
17959
  "nodeType": "ParameterList",
17960
17960
  "parameters": [
17961
17961
  {
17962
17962
  "constant": false,
17963
- "id": 38994,
17963
+ "id": 38998,
17964
17964
  "mutability": "mutable",
17965
17965
  "name": "superToken",
17966
17966
  "nameLocation": "3103:10:99",
17967
17967
  "nodeType": "VariableDeclaration",
17968
- "scope": 39043,
17968
+ "scope": 39047,
17969
17969
  "src": "3086:27:99",
17970
17970
  "stateVariable": false,
17971
17971
  "storageLocation": "default",
17972
17972
  "typeDescriptions": {
17973
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
17973
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
17974
17974
  "typeString": "contract ISuperfluidToken"
17975
17975
  },
17976
17976
  "typeName": {
17977
- "id": 38993,
17977
+ "id": 38997,
17978
17978
  "nodeType": "UserDefinedTypeName",
17979
17979
  "pathNode": {
17980
- "id": 38992,
17980
+ "id": 38996,
17981
17981
  "name": "ISuperfluidToken",
17982
17982
  "nameLocations": [
17983
17983
  "3086:16:99"
17984
17984
  ],
17985
17985
  "nodeType": "IdentifierPath",
17986
- "referencedDeclaration": 25463,
17986
+ "referencedDeclaration": 25466,
17987
17987
  "src": "3086:16:99"
17988
17988
  },
17989
- "referencedDeclaration": 25463,
17989
+ "referencedDeclaration": 25466,
17990
17990
  "src": "3086:16:99",
17991
17991
  "typeDescriptions": {
17992
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
17992
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
17993
17993
  "typeString": "contract ISuperfluidToken"
17994
17994
  }
17995
17995
  },
@@ -17997,12 +17997,12 @@
17997
17997
  },
17998
17998
  {
17999
17999
  "constant": false,
18000
- "id": 38996,
18000
+ "id": 39000,
18001
18001
  "mutability": "mutable",
18002
18002
  "name": "flowSender",
18003
18003
  "nameLocation": "3131:10:99",
18004
18004
  "nodeType": "VariableDeclaration",
18005
- "scope": 39043,
18005
+ "scope": 39047,
18006
18006
  "src": "3123:18:99",
18007
18007
  "stateVariable": false,
18008
18008
  "storageLocation": "default",
@@ -18011,7 +18011,7 @@
18011
18011
  "typeString": "address"
18012
18012
  },
18013
18013
  "typeName": {
18014
- "id": 38995,
18014
+ "id": 38999,
18015
18015
  "name": "address",
18016
18016
  "nodeType": "ElementaryTypeName",
18017
18017
  "src": "3123:7:99",
@@ -18025,12 +18025,12 @@
18025
18025
  },
18026
18026
  {
18027
18027
  "constant": false,
18028
- "id": 38998,
18028
+ "id": 39002,
18029
18029
  "mutability": "mutable",
18030
18030
  "name": "flowReceiver",
18031
18031
  "nameLocation": "3159:12:99",
18032
18032
  "nodeType": "VariableDeclaration",
18033
- "scope": 39043,
18033
+ "scope": 39047,
18034
18034
  "src": "3151:20:99",
18035
18035
  "stateVariable": false,
18036
18036
  "storageLocation": "default",
@@ -18039,7 +18039,7 @@
18039
18039
  "typeString": "address"
18040
18040
  },
18041
18041
  "typeName": {
18042
- "id": 38997,
18042
+ "id": 39001,
18043
18043
  "name": "address",
18044
18044
  "nodeType": "ElementaryTypeName",
18045
18045
  "src": "3151:7:99",
@@ -18055,12 +18055,12 @@
18055
18055
  "src": "3076:101:99"
18056
18056
  },
18057
18057
  "returnParameters": {
18058
- "id": 39002,
18058
+ "id": 39006,
18059
18059
  "nodeType": "ParameterList",
18060
18060
  "parameters": [],
18061
18061
  "src": "3206:0:99"
18062
18062
  },
18063
- "scope": 39275,
18063
+ "scope": 39279,
18064
18064
  "src": "3059:633:99",
18065
18065
  "stateMutability": "nonpayable",
18066
18066
  "virtual": false,
@@ -18068,26 +18068,26 @@
18068
18068
  },
18069
18069
  {
18070
18070
  "baseFunctions": [
18071
- 23685
18071
+ 23688
18072
18072
  ],
18073
18073
  "body": {
18074
- "id": 39088,
18074
+ "id": 39092,
18075
18075
  "nodeType": "Block",
18076
18076
  "src": "4226:327:99",
18077
18077
  "statements": [
18078
18078
  {
18079
18079
  "assignments": [
18080
- 39057
18080
+ 39061
18081
18081
  ],
18082
18082
  "declarations": [
18083
18083
  {
18084
18084
  "constant": false,
18085
- "id": 39057,
18085
+ "id": 39061,
18086
18086
  "mutability": "mutable",
18087
18087
  "name": "tokenId",
18088
18088
  "nameLocation": "4244:7:99",
18089
18089
  "nodeType": "VariableDeclaration",
18090
- "scope": 39088,
18090
+ "scope": 39092,
18091
18091
  "src": "4236:15:99",
18092
18092
  "stateVariable": false,
18093
18093
  "storageLocation": "default",
@@ -18096,7 +18096,7 @@
18096
18096
  "typeString": "uint256"
18097
18097
  },
18098
18098
  "typeName": {
18099
- "id": 39056,
18099
+ "id": 39060,
18100
18100
  "name": "uint256",
18101
18101
  "nodeType": "ElementaryTypeName",
18102
18102
  "src": "4236:7:99",
@@ -18108,20 +18108,20 @@
18108
18108
  "visibility": "internal"
18109
18109
  }
18110
18110
  ],
18111
- "id": 39066,
18111
+ "id": 39070,
18112
18112
  "initialValue": {
18113
18113
  "arguments": [
18114
18114
  {
18115
18115
  "arguments": [
18116
18116
  {
18117
- "id": 39061,
18117
+ "id": 39065,
18118
18118
  "name": "superToken",
18119
18119
  "nodeType": "Identifier",
18120
18120
  "overloadedDeclarations": [],
18121
- "referencedDeclaration": 39047,
18121
+ "referencedDeclaration": 39051,
18122
18122
  "src": "4287:10:99",
18123
18123
  "typeDescriptions": {
18124
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
18124
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
18125
18125
  "typeString": "contract ISuperfluidToken"
18126
18126
  }
18127
18127
  }
@@ -18129,11 +18129,11 @@
18129
18129
  "expression": {
18130
18130
  "argumentTypes": [
18131
18131
  {
18132
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
18132
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
18133
18133
  "typeString": "contract ISuperfluidToken"
18134
18134
  }
18135
18135
  ],
18136
- "id": 39060,
18136
+ "id": 39064,
18137
18137
  "isConstant": false,
18138
18138
  "isLValue": false,
18139
18139
  "isPure": true,
@@ -18145,14 +18145,14 @@
18145
18145
  "typeString": "type(address)"
18146
18146
  },
18147
18147
  "typeName": {
18148
- "id": 39059,
18148
+ "id": 39063,
18149
18149
  "name": "address",
18150
18150
  "nodeType": "ElementaryTypeName",
18151
18151
  "src": "4279:7:99",
18152
18152
  "typeDescriptions": {}
18153
18153
  }
18154
18154
  },
18155
- "id": 39062,
18155
+ "id": 39066,
18156
18156
  "isConstant": false,
18157
18157
  "isLValue": false,
18158
18158
  "isPure": false,
@@ -18169,11 +18169,11 @@
18169
18169
  }
18170
18170
  },
18171
18171
  {
18172
- "id": 39063,
18172
+ "id": 39067,
18173
18173
  "name": "flowSender",
18174
18174
  "nodeType": "Identifier",
18175
18175
  "overloadedDeclarations": [],
18176
- "referencedDeclaration": 39049,
18176
+ "referencedDeclaration": 39053,
18177
18177
  "src": "4312:10:99",
18178
18178
  "typeDescriptions": {
18179
18179
  "typeIdentifier": "t_address",
@@ -18181,11 +18181,11 @@
18181
18181
  }
18182
18182
  },
18183
18183
  {
18184
- "id": 39064,
18184
+ "id": 39068,
18185
18185
  "name": "flowReceiver",
18186
18186
  "nodeType": "Identifier",
18187
18187
  "overloadedDeclarations": [],
18188
- "referencedDeclaration": 39051,
18188
+ "referencedDeclaration": 39055,
18189
18189
  "src": "4336:12:99",
18190
18190
  "typeDescriptions": {
18191
18191
  "typeIdentifier": "t_address",
@@ -18208,18 +18208,18 @@
18208
18208
  "typeString": "address"
18209
18209
  }
18210
18210
  ],
18211
- "id": 39058,
18211
+ "id": 39062,
18212
18212
  "name": "_getTokenId",
18213
18213
  "nodeType": "Identifier",
18214
18214
  "overloadedDeclarations": [],
18215
- "referencedDeclaration": 39799,
18215
+ "referencedDeclaration": 39803,
18216
18216
  "src": "4254:11:99",
18217
18217
  "typeDescriptions": {
18218
18218
  "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$",
18219
18219
  "typeString": "function (address,address,address) view returns (uint256)"
18220
18220
  }
18221
18221
  },
18222
- "id": 39065,
18222
+ "id": 39069,
18223
18223
  "isConstant": false,
18224
18224
  "isLValue": false,
18225
18225
  "isPure": false,
@@ -18244,7 +18244,7 @@
18244
18244
  "typeIdentifier": "t_address",
18245
18245
  "typeString": "address"
18246
18246
  },
18247
- "id": 39075,
18247
+ "id": 39079,
18248
18248
  "isConstant": false,
18249
18249
  "isLValue": false,
18250
18250
  "isPure": false,
@@ -18252,24 +18252,24 @@
18252
18252
  "leftExpression": {
18253
18253
  "expression": {
18254
18254
  "baseExpression": {
18255
- "id": 39067,
18255
+ "id": 39071,
18256
18256
  "name": "_flowDataByTokenId",
18257
18257
  "nodeType": "Identifier",
18258
18258
  "overloadedDeclarations": [],
18259
- "referencedDeclaration": 38927,
18259
+ "referencedDeclaration": 38931,
18260
18260
  "src": "4372:18:99",
18261
18261
  "typeDescriptions": {
18262
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
18262
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
18263
18263
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData storage ref)"
18264
18264
  }
18265
18265
  },
18266
- "id": 39069,
18266
+ "id": 39073,
18267
18267
  "indexExpression": {
18268
- "id": 39068,
18268
+ "id": 39072,
18269
18269
  "name": "tokenId",
18270
18270
  "nodeType": "Identifier",
18271
18271
  "overloadedDeclarations": [],
18272
- "referencedDeclaration": 39057,
18272
+ "referencedDeclaration": 39061,
18273
18273
  "src": "4391:7:99",
18274
18274
  "typeDescriptions": {
18275
18275
  "typeIdentifier": "t_uint256",
@@ -18283,11 +18283,11 @@
18283
18283
  "nodeType": "IndexAccess",
18284
18284
  "src": "4372:27:99",
18285
18285
  "typeDescriptions": {
18286
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
18286
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
18287
18287
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
18288
18288
  }
18289
18289
  },
18290
- "id": 39070,
18290
+ "id": 39074,
18291
18291
  "isConstant": false,
18292
18292
  "isLValue": true,
18293
18293
  "isPure": false,
@@ -18295,7 +18295,7 @@
18295
18295
  "memberLocation": "4400:10:99",
18296
18296
  "memberName": "flowSender",
18297
18297
  "nodeType": "MemberAccess",
18298
- "referencedDeclaration": 23709,
18298
+ "referencedDeclaration": 23712,
18299
18299
  "src": "4372:38:99",
18300
18300
  "typeDescriptions": {
18301
18301
  "typeIdentifier": "t_address",
@@ -18308,7 +18308,7 @@
18308
18308
  "arguments": [
18309
18309
  {
18310
18310
  "hexValue": "30",
18311
- "id": 39073,
18311
+ "id": 39077,
18312
18312
  "isConstant": false,
18313
18313
  "isLValue": false,
18314
18314
  "isPure": true,
@@ -18330,7 +18330,7 @@
18330
18330
  "typeString": "int_const 0"
18331
18331
  }
18332
18332
  ],
18333
- "id": 39072,
18333
+ "id": 39076,
18334
18334
  "isConstant": false,
18335
18335
  "isLValue": false,
18336
18336
  "isPure": true,
@@ -18342,14 +18342,14 @@
18342
18342
  "typeString": "type(address)"
18343
18343
  },
18344
18344
  "typeName": {
18345
- "id": 39071,
18345
+ "id": 39075,
18346
18346
  "name": "address",
18347
18347
  "nodeType": "ElementaryTypeName",
18348
18348
  "src": "4414:7:99",
18349
18349
  "typeDescriptions": {}
18350
18350
  }
18351
18351
  },
18352
- "id": 39074,
18352
+ "id": 39078,
18353
18353
  "isConstant": false,
18354
18354
  "isLValue": false,
18355
18355
  "isPure": true,
@@ -18371,11 +18371,11 @@
18371
18371
  "typeString": "bool"
18372
18372
  }
18373
18373
  },
18374
- "id": 39087,
18374
+ "id": 39091,
18375
18375
  "nodeType": "IfStatement",
18376
18376
  "src": "4368:179:99",
18377
18377
  "trueBody": {
18378
- "id": 39086,
18378
+ "id": 39090,
18379
18379
  "nodeType": "Block",
18380
18380
  "src": "4426:121:99",
18381
18381
  "statements": [
@@ -18383,11 +18383,11 @@
18383
18383
  "expression": {
18384
18384
  "arguments": [
18385
18385
  {
18386
- "id": 39077,
18386
+ "id": 39081,
18387
18387
  "name": "tokenId",
18388
18388
  "nodeType": "Identifier",
18389
18389
  "overloadedDeclarations": [],
18390
- "referencedDeclaration": 39057,
18390
+ "referencedDeclaration": 39061,
18391
18391
  "src": "4463:7:99",
18392
18392
  "typeDescriptions": {
18393
18393
  "typeIdentifier": "t_uint256",
@@ -18402,18 +18402,18 @@
18402
18402
  "typeString": "uint256"
18403
18403
  }
18404
18404
  ],
18405
- "id": 39076,
18405
+ "id": 39080,
18406
18406
  "name": "_triggerMetadataUpdate",
18407
18407
  "nodeType": "Identifier",
18408
18408
  "overloadedDeclarations": [],
18409
- "referencedDeclaration": 40009,
18409
+ "referencedDeclaration": 40013,
18410
18410
  "src": "4440:22:99",
18411
18411
  "typeDescriptions": {
18412
18412
  "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
18413
18413
  "typeString": "function (uint256)"
18414
18414
  }
18415
18415
  },
18416
- "id": 39078,
18416
+ "id": 39082,
18417
18417
  "isConstant": false,
18418
18418
  "isLValue": false,
18419
18419
  "isPure": false,
@@ -18429,7 +18429,7 @@
18429
18429
  "typeString": "tuple()"
18430
18430
  }
18431
18431
  },
18432
- "id": 39079,
18432
+ "id": 39083,
18433
18433
  "nodeType": "ExpressionStatement",
18434
18434
  "src": "4440:31:99"
18435
18435
  },
@@ -18437,11 +18437,11 @@
18437
18437
  "expression": {
18438
18438
  "arguments": [
18439
18439
  {
18440
- "id": 39083,
18440
+ "id": 39087,
18441
18441
  "name": "tokenId",
18442
18442
  "nodeType": "Identifier",
18443
18443
  "overloadedDeclarations": [],
18444
- "referencedDeclaration": 39057,
18444
+ "referencedDeclaration": 39061,
18445
18445
  "src": "4528:7:99",
18446
18446
  "typeDescriptions": {
18447
18447
  "typeIdentifier": "t_uint256",
@@ -18457,18 +18457,18 @@
18457
18457
  }
18458
18458
  ],
18459
18459
  "expression": {
18460
- "id": 39080,
18460
+ "id": 39084,
18461
18461
  "name": "CONSTANT_INFLOW_NFT",
18462
18462
  "nodeType": "Identifier",
18463
18463
  "overloadedDeclarations": [],
18464
- "referencedDeclaration": 38921,
18464
+ "referencedDeclaration": 38925,
18465
18465
  "src": "4486:19:99",
18466
18466
  "typeDescriptions": {
18467
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
18467
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
18468
18468
  "typeString": "contract IConstantInflowNFT"
18469
18469
  }
18470
18470
  },
18471
- "id": 39082,
18471
+ "id": 39086,
18472
18472
  "isConstant": false,
18473
18473
  "isLValue": false,
18474
18474
  "isPure": false,
@@ -18476,14 +18476,14 @@
18476
18476
  "memberLocation": "4506:21:99",
18477
18477
  "memberName": "triggerMetadataUpdate",
18478
18478
  "nodeType": "MemberAccess",
18479
- "referencedDeclaration": 23770,
18479
+ "referencedDeclaration": 23773,
18480
18480
  "src": "4486:41:99",
18481
18481
  "typeDescriptions": {
18482
18482
  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
18483
18483
  "typeString": "function (uint256) external"
18484
18484
  }
18485
18485
  },
18486
- "id": 39084,
18486
+ "id": 39088,
18487
18487
  "isConstant": false,
18488
18488
  "isLValue": false,
18489
18489
  "isPure": false,
@@ -18499,7 +18499,7 @@
18499
18499
  "typeString": "tuple()"
18500
18500
  }
18501
18501
  },
18502
- "id": 39085,
18502
+ "id": 39089,
18503
18503
  "nodeType": "ExpressionStatement",
18504
18504
  "src": "4486:50:99"
18505
18505
  }
@@ -18509,27 +18509,27 @@
18509
18509
  ]
18510
18510
  },
18511
18511
  "documentation": {
18512
- "id": 39044,
18512
+ "id": 39048,
18513
18513
  "nodeType": "StructuredDocumentation",
18514
18514
  "src": "3698:376:99",
18515
18515
  "text": "@notice Hook called by CFA contract on flow update\n @dev This function triggers the metadata update of both COF and CIF NFTs\n @param superToken the SuperToken contract address\n @param flowSender the flow sender\n @param flowReceiver the flow receiver\n NOTE: We do an existence check in here to determine whether or not to execute the hook"
18516
18516
  },
18517
18517
  "functionSelector": "eb54a7ca",
18518
- "id": 39089,
18518
+ "id": 39093,
18519
18519
  "implemented": true,
18520
18520
  "kind": "function",
18521
18521
  "modifiers": [
18522
18522
  {
18523
- "id": 39054,
18523
+ "id": 39058,
18524
18524
  "kind": "modifierInvocation",
18525
18525
  "modifierName": {
18526
- "id": 39053,
18526
+ "id": 39057,
18527
18527
  "name": "onlyFlowAgreements",
18528
18528
  "nameLocations": [
18529
18529
  "4207:18:99"
18530
18530
  ],
18531
18531
  "nodeType": "IdentifierPath",
18532
- "referencedDeclaration": 39274,
18532
+ "referencedDeclaration": 39278,
18533
18533
  "src": "4207:18:99"
18534
18534
  },
18535
18535
  "nodeType": "ModifierInvocation",
@@ -18540,41 +18540,41 @@
18540
18540
  "nameLocation": "4088:8:99",
18541
18541
  "nodeType": "FunctionDefinition",
18542
18542
  "parameters": {
18543
- "id": 39052,
18543
+ "id": 39056,
18544
18544
  "nodeType": "ParameterList",
18545
18545
  "parameters": [
18546
18546
  {
18547
18547
  "constant": false,
18548
- "id": 39047,
18548
+ "id": 39051,
18549
18549
  "mutability": "mutable",
18550
18550
  "name": "superToken",
18551
18551
  "nameLocation": "4123:10:99",
18552
18552
  "nodeType": "VariableDeclaration",
18553
- "scope": 39089,
18553
+ "scope": 39093,
18554
18554
  "src": "4106:27:99",
18555
18555
  "stateVariable": false,
18556
18556
  "storageLocation": "default",
18557
18557
  "typeDescriptions": {
18558
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
18558
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
18559
18559
  "typeString": "contract ISuperfluidToken"
18560
18560
  },
18561
18561
  "typeName": {
18562
- "id": 39046,
18562
+ "id": 39050,
18563
18563
  "nodeType": "UserDefinedTypeName",
18564
18564
  "pathNode": {
18565
- "id": 39045,
18565
+ "id": 39049,
18566
18566
  "name": "ISuperfluidToken",
18567
18567
  "nameLocations": [
18568
18568
  "4106:16:99"
18569
18569
  ],
18570
18570
  "nodeType": "IdentifierPath",
18571
- "referencedDeclaration": 25463,
18571
+ "referencedDeclaration": 25466,
18572
18572
  "src": "4106:16:99"
18573
18573
  },
18574
- "referencedDeclaration": 25463,
18574
+ "referencedDeclaration": 25466,
18575
18575
  "src": "4106:16:99",
18576
18576
  "typeDescriptions": {
18577
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
18577
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
18578
18578
  "typeString": "contract ISuperfluidToken"
18579
18579
  }
18580
18580
  },
@@ -18582,12 +18582,12 @@
18582
18582
  },
18583
18583
  {
18584
18584
  "constant": false,
18585
- "id": 39049,
18585
+ "id": 39053,
18586
18586
  "mutability": "mutable",
18587
18587
  "name": "flowSender",
18588
18588
  "nameLocation": "4151:10:99",
18589
18589
  "nodeType": "VariableDeclaration",
18590
- "scope": 39089,
18590
+ "scope": 39093,
18591
18591
  "src": "4143:18:99",
18592
18592
  "stateVariable": false,
18593
18593
  "storageLocation": "default",
@@ -18596,7 +18596,7 @@
18596
18596
  "typeString": "address"
18597
18597
  },
18598
18598
  "typeName": {
18599
- "id": 39048,
18599
+ "id": 39052,
18600
18600
  "name": "address",
18601
18601
  "nodeType": "ElementaryTypeName",
18602
18602
  "src": "4143:7:99",
@@ -18610,12 +18610,12 @@
18610
18610
  },
18611
18611
  {
18612
18612
  "constant": false,
18613
- "id": 39051,
18613
+ "id": 39055,
18614
18614
  "mutability": "mutable",
18615
18615
  "name": "flowReceiver",
18616
18616
  "nameLocation": "4179:12:99",
18617
18617
  "nodeType": "VariableDeclaration",
18618
- "scope": 39089,
18618
+ "scope": 39093,
18619
18619
  "src": "4171:20:99",
18620
18620
  "stateVariable": false,
18621
18621
  "storageLocation": "default",
@@ -18624,7 +18624,7 @@
18624
18624
  "typeString": "address"
18625
18625
  },
18626
18626
  "typeName": {
18627
- "id": 39050,
18627
+ "id": 39054,
18628
18628
  "name": "address",
18629
18629
  "nodeType": "ElementaryTypeName",
18630
18630
  "src": "4171:7:99",
@@ -18640,12 +18640,12 @@
18640
18640
  "src": "4096:101:99"
18641
18641
  },
18642
18642
  "returnParameters": {
18643
- "id": 39055,
18643
+ "id": 39059,
18644
18644
  "nodeType": "ParameterList",
18645
18645
  "parameters": [],
18646
18646
  "src": "4226:0:99"
18647
18647
  },
18648
- "scope": 39275,
18648
+ "scope": 39279,
18649
18649
  "src": "4079:474:99",
18650
18650
  "stateMutability": "nonpayable",
18651
18651
  "virtual": false,
@@ -18653,26 +18653,26 @@
18653
18653
  },
18654
18654
  {
18655
18655
  "baseFunctions": [
18656
- 23696
18656
+ 23699
18657
18657
  ],
18658
18658
  "body": {
18659
- "id": 39134,
18659
+ "id": 39138,
18660
18660
  "nodeType": "Block",
18661
18661
  "src": "5075:388:99",
18662
18662
  "statements": [
18663
18663
  {
18664
18664
  "assignments": [
18665
- 39103
18665
+ 39107
18666
18666
  ],
18667
18667
  "declarations": [
18668
18668
  {
18669
18669
  "constant": false,
18670
- "id": 39103,
18670
+ "id": 39107,
18671
18671
  "mutability": "mutable",
18672
18672
  "name": "tokenId",
18673
18673
  "nameLocation": "5093:7:99",
18674
18674
  "nodeType": "VariableDeclaration",
18675
- "scope": 39134,
18675
+ "scope": 39138,
18676
18676
  "src": "5085:15:99",
18677
18677
  "stateVariable": false,
18678
18678
  "storageLocation": "default",
@@ -18681,7 +18681,7 @@
18681
18681
  "typeString": "uint256"
18682
18682
  },
18683
18683
  "typeName": {
18684
- "id": 39102,
18684
+ "id": 39106,
18685
18685
  "name": "uint256",
18686
18686
  "nodeType": "ElementaryTypeName",
18687
18687
  "src": "5085:7:99",
@@ -18693,20 +18693,20 @@
18693
18693
  "visibility": "internal"
18694
18694
  }
18695
18695
  ],
18696
- "id": 39112,
18696
+ "id": 39116,
18697
18697
  "initialValue": {
18698
18698
  "arguments": [
18699
18699
  {
18700
18700
  "arguments": [
18701
18701
  {
18702
- "id": 39107,
18702
+ "id": 39111,
18703
18703
  "name": "superToken",
18704
18704
  "nodeType": "Identifier",
18705
18705
  "overloadedDeclarations": [],
18706
- "referencedDeclaration": 39093,
18706
+ "referencedDeclaration": 39097,
18707
18707
  "src": "5136:10:99",
18708
18708
  "typeDescriptions": {
18709
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
18709
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
18710
18710
  "typeString": "contract ISuperfluidToken"
18711
18711
  }
18712
18712
  }
@@ -18714,11 +18714,11 @@
18714
18714
  "expression": {
18715
18715
  "argumentTypes": [
18716
18716
  {
18717
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
18717
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
18718
18718
  "typeString": "contract ISuperfluidToken"
18719
18719
  }
18720
18720
  ],
18721
- "id": 39106,
18721
+ "id": 39110,
18722
18722
  "isConstant": false,
18723
18723
  "isLValue": false,
18724
18724
  "isPure": true,
@@ -18730,14 +18730,14 @@
18730
18730
  "typeString": "type(address)"
18731
18731
  },
18732
18732
  "typeName": {
18733
- "id": 39105,
18733
+ "id": 39109,
18734
18734
  "name": "address",
18735
18735
  "nodeType": "ElementaryTypeName",
18736
18736
  "src": "5128:7:99",
18737
18737
  "typeDescriptions": {}
18738
18738
  }
18739
18739
  },
18740
- "id": 39108,
18740
+ "id": 39112,
18741
18741
  "isConstant": false,
18742
18742
  "isLValue": false,
18743
18743
  "isPure": false,
@@ -18754,11 +18754,11 @@
18754
18754
  }
18755
18755
  },
18756
18756
  {
18757
- "id": 39109,
18757
+ "id": 39113,
18758
18758
  "name": "flowSender",
18759
18759
  "nodeType": "Identifier",
18760
18760
  "overloadedDeclarations": [],
18761
- "referencedDeclaration": 39095,
18761
+ "referencedDeclaration": 39099,
18762
18762
  "src": "5161:10:99",
18763
18763
  "typeDescriptions": {
18764
18764
  "typeIdentifier": "t_address",
@@ -18766,11 +18766,11 @@
18766
18766
  }
18767
18767
  },
18768
18768
  {
18769
- "id": 39110,
18769
+ "id": 39114,
18770
18770
  "name": "flowReceiver",
18771
18771
  "nodeType": "Identifier",
18772
18772
  "overloadedDeclarations": [],
18773
- "referencedDeclaration": 39097,
18773
+ "referencedDeclaration": 39101,
18774
18774
  "src": "5185:12:99",
18775
18775
  "typeDescriptions": {
18776
18776
  "typeIdentifier": "t_address",
@@ -18793,18 +18793,18 @@
18793
18793
  "typeString": "address"
18794
18794
  }
18795
18795
  ],
18796
- "id": 39104,
18796
+ "id": 39108,
18797
18797
  "name": "_getTokenId",
18798
18798
  "nodeType": "Identifier",
18799
18799
  "overloadedDeclarations": [],
18800
- "referencedDeclaration": 39799,
18800
+ "referencedDeclaration": 39803,
18801
18801
  "src": "5103:11:99",
18802
18802
  "typeDescriptions": {
18803
18803
  "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$_t_address_$returns$_t_uint256_$",
18804
18804
  "typeString": "function (address,address,address) view returns (uint256)"
18805
18805
  }
18806
18806
  },
18807
- "id": 39111,
18807
+ "id": 39115,
18808
18808
  "isConstant": false,
18809
18809
  "isLValue": false,
18810
18810
  "isPure": false,
@@ -18829,7 +18829,7 @@
18829
18829
  "typeIdentifier": "t_address",
18830
18830
  "typeString": "address"
18831
18831
  },
18832
- "id": 39121,
18832
+ "id": 39125,
18833
18833
  "isConstant": false,
18834
18834
  "isLValue": false,
18835
18835
  "isPure": false,
@@ -18837,24 +18837,24 @@
18837
18837
  "leftExpression": {
18838
18838
  "expression": {
18839
18839
  "baseExpression": {
18840
- "id": 39113,
18840
+ "id": 39117,
18841
18841
  "name": "_flowDataByTokenId",
18842
18842
  "nodeType": "Identifier",
18843
18843
  "overloadedDeclarations": [],
18844
- "referencedDeclaration": 38927,
18844
+ "referencedDeclaration": 38931,
18845
18845
  "src": "5221:18:99",
18846
18846
  "typeDescriptions": {
18847
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
18847
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
18848
18848
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData storage ref)"
18849
18849
  }
18850
18850
  },
18851
- "id": 39115,
18851
+ "id": 39119,
18852
18852
  "indexExpression": {
18853
- "id": 39114,
18853
+ "id": 39118,
18854
18854
  "name": "tokenId",
18855
18855
  "nodeType": "Identifier",
18856
18856
  "overloadedDeclarations": [],
18857
- "referencedDeclaration": 39103,
18857
+ "referencedDeclaration": 39107,
18858
18858
  "src": "5240:7:99",
18859
18859
  "typeDescriptions": {
18860
18860
  "typeIdentifier": "t_uint256",
@@ -18868,11 +18868,11 @@
18868
18868
  "nodeType": "IndexAccess",
18869
18869
  "src": "5221:27:99",
18870
18870
  "typeDescriptions": {
18871
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
18871
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
18872
18872
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
18873
18873
  }
18874
18874
  },
18875
- "id": 39116,
18875
+ "id": 39120,
18876
18876
  "isConstant": false,
18877
18877
  "isLValue": true,
18878
18878
  "isPure": false,
@@ -18880,7 +18880,7 @@
18880
18880
  "memberLocation": "5249:10:99",
18881
18881
  "memberName": "flowSender",
18882
18882
  "nodeType": "MemberAccess",
18883
- "referencedDeclaration": 23709,
18883
+ "referencedDeclaration": 23712,
18884
18884
  "src": "5221:38:99",
18885
18885
  "typeDescriptions": {
18886
18886
  "typeIdentifier": "t_address",
@@ -18893,7 +18893,7 @@
18893
18893
  "arguments": [
18894
18894
  {
18895
18895
  "hexValue": "30",
18896
- "id": 39119,
18896
+ "id": 39123,
18897
18897
  "isConstant": false,
18898
18898
  "isLValue": false,
18899
18899
  "isPure": true,
@@ -18915,7 +18915,7 @@
18915
18915
  "typeString": "int_const 0"
18916
18916
  }
18917
18917
  ],
18918
- "id": 39118,
18918
+ "id": 39122,
18919
18919
  "isConstant": false,
18920
18920
  "isLValue": false,
18921
18921
  "isPure": true,
@@ -18927,14 +18927,14 @@
18927
18927
  "typeString": "type(address)"
18928
18928
  },
18929
18929
  "typeName": {
18930
- "id": 39117,
18930
+ "id": 39121,
18931
18931
  "name": "address",
18932
18932
  "nodeType": "ElementaryTypeName",
18933
18933
  "src": "5263:7:99",
18934
18934
  "typeDescriptions": {}
18935
18935
  }
18936
18936
  },
18937
- "id": 39120,
18937
+ "id": 39124,
18938
18938
  "isConstant": false,
18939
18939
  "isLValue": false,
18940
18940
  "isPure": true,
@@ -18956,11 +18956,11 @@
18956
18956
  "typeString": "bool"
18957
18957
  }
18958
18958
  },
18959
- "id": 39133,
18959
+ "id": 39137,
18960
18960
  "nodeType": "IfStatement",
18961
18961
  "src": "5217:240:99",
18962
18962
  "trueBody": {
18963
- "id": 39132,
18963
+ "id": 39136,
18964
18964
  "nodeType": "Block",
18965
18965
  "src": "5275:182:99",
18966
18966
  "statements": [
@@ -18968,11 +18968,11 @@
18968
18968
  "expression": {
18969
18969
  "arguments": [
18970
18970
  {
18971
- "id": 39125,
18971
+ "id": 39129,
18972
18972
  "name": "tokenId",
18973
18973
  "nodeType": "Identifier",
18974
18974
  "overloadedDeclarations": [],
18975
- "referencedDeclaration": 39103,
18975
+ "referencedDeclaration": 39107,
18976
18976
  "src": "5409:7:99",
18977
18977
  "typeDescriptions": {
18978
18978
  "typeIdentifier": "t_uint256",
@@ -18988,18 +18988,18 @@
18988
18988
  }
18989
18989
  ],
18990
18990
  "expression": {
18991
- "id": 39122,
18991
+ "id": 39126,
18992
18992
  "name": "CONSTANT_INFLOW_NFT",
18993
18993
  "nodeType": "Identifier",
18994
18994
  "overloadedDeclarations": [],
18995
- "referencedDeclaration": 38921,
18995
+ "referencedDeclaration": 38925,
18996
18996
  "src": "5384:19:99",
18997
18997
  "typeDescriptions": {
18998
- "typeIdentifier": "t_contract$_IConstantInflowNFT_$23643",
18998
+ "typeIdentifier": "t_contract$_IConstantInflowNFT_$23646",
18999
18999
  "typeString": "contract IConstantInflowNFT"
19000
19000
  }
19001
19001
  },
19002
- "id": 39124,
19002
+ "id": 39128,
19003
19003
  "isConstant": false,
19004
19004
  "isLValue": false,
19005
19005
  "isPure": false,
@@ -19007,14 +19007,14 @@
19007
19007
  "memberLocation": "5404:4:99",
19008
19008
  "memberName": "burn",
19009
19009
  "nodeType": "MemberAccess",
19010
- "referencedDeclaration": 23642,
19010
+ "referencedDeclaration": 23645,
19011
19011
  "src": "5384:24:99",
19012
19012
  "typeDescriptions": {
19013
19013
  "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
19014
19014
  "typeString": "function (uint256) external"
19015
19015
  }
19016
19016
  },
19017
- "id": 39126,
19017
+ "id": 39130,
19018
19018
  "isConstant": false,
19019
19019
  "isLValue": false,
19020
19020
  "isPure": false,
@@ -19030,7 +19030,7 @@
19030
19030
  "typeString": "tuple()"
19031
19031
  }
19032
19032
  },
19033
- "id": 39127,
19033
+ "id": 39131,
19034
19034
  "nodeType": "ExpressionStatement",
19035
19035
  "src": "5384:33:99"
19036
19036
  },
@@ -19038,11 +19038,11 @@
19038
19038
  "expression": {
19039
19039
  "arguments": [
19040
19040
  {
19041
- "id": 39129,
19041
+ "id": 39133,
19042
19042
  "name": "tokenId",
19043
19043
  "nodeType": "Identifier",
19044
19044
  "overloadedDeclarations": [],
19045
- "referencedDeclaration": 39103,
19045
+ "referencedDeclaration": 39107,
19046
19046
  "src": "5438:7:99",
19047
19047
  "typeDescriptions": {
19048
19048
  "typeIdentifier": "t_uint256",
@@ -19057,20 +19057,20 @@
19057
19057
  "typeString": "uint256"
19058
19058
  }
19059
19059
  ],
19060
- "id": 39128,
19060
+ "id": 39132,
19061
19061
  "name": "_burn",
19062
19062
  "nodeType": "Identifier",
19063
19063
  "overloadedDeclarations": [
19064
- 39258
19064
+ 39262
19065
19065
  ],
19066
- "referencedDeclaration": 39258,
19066
+ "referencedDeclaration": 39262,
19067
19067
  "src": "5432:5:99",
19068
19068
  "typeDescriptions": {
19069
19069
  "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
19070
19070
  "typeString": "function (uint256)"
19071
19071
  }
19072
19072
  },
19073
- "id": 39130,
19073
+ "id": 39134,
19074
19074
  "isConstant": false,
19075
19075
  "isLValue": false,
19076
19076
  "isPure": false,
@@ -19086,7 +19086,7 @@
19086
19086
  "typeString": "tuple()"
19087
19087
  }
19088
19088
  },
19089
- "id": 39131,
19089
+ "id": 39135,
19090
19090
  "nodeType": "ExpressionStatement",
19091
19091
  "src": "5432:14:99"
19092
19092
  }
@@ -19096,27 +19096,27 @@
19096
19096
  ]
19097
19097
  },
19098
19098
  "documentation": {
19099
- "id": 39090,
19099
+ "id": 39094,
19100
19100
  "nodeType": "StructuredDocumentation",
19101
19101
  "src": "4559:364:99",
19102
19102
  "text": "@notice Hook called by CFA contract on flow deletion\n @dev This function burns the COF NFT and burns the CIF NFT\n @param superToken the SuperToken contract address\n @param flowSender the flow sender\n @param flowReceiver the flow receiver\n NOTE: We do an existence check in here to determine whether or not to execute the hook"
19103
19103
  },
19104
19104
  "functionSelector": "ef1f0237",
19105
- "id": 39135,
19105
+ "id": 39139,
19106
19106
  "implemented": true,
19107
19107
  "kind": "function",
19108
19108
  "modifiers": [
19109
19109
  {
19110
- "id": 39100,
19110
+ "id": 39104,
19111
19111
  "kind": "modifierInvocation",
19112
19112
  "modifierName": {
19113
- "id": 39099,
19113
+ "id": 39103,
19114
19114
  "name": "onlyFlowAgreements",
19115
19115
  "nameLocations": [
19116
19116
  "5056:18:99"
19117
19117
  ],
19118
19118
  "nodeType": "IdentifierPath",
19119
- "referencedDeclaration": 39274,
19119
+ "referencedDeclaration": 39278,
19120
19120
  "src": "5056:18:99"
19121
19121
  },
19122
19122
  "nodeType": "ModifierInvocation",
@@ -19127,41 +19127,41 @@
19127
19127
  "nameLocation": "4937:8:99",
19128
19128
  "nodeType": "FunctionDefinition",
19129
19129
  "parameters": {
19130
- "id": 39098,
19130
+ "id": 39102,
19131
19131
  "nodeType": "ParameterList",
19132
19132
  "parameters": [
19133
19133
  {
19134
19134
  "constant": false,
19135
- "id": 39093,
19135
+ "id": 39097,
19136
19136
  "mutability": "mutable",
19137
19137
  "name": "superToken",
19138
19138
  "nameLocation": "4972:10:99",
19139
19139
  "nodeType": "VariableDeclaration",
19140
- "scope": 39135,
19140
+ "scope": 39139,
19141
19141
  "src": "4955:27:99",
19142
19142
  "stateVariable": false,
19143
19143
  "storageLocation": "default",
19144
19144
  "typeDescriptions": {
19145
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
19145
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
19146
19146
  "typeString": "contract ISuperfluidToken"
19147
19147
  },
19148
19148
  "typeName": {
19149
- "id": 39092,
19149
+ "id": 39096,
19150
19150
  "nodeType": "UserDefinedTypeName",
19151
19151
  "pathNode": {
19152
- "id": 39091,
19152
+ "id": 39095,
19153
19153
  "name": "ISuperfluidToken",
19154
19154
  "nameLocations": [
19155
19155
  "4955:16:99"
19156
19156
  ],
19157
19157
  "nodeType": "IdentifierPath",
19158
- "referencedDeclaration": 25463,
19158
+ "referencedDeclaration": 25466,
19159
19159
  "src": "4955:16:99"
19160
19160
  },
19161
- "referencedDeclaration": 25463,
19161
+ "referencedDeclaration": 25466,
19162
19162
  "src": "4955:16:99",
19163
19163
  "typeDescriptions": {
19164
- "typeIdentifier": "t_contract$_ISuperfluidToken_$25463",
19164
+ "typeIdentifier": "t_contract$_ISuperfluidToken_$25466",
19165
19165
  "typeString": "contract ISuperfluidToken"
19166
19166
  }
19167
19167
  },
@@ -19169,12 +19169,12 @@
19169
19169
  },
19170
19170
  {
19171
19171
  "constant": false,
19172
- "id": 39095,
19172
+ "id": 39099,
19173
19173
  "mutability": "mutable",
19174
19174
  "name": "flowSender",
19175
19175
  "nameLocation": "5000:10:99",
19176
19176
  "nodeType": "VariableDeclaration",
19177
- "scope": 39135,
19177
+ "scope": 39139,
19178
19178
  "src": "4992:18:99",
19179
19179
  "stateVariable": false,
19180
19180
  "storageLocation": "default",
@@ -19183,7 +19183,7 @@
19183
19183
  "typeString": "address"
19184
19184
  },
19185
19185
  "typeName": {
19186
- "id": 39094,
19186
+ "id": 39098,
19187
19187
  "name": "address",
19188
19188
  "nodeType": "ElementaryTypeName",
19189
19189
  "src": "4992:7:99",
@@ -19197,12 +19197,12 @@
19197
19197
  },
19198
19198
  {
19199
19199
  "constant": false,
19200
- "id": 39097,
19200
+ "id": 39101,
19201
19201
  "mutability": "mutable",
19202
19202
  "name": "flowReceiver",
19203
19203
  "nameLocation": "5028:12:99",
19204
19204
  "nodeType": "VariableDeclaration",
19205
- "scope": 39135,
19205
+ "scope": 39139,
19206
19206
  "src": "5020:20:99",
19207
19207
  "stateVariable": false,
19208
19208
  "storageLocation": "default",
@@ -19211,7 +19211,7 @@
19211
19211
  "typeString": "address"
19212
19212
  },
19213
19213
  "typeName": {
19214
- "id": 39096,
19214
+ "id": 39100,
19215
19215
  "name": "address",
19216
19216
  "nodeType": "ElementaryTypeName",
19217
19217
  "src": "5020:7:99",
@@ -19227,12 +19227,12 @@
19227
19227
  "src": "4945:101:99"
19228
19228
  },
19229
19229
  "returnParameters": {
19230
- "id": 39101,
19230
+ "id": 39105,
19231
19231
  "nodeType": "ParameterList",
19232
19232
  "parameters": [],
19233
19233
  "src": "5075:0:99"
19234
19234
  },
19235
- "scope": 39275,
19235
+ "scope": 39279,
19236
19236
  "src": "4928:535:99",
19237
19237
  "stateMutability": "nonpayable",
19238
19238
  "virtual": false,
@@ -19240,10 +19240,10 @@
19240
19240
  },
19241
19241
  {
19242
19242
  "baseFunctions": [
19243
- 40079
19243
+ 40083
19244
19244
  ],
19245
19245
  "body": {
19246
- "id": 39149,
19246
+ "id": 39153,
19247
19247
  "nodeType": "Block",
19248
19248
  "src": "5599:62:99",
19249
19249
  "statements": [
@@ -19251,24 +19251,24 @@
19251
19251
  "expression": {
19252
19252
  "expression": {
19253
19253
  "baseExpression": {
19254
- "id": 39144,
19254
+ "id": 39148,
19255
19255
  "name": "_flowDataByTokenId",
19256
19256
  "nodeType": "Identifier",
19257
19257
  "overloadedDeclarations": [],
19258
- "referencedDeclaration": 38927,
19258
+ "referencedDeclaration": 38931,
19259
19259
  "src": "5616:18:99",
19260
19260
  "typeDescriptions": {
19261
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
19261
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
19262
19262
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData storage ref)"
19263
19263
  }
19264
19264
  },
19265
- "id": 39146,
19265
+ "id": 39150,
19266
19266
  "indexExpression": {
19267
- "id": 39145,
19267
+ "id": 39149,
19268
19268
  "name": "tokenId",
19269
19269
  "nodeType": "Identifier",
19270
19270
  "overloadedDeclarations": [],
19271
- "referencedDeclaration": 39138,
19271
+ "referencedDeclaration": 39142,
19272
19272
  "src": "5635:7:99",
19273
19273
  "typeDescriptions": {
19274
19274
  "typeIdentifier": "t_uint256",
@@ -19282,11 +19282,11 @@
19282
19282
  "nodeType": "IndexAccess",
19283
19283
  "src": "5616:27:99",
19284
19284
  "typeDescriptions": {
19285
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
19285
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
19286
19286
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
19287
19287
  }
19288
19288
  },
19289
- "id": 39147,
19289
+ "id": 39151,
19290
19290
  "isConstant": false,
19291
19291
  "isLValue": true,
19292
19292
  "isPure": false,
@@ -19294,27 +19294,27 @@
19294
19294
  "memberLocation": "5644:10:99",
19295
19295
  "memberName": "flowSender",
19296
19296
  "nodeType": "MemberAccess",
19297
- "referencedDeclaration": 23709,
19297
+ "referencedDeclaration": 23712,
19298
19298
  "src": "5616:38:99",
19299
19299
  "typeDescriptions": {
19300
19300
  "typeIdentifier": "t_address",
19301
19301
  "typeString": "address"
19302
19302
  }
19303
19303
  },
19304
- "functionReturnParameters": 39143,
19305
- "id": 39148,
19304
+ "functionReturnParameters": 39147,
19305
+ "id": 39152,
19306
19306
  "nodeType": "Return",
19307
19307
  "src": "5609:45:99"
19308
19308
  }
19309
19309
  ]
19310
19310
  },
19311
19311
  "documentation": {
19312
- "id": 39136,
19312
+ "id": 39140,
19313
19313
  "nodeType": "StructuredDocumentation",
19314
19314
  "src": "5469:27:99",
19315
19315
  "text": "@inheritdoc FlowNFTBase"
19316
19316
  },
19317
- "id": 39150,
19317
+ "id": 39154,
19318
19318
  "implemented": true,
19319
19319
  "kind": "function",
19320
19320
  "modifiers": [],
@@ -19322,23 +19322,23 @@
19322
19322
  "nameLocation": "5510:8:99",
19323
19323
  "nodeType": "FunctionDefinition",
19324
19324
  "overrides": {
19325
- "id": 39140,
19325
+ "id": 39144,
19326
19326
  "nodeType": "OverrideSpecifier",
19327
19327
  "overrides": [],
19328
19328
  "src": "5572:8:99"
19329
19329
  },
19330
19330
  "parameters": {
19331
- "id": 39139,
19331
+ "id": 39143,
19332
19332
  "nodeType": "ParameterList",
19333
19333
  "parameters": [
19334
19334
  {
19335
19335
  "constant": false,
19336
- "id": 39138,
19336
+ "id": 39142,
19337
19337
  "mutability": "mutable",
19338
19338
  "name": "tokenId",
19339
19339
  "nameLocation": "5536:7:99",
19340
19340
  "nodeType": "VariableDeclaration",
19341
- "scope": 39150,
19341
+ "scope": 39154,
19342
19342
  "src": "5528:15:99",
19343
19343
  "stateVariable": false,
19344
19344
  "storageLocation": "default",
@@ -19347,7 +19347,7 @@
19347
19347
  "typeString": "uint256"
19348
19348
  },
19349
19349
  "typeName": {
19350
- "id": 39137,
19350
+ "id": 39141,
19351
19351
  "name": "uint256",
19352
19352
  "nodeType": "ElementaryTypeName",
19353
19353
  "src": "5528:7:99",
@@ -19362,17 +19362,17 @@
19362
19362
  "src": "5518:31:99"
19363
19363
  },
19364
19364
  "returnParameters": {
19365
- "id": 39143,
19365
+ "id": 39147,
19366
19366
  "nodeType": "ParameterList",
19367
19367
  "parameters": [
19368
19368
  {
19369
19369
  "constant": false,
19370
- "id": 39142,
19370
+ "id": 39146,
19371
19371
  "mutability": "mutable",
19372
19372
  "name": "",
19373
19373
  "nameLocation": "-1:-1:-1",
19374
19374
  "nodeType": "VariableDeclaration",
19375
- "scope": 39150,
19375
+ "scope": 39154,
19376
19376
  "src": "5590:7:99",
19377
19377
  "stateVariable": false,
19378
19378
  "storageLocation": "default",
@@ -19381,7 +19381,7 @@
19381
19381
  "typeString": "address"
19382
19382
  },
19383
19383
  "typeName": {
19384
- "id": 39141,
19384
+ "id": 39145,
19385
19385
  "name": "address",
19386
19386
  "nodeType": "ElementaryTypeName",
19387
19387
  "src": "5590:7:99",
@@ -19396,7 +19396,7 @@
19396
19396
  ],
19397
19397
  "src": "5589:9:99"
19398
19398
  },
19399
- "scope": 39275,
19399
+ "scope": 39279,
19400
19400
  "src": "5501:160:99",
19401
19401
  "stateMutability": "view",
19402
19402
  "virtual": true,
@@ -19404,10 +19404,10 @@
19404
19404
  },
19405
19405
  {
19406
19406
  "baseFunctions": [
19407
- 40088
19407
+ 40092
19408
19408
  ],
19409
19409
  "body": {
19410
- "id": 39164,
19410
+ "id": 39168,
19411
19411
  "nodeType": "Block",
19412
19412
  "src": "5930:57:99",
19413
19413
  "statements": [
@@ -19416,18 +19416,18 @@
19416
19416
  "arguments": [],
19417
19417
  "expression": {
19418
19418
  "argumentTypes": [],
19419
- "id": 39161,
19419
+ "id": 39165,
19420
19420
  "name": "CFA_NFT_TRANSFER_IS_NOT_ALLOWED",
19421
19421
  "nodeType": "Identifier",
19422
19422
  "overloadedDeclarations": [],
19423
- "referencedDeclaration": 23730,
19423
+ "referencedDeclaration": 23733,
19424
19424
  "src": "5947:31:99",
19425
19425
  "typeDescriptions": {
19426
19426
  "typeIdentifier": "t_function_error_pure$__$returns$__$",
19427
19427
  "typeString": "function () pure"
19428
19428
  }
19429
19429
  },
19430
- "id": 39162,
19430
+ "id": 39166,
19431
19431
  "isConstant": false,
19432
19432
  "isLValue": false,
19433
19433
  "isPure": false,
@@ -19443,19 +19443,19 @@
19443
19443
  "typeString": "tuple()"
19444
19444
  }
19445
19445
  },
19446
- "id": 39163,
19446
+ "id": 39167,
19447
19447
  "nodeType": "RevertStatement",
19448
19448
  "src": "5940:40:99"
19449
19449
  }
19450
19450
  ]
19451
19451
  },
19452
19452
  "documentation": {
19453
- "id": 39151,
19453
+ "id": 39155,
19454
19454
  "nodeType": "StructuredDocumentation",
19455
19455
  "src": "5667:129:99",
19456
19456
  "text": "@notice Reverts - Transfer of outflow NFT is not allowed.\n @dev We revert when users attempt to transfer outflow NFTs."
19457
19457
  },
19458
- "id": 39165,
19458
+ "id": 39169,
19459
19459
  "implemented": true,
19460
19460
  "kind": "function",
19461
19461
  "modifiers": [],
@@ -19463,23 +19463,23 @@
19463
19463
  "nameLocation": "5810:9:99",
19464
19464
  "nodeType": "FunctionDefinition",
19465
19465
  "overrides": {
19466
- "id": 39159,
19466
+ "id": 39163,
19467
19467
  "nodeType": "OverrideSpecifier",
19468
19468
  "overrides": [],
19469
19469
  "src": "5921:8:99"
19470
19470
  },
19471
19471
  "parameters": {
19472
- "id": 39158,
19472
+ "id": 39162,
19473
19473
  "nodeType": "ParameterList",
19474
19474
  "parameters": [
19475
19475
  {
19476
19476
  "constant": false,
19477
- "id": 39153,
19477
+ "id": 39157,
19478
19478
  "mutability": "mutable",
19479
19479
  "name": "",
19480
19480
  "nameLocation": "-1:-1:-1",
19481
19481
  "nodeType": "VariableDeclaration",
19482
- "scope": 39165,
19482
+ "scope": 39169,
19483
19483
  "src": "5829:7:99",
19484
19484
  "stateVariable": false,
19485
19485
  "storageLocation": "default",
@@ -19488,7 +19488,7 @@
19488
19488
  "typeString": "address"
19489
19489
  },
19490
19490
  "typeName": {
19491
- "id": 39152,
19491
+ "id": 39156,
19492
19492
  "name": "address",
19493
19493
  "nodeType": "ElementaryTypeName",
19494
19494
  "src": "5829:7:99",
@@ -19502,12 +19502,12 @@
19502
19502
  },
19503
19503
  {
19504
19504
  "constant": false,
19505
- "id": 39155,
19505
+ "id": 39159,
19506
19506
  "mutability": "mutable",
19507
19507
  "name": "",
19508
19508
  "nameLocation": "-1:-1:-1",
19509
19509
  "nodeType": "VariableDeclaration",
19510
- "scope": 39165,
19510
+ "scope": 39169,
19511
19511
  "src": "5855:7:99",
19512
19512
  "stateVariable": false,
19513
19513
  "storageLocation": "default",
@@ -19516,7 +19516,7 @@
19516
19516
  "typeString": "address"
19517
19517
  },
19518
19518
  "typeName": {
19519
- "id": 39154,
19519
+ "id": 39158,
19520
19520
  "name": "address",
19521
19521
  "nodeType": "ElementaryTypeName",
19522
19522
  "src": "5855:7:99",
@@ -19530,12 +19530,12 @@
19530
19530
  },
19531
19531
  {
19532
19532
  "constant": false,
19533
- "id": 39157,
19533
+ "id": 39161,
19534
19534
  "mutability": "mutable",
19535
19535
  "name": "",
19536
19536
  "nameLocation": "-1:-1:-1",
19537
19537
  "nodeType": "VariableDeclaration",
19538
- "scope": 39165,
19538
+ "scope": 39169,
19539
19539
  "src": "5879:7:99",
19540
19540
  "stateVariable": false,
19541
19541
  "storageLocation": "default",
@@ -19544,7 +19544,7 @@
19544
19544
  "typeString": "uint256"
19545
19545
  },
19546
19546
  "typeName": {
19547
- "id": 39156,
19547
+ "id": 39160,
19548
19548
  "name": "uint256",
19549
19549
  "nodeType": "ElementaryTypeName",
19550
19550
  "src": "5879:7:99",
@@ -19559,12 +19559,12 @@
19559
19559
  "src": "5819:84:99"
19560
19560
  },
19561
19561
  "returnParameters": {
19562
- "id": 39160,
19562
+ "id": 39164,
19563
19563
  "nodeType": "ParameterList",
19564
19564
  "parameters": [],
19565
19565
  "src": "5930:0:99"
19566
19566
  },
19567
- "scope": 39275,
19567
+ "scope": 39279,
19568
19568
  "src": "5801:186:99",
19569
19569
  "stateMutability": "nonpayable",
19570
19570
  "virtual": true,
@@ -19572,7 +19572,7 @@
19572
19572
  },
19573
19573
  {
19574
19574
  "body": {
19575
- "id": 39223,
19575
+ "id": 39227,
19576
19576
  "nodeType": "Block",
19577
19577
  "src": "6631:493:99",
19578
19578
  "statements": [
@@ -19584,17 +19584,17 @@
19584
19584
  "typeIdentifier": "t_address",
19585
19585
  "typeString": "address"
19586
19586
  },
19587
- "id": 39183,
19587
+ "id": 39187,
19588
19588
  "isConstant": false,
19589
19589
  "isLValue": false,
19590
19590
  "isPure": false,
19591
19591
  "lValueRequested": false,
19592
19592
  "leftExpression": {
19593
- "id": 39178,
19593
+ "id": 39182,
19594
19594
  "name": "flowSender",
19595
19595
  "nodeType": "Identifier",
19596
19596
  "overloadedDeclarations": [],
19597
- "referencedDeclaration": 39170,
19597
+ "referencedDeclaration": 39174,
19598
19598
  "src": "6648:10:99",
19599
19599
  "typeDescriptions": {
19600
19600
  "typeIdentifier": "t_address",
@@ -19607,7 +19607,7 @@
19607
19607
  "arguments": [
19608
19608
  {
19609
19609
  "hexValue": "30",
19610
- "id": 39181,
19610
+ "id": 39185,
19611
19611
  "isConstant": false,
19612
19612
  "isLValue": false,
19613
19613
  "isPure": true,
@@ -19629,7 +19629,7 @@
19629
19629
  "typeString": "int_const 0"
19630
19630
  }
19631
19631
  ],
19632
- "id": 39180,
19632
+ "id": 39184,
19633
19633
  "isConstant": false,
19634
19634
  "isLValue": false,
19635
19635
  "isPure": true,
@@ -19641,14 +19641,14 @@
19641
19641
  "typeString": "type(address)"
19642
19642
  },
19643
19643
  "typeName": {
19644
- "id": 39179,
19644
+ "id": 39183,
19645
19645
  "name": "address",
19646
19646
  "nodeType": "ElementaryTypeName",
19647
19647
  "src": "6662:7:99",
19648
19648
  "typeDescriptions": {}
19649
19649
  }
19650
19650
  },
19651
- "id": 39182,
19651
+ "id": 39186,
19652
19652
  "isConstant": false,
19653
19653
  "isLValue": false,
19654
19654
  "isPure": true,
@@ -19678,7 +19678,7 @@
19678
19678
  "typeString": "bool"
19679
19679
  }
19680
19680
  ],
19681
- "id": 39177,
19681
+ "id": 39181,
19682
19682
  "name": "assert",
19683
19683
  "nodeType": "Identifier",
19684
19684
  "overloadedDeclarations": [],
@@ -19689,7 +19689,7 @@
19689
19689
  "typeString": "function (bool) pure"
19690
19690
  }
19691
19691
  },
19692
- "id": 39184,
19692
+ "id": 39188,
19693
19693
  "isConstant": false,
19694
19694
  "isLValue": false,
19695
19695
  "isPure": false,
@@ -19705,7 +19705,7 @@
19705
19705
  "typeString": "tuple()"
19706
19706
  }
19707
19707
  },
19708
- "id": 39185,
19708
+ "id": 39189,
19709
19709
  "nodeType": "ExpressionStatement",
19710
19710
  "src": "6641:32:99"
19711
19711
  },
@@ -19717,17 +19717,17 @@
19717
19717
  "typeIdentifier": "t_address",
19718
19718
  "typeString": "address"
19719
19719
  },
19720
- "id": 39189,
19720
+ "id": 39193,
19721
19721
  "isConstant": false,
19722
19722
  "isLValue": false,
19723
19723
  "isPure": false,
19724
19724
  "lValueRequested": false,
19725
19725
  "leftExpression": {
19726
- "id": 39187,
19726
+ "id": 39191,
19727
19727
  "name": "flowSender",
19728
19728
  "nodeType": "Identifier",
19729
19729
  "overloadedDeclarations": [],
19730
- "referencedDeclaration": 39170,
19730
+ "referencedDeclaration": 39174,
19731
19731
  "src": "6690:10:99",
19732
19732
  "typeDescriptions": {
19733
19733
  "typeIdentifier": "t_address",
@@ -19737,11 +19737,11 @@
19737
19737
  "nodeType": "BinaryOperation",
19738
19738
  "operator": "!=",
19739
19739
  "rightExpression": {
19740
- "id": 39188,
19740
+ "id": 39192,
19741
19741
  "name": "flowReceiver",
19742
19742
  "nodeType": "Identifier",
19743
19743
  "overloadedDeclarations": [],
19744
- "referencedDeclaration": 39172,
19744
+ "referencedDeclaration": 39176,
19745
19745
  "src": "6704:12:99",
19746
19746
  "typeDescriptions": {
19747
19747
  "typeIdentifier": "t_address",
@@ -19762,7 +19762,7 @@
19762
19762
  "typeString": "bool"
19763
19763
  }
19764
19764
  ],
19765
- "id": 39186,
19765
+ "id": 39190,
19766
19766
  "name": "assert",
19767
19767
  "nodeType": "Identifier",
19768
19768
  "overloadedDeclarations": [],
@@ -19773,7 +19773,7 @@
19773
19773
  "typeString": "function (bool) pure"
19774
19774
  }
19775
19775
  },
19776
- "id": 39190,
19776
+ "id": 39194,
19777
19777
  "isConstant": false,
19778
19778
  "isLValue": false,
19779
19779
  "isPure": false,
@@ -19789,7 +19789,7 @@
19789
19789
  "typeString": "tuple()"
19790
19790
  }
19791
19791
  },
19792
- "id": 39191,
19792
+ "id": 39195,
19793
19793
  "nodeType": "ExpressionStatement",
19794
19794
  "src": "6683:34:99"
19795
19795
  },
@@ -19797,7 +19797,7 @@
19797
19797
  "expression": {
19798
19798
  "arguments": [
19799
19799
  {
19800
- "id": 39196,
19800
+ "id": 39200,
19801
19801
  "isConstant": false,
19802
19802
  "isLValue": false,
19803
19803
  "isPure": false,
@@ -19809,11 +19809,11 @@
19809
19809
  "subExpression": {
19810
19810
  "arguments": [
19811
19811
  {
19812
- "id": 39194,
19812
+ "id": 39198,
19813
19813
  "name": "newTokenId",
19814
19814
  "nodeType": "Identifier",
19815
19815
  "overloadedDeclarations": [],
19816
- "referencedDeclaration": 39174,
19816
+ "referencedDeclaration": 39178,
19817
19817
  "src": "6743:10:99",
19818
19818
  "typeDescriptions": {
19819
19819
  "typeIdentifier": "t_uint256",
@@ -19828,18 +19828,18 @@
19828
19828
  "typeString": "uint256"
19829
19829
  }
19830
19830
  ],
19831
- "id": 39193,
19831
+ "id": 39197,
19832
19832
  "name": "_exists",
19833
19833
  "nodeType": "Identifier",
19834
19834
  "overloadedDeclarations": [],
19835
- "referencedDeclaration": 39999,
19835
+ "referencedDeclaration": 40003,
19836
19836
  "src": "6735:7:99",
19837
19837
  "typeDescriptions": {
19838
19838
  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
19839
19839
  "typeString": "function (uint256) view returns (bool)"
19840
19840
  }
19841
19841
  },
19842
- "id": 39195,
19842
+ "id": 39199,
19843
19843
  "isConstant": false,
19844
19844
  "isLValue": false,
19845
19845
  "isPure": false,
@@ -19868,7 +19868,7 @@
19868
19868
  "typeString": "bool"
19869
19869
  }
19870
19870
  ],
19871
- "id": 39192,
19871
+ "id": 39196,
19872
19872
  "name": "assert",
19873
19873
  "nodeType": "Identifier",
19874
19874
  "overloadedDeclarations": [],
@@ -19879,7 +19879,7 @@
19879
19879
  "typeString": "function (bool) pure"
19880
19880
  }
19881
19881
  },
19882
- "id": 39197,
19882
+ "id": 39201,
19883
19883
  "isConstant": false,
19884
19884
  "isLValue": false,
19885
19885
  "isPure": false,
@@ -19895,37 +19895,37 @@
19895
19895
  "typeString": "tuple()"
19896
19896
  }
19897
19897
  },
19898
- "id": 39198,
19898
+ "id": 39202,
19899
19899
  "nodeType": "ExpressionStatement",
19900
19900
  "src": "6727:28:99"
19901
19901
  },
19902
19902
  {
19903
19903
  "expression": {
19904
- "id": 39212,
19904
+ "id": 39216,
19905
19905
  "isConstant": false,
19906
19906
  "isLValue": false,
19907
19907
  "isPure": false,
19908
19908
  "lValueRequested": false,
19909
19909
  "leftHandSide": {
19910
19910
  "baseExpression": {
19911
- "id": 39199,
19911
+ "id": 39203,
19912
19912
  "name": "_flowDataByTokenId",
19913
19913
  "nodeType": "Identifier",
19914
19914
  "overloadedDeclarations": [],
19915
- "referencedDeclaration": 38927,
19915
+ "referencedDeclaration": 38931,
19916
19916
  "src": "6817:18:99",
19917
19917
  "typeDescriptions": {
19918
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
19918
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
19919
19919
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData storage ref)"
19920
19920
  }
19921
19921
  },
19922
- "id": 39201,
19922
+ "id": 39205,
19923
19923
  "indexExpression": {
19924
- "id": 39200,
19924
+ "id": 39204,
19925
19925
  "name": "newTokenId",
19926
19926
  "nodeType": "Identifier",
19927
19927
  "overloadedDeclarations": [],
19928
- "referencedDeclaration": 39174,
19928
+ "referencedDeclaration": 39178,
19929
19929
  "src": "6836:10:99",
19930
19930
  "typeDescriptions": {
19931
19931
  "typeIdentifier": "t_uint256",
@@ -19939,7 +19939,7 @@
19939
19939
  "nodeType": "IndexAccess",
19940
19940
  "src": "6817:30:99",
19941
19941
  "typeDescriptions": {
19942
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
19942
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
19943
19943
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
19944
19944
  }
19945
19945
  },
@@ -19948,11 +19948,11 @@
19948
19948
  "rightHandSide": {
19949
19949
  "arguments": [
19950
19950
  {
19951
- "id": 39203,
19951
+ "id": 39207,
19952
19952
  "name": "superToken",
19953
19953
  "nodeType": "Identifier",
19954
19954
  "overloadedDeclarations": [],
19955
- "referencedDeclaration": 39168,
19955
+ "referencedDeclaration": 39172,
19956
19956
  "src": "6875:10:99",
19957
19957
  "typeDescriptions": {
19958
19958
  "typeIdentifier": "t_address",
@@ -19960,11 +19960,11 @@
19960
19960
  }
19961
19961
  },
19962
19962
  {
19963
- "id": 39204,
19963
+ "id": 39208,
19964
19964
  "name": "flowSender",
19965
19965
  "nodeType": "Identifier",
19966
19966
  "overloadedDeclarations": [],
19967
- "referencedDeclaration": 39170,
19967
+ "referencedDeclaration": 39174,
19968
19968
  "src": "6899:10:99",
19969
19969
  "typeDescriptions": {
19970
19970
  "typeIdentifier": "t_address",
@@ -19972,11 +19972,11 @@
19972
19972
  }
19973
19973
  },
19974
19974
  {
19975
- "id": 39205,
19975
+ "id": 39209,
19976
19976
  "name": "flowReceiver",
19977
19977
  "nodeType": "Identifier",
19978
19978
  "overloadedDeclarations": [],
19979
- "referencedDeclaration": 39172,
19979
+ "referencedDeclaration": 39176,
19980
19980
  "src": "6923:12:99",
19981
19981
  "typeDescriptions": {
19982
19982
  "typeIdentifier": "t_address",
@@ -19987,7 +19987,7 @@
19987
19987
  "arguments": [
19988
19988
  {
19989
19989
  "expression": {
19990
- "id": 39208,
19990
+ "id": 39212,
19991
19991
  "name": "block",
19992
19992
  "nodeType": "Identifier",
19993
19993
  "overloadedDeclarations": [],
@@ -19998,7 +19998,7 @@
19998
19998
  "typeString": "block"
19999
19999
  }
20000
20000
  },
20001
- "id": 39209,
20001
+ "id": 39213,
20002
20002
  "isConstant": false,
20003
20003
  "isLValue": false,
20004
20004
  "isPure": false,
@@ -20020,7 +20020,7 @@
20020
20020
  "typeString": "uint256"
20021
20021
  }
20022
20022
  ],
20023
- "id": 39207,
20023
+ "id": 39211,
20024
20024
  "isConstant": false,
20025
20025
  "isLValue": false,
20026
20026
  "isPure": true,
@@ -20032,14 +20032,14 @@
20032
20032
  "typeString": "type(uint32)"
20033
20033
  },
20034
20034
  "typeName": {
20035
- "id": 39206,
20035
+ "id": 39210,
20036
20036
  "name": "uint32",
20037
20037
  "nodeType": "ElementaryTypeName",
20038
20038
  "src": "6949:6:99",
20039
20039
  "typeDescriptions": {}
20040
20040
  }
20041
20041
  },
20042
- "id": 39210,
20042
+ "id": 39214,
20043
20043
  "isConstant": false,
20044
20044
  "isLValue": false,
20045
20045
  "isPure": false,
@@ -20075,18 +20075,18 @@
20075
20075
  "typeString": "uint32"
20076
20076
  }
20077
20077
  ],
20078
- "id": 39202,
20078
+ "id": 39206,
20079
20079
  "name": "FlowNFTData",
20080
20080
  "nodeType": "Identifier",
20081
20081
  "overloadedDeclarations": [],
20082
- "referencedDeclaration": 23714,
20082
+ "referencedDeclaration": 23717,
20083
20083
  "src": "6850:11:99",
20084
20084
  "typeDescriptions": {
20085
- "typeIdentifier": "t_type$_t_struct$_FlowNFTData_$23714_storage_ptr_$",
20085
+ "typeIdentifier": "t_type$_t_struct$_FlowNFTData_$23717_storage_ptr_$",
20086
20086
  "typeString": "type(struct IFlowNFTBase.FlowNFTData storage pointer)"
20087
20087
  }
20088
20088
  },
20089
- "id": 39211,
20089
+ "id": 39215,
20090
20090
  "isConstant": false,
20091
20091
  "isLValue": false,
20092
20092
  "isPure": false,
@@ -20098,17 +20098,17 @@
20098
20098
  "src": "6850:149:99",
20099
20099
  "tryCall": false,
20100
20100
  "typeDescriptions": {
20101
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_memory_ptr",
20101
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_memory_ptr",
20102
20102
  "typeString": "struct IFlowNFTBase.FlowNFTData memory"
20103
20103
  }
20104
20104
  },
20105
20105
  "src": "6817:182:99",
20106
20106
  "typeDescriptions": {
20107
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
20107
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
20108
20108
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
20109
20109
  }
20110
20110
  },
20111
- "id": 39213,
20111
+ "id": 39217,
20112
20112
  "nodeType": "ExpressionStatement",
20113
20113
  "src": "6817:182:99"
20114
20114
  },
@@ -20119,7 +20119,7 @@
20119
20119
  "arguments": [
20120
20120
  {
20121
20121
  "hexValue": "30",
20122
- "id": 39217,
20122
+ "id": 39221,
20123
20123
  "isConstant": false,
20124
20124
  "isLValue": false,
20125
20125
  "isPure": true,
@@ -20141,7 +20141,7 @@
20141
20141
  "typeString": "int_const 0"
20142
20142
  }
20143
20143
  ],
20144
- "id": 39216,
20144
+ "id": 39220,
20145
20145
  "isConstant": false,
20146
20146
  "isLValue": false,
20147
20147
  "isPure": true,
@@ -20153,14 +20153,14 @@
20153
20153
  "typeString": "type(address)"
20154
20154
  },
20155
20155
  "typeName": {
20156
- "id": 39215,
20156
+ "id": 39219,
20157
20157
  "name": "address",
20158
20158
  "nodeType": "ElementaryTypeName",
20159
20159
  "src": "7082:7:99",
20160
20160
  "typeDescriptions": {}
20161
20161
  }
20162
20162
  },
20163
- "id": 39218,
20163
+ "id": 39222,
20164
20164
  "isConstant": false,
20165
20165
  "isLValue": false,
20166
20166
  "isPure": true,
@@ -20177,11 +20177,11 @@
20177
20177
  }
20178
20178
  },
20179
20179
  {
20180
- "id": 39219,
20180
+ "id": 39223,
20181
20181
  "name": "flowSender",
20182
20182
  "nodeType": "Identifier",
20183
20183
  "overloadedDeclarations": [],
20184
- "referencedDeclaration": 39170,
20184
+ "referencedDeclaration": 39174,
20185
20185
  "src": "7094:10:99",
20186
20186
  "typeDescriptions": {
20187
20187
  "typeIdentifier": "t_address",
@@ -20189,11 +20189,11 @@
20189
20189
  }
20190
20190
  },
20191
20191
  {
20192
- "id": 39220,
20192
+ "id": 39224,
20193
20193
  "name": "newTokenId",
20194
20194
  "nodeType": "Identifier",
20195
20195
  "overloadedDeclarations": [],
20196
- "referencedDeclaration": 39174,
20196
+ "referencedDeclaration": 39178,
20197
20197
  "src": "7106:10:99",
20198
20198
  "typeDescriptions": {
20199
20199
  "typeIdentifier": "t_uint256",
@@ -20216,7 +20216,7 @@
20216
20216
  "typeString": "uint256"
20217
20217
  }
20218
20218
  ],
20219
- "id": 39214,
20219
+ "id": 39218,
20220
20220
  "name": "Transfer",
20221
20221
  "nodeType": "Identifier",
20222
20222
  "overloadedDeclarations": [],
@@ -20227,7 +20227,7 @@
20227
20227
  "typeString": "function (address,address,uint256)"
20228
20228
  }
20229
20229
  },
20230
- "id": 39221,
20230
+ "id": 39225,
20231
20231
  "isConstant": false,
20232
20232
  "isLValue": false,
20233
20233
  "isPure": false,
@@ -20243,19 +20243,19 @@
20243
20243
  "typeString": "tuple()"
20244
20244
  }
20245
20245
  },
20246
- "id": 39222,
20246
+ "id": 39226,
20247
20247
  "nodeType": "EmitStatement",
20248
20248
  "src": "7068:49:99"
20249
20249
  }
20250
20250
  ]
20251
20251
  },
20252
20252
  "documentation": {
20253
- "id": 39166,
20253
+ "id": 39170,
20254
20254
  "nodeType": "StructuredDocumentation",
20255
20255
  "src": "5993:489:99",
20256
20256
  "text": "@notice Mints `newTokenId` and transfers it to `flowSender`\n @dev `newTokenId` must not exist `flowSender` cannot be `address(0)` and we emit a {Transfer} event.\n `flowSender` cannot be equal to `flowReceiver`.\n @param superToken the SuperToken contract address\n @param flowSender the receiver of the newly minted outflow nft (to)\n @param flowReceiver the flow receiver (owner of the InflowNFT)\n @param newTokenId the new token id to be minted"
20257
20257
  },
20258
- "id": 39224,
20258
+ "id": 39228,
20259
20259
  "implemented": true,
20260
20260
  "kind": "function",
20261
20261
  "modifiers": [],
@@ -20263,17 +20263,17 @@
20263
20263
  "nameLocation": "6496:5:99",
20264
20264
  "nodeType": "FunctionDefinition",
20265
20265
  "parameters": {
20266
- "id": 39175,
20266
+ "id": 39179,
20267
20267
  "nodeType": "ParameterList",
20268
20268
  "parameters": [
20269
20269
  {
20270
20270
  "constant": false,
20271
- "id": 39168,
20271
+ "id": 39172,
20272
20272
  "mutability": "mutable",
20273
20273
  "name": "superToken",
20274
20274
  "nameLocation": "6519:10:99",
20275
20275
  "nodeType": "VariableDeclaration",
20276
- "scope": 39224,
20276
+ "scope": 39228,
20277
20277
  "src": "6511:18:99",
20278
20278
  "stateVariable": false,
20279
20279
  "storageLocation": "default",
@@ -20282,7 +20282,7 @@
20282
20282
  "typeString": "address"
20283
20283
  },
20284
20284
  "typeName": {
20285
- "id": 39167,
20285
+ "id": 39171,
20286
20286
  "name": "address",
20287
20287
  "nodeType": "ElementaryTypeName",
20288
20288
  "src": "6511:7:99",
@@ -20296,12 +20296,12 @@
20296
20296
  },
20297
20297
  {
20298
20298
  "constant": false,
20299
- "id": 39170,
20299
+ "id": 39174,
20300
20300
  "mutability": "mutable",
20301
20301
  "name": "flowSender",
20302
20302
  "nameLocation": "6547:10:99",
20303
20303
  "nodeType": "VariableDeclaration",
20304
- "scope": 39224,
20304
+ "scope": 39228,
20305
20305
  "src": "6539:18:99",
20306
20306
  "stateVariable": false,
20307
20307
  "storageLocation": "default",
@@ -20310,7 +20310,7 @@
20310
20310
  "typeString": "address"
20311
20311
  },
20312
20312
  "typeName": {
20313
- "id": 39169,
20313
+ "id": 39173,
20314
20314
  "name": "address",
20315
20315
  "nodeType": "ElementaryTypeName",
20316
20316
  "src": "6539:7:99",
@@ -20324,12 +20324,12 @@
20324
20324
  },
20325
20325
  {
20326
20326
  "constant": false,
20327
- "id": 39172,
20327
+ "id": 39176,
20328
20328
  "mutability": "mutable",
20329
20329
  "name": "flowReceiver",
20330
20330
  "nameLocation": "6575:12:99",
20331
20331
  "nodeType": "VariableDeclaration",
20332
- "scope": 39224,
20332
+ "scope": 39228,
20333
20333
  "src": "6567:20:99",
20334
20334
  "stateVariable": false,
20335
20335
  "storageLocation": "default",
@@ -20338,7 +20338,7 @@
20338
20338
  "typeString": "address"
20339
20339
  },
20340
20340
  "typeName": {
20341
- "id": 39171,
20341
+ "id": 39175,
20342
20342
  "name": "address",
20343
20343
  "nodeType": "ElementaryTypeName",
20344
20344
  "src": "6567:7:99",
@@ -20352,12 +20352,12 @@
20352
20352
  },
20353
20353
  {
20354
20354
  "constant": false,
20355
- "id": 39174,
20355
+ "id": 39178,
20356
20356
  "mutability": "mutable",
20357
20357
  "name": "newTokenId",
20358
20358
  "nameLocation": "6605:10:99",
20359
20359
  "nodeType": "VariableDeclaration",
20360
- "scope": 39224,
20360
+ "scope": 39228,
20361
20361
  "src": "6597:18:99",
20362
20362
  "stateVariable": false,
20363
20363
  "storageLocation": "default",
@@ -20366,7 +20366,7 @@
20366
20366
  "typeString": "uint256"
20367
20367
  },
20368
20368
  "typeName": {
20369
- "id": 39173,
20369
+ "id": 39177,
20370
20370
  "name": "uint256",
20371
20371
  "nodeType": "ElementaryTypeName",
20372
20372
  "src": "6597:7:99",
@@ -20381,12 +20381,12 @@
20381
20381
  "src": "6501:120:99"
20382
20382
  },
20383
20383
  "returnParameters": {
20384
- "id": 39176,
20384
+ "id": 39180,
20385
20385
  "nodeType": "ParameterList",
20386
20386
  "parameters": [],
20387
20387
  "src": "6631:0:99"
20388
20388
  },
20389
- "scope": 39275,
20389
+ "scope": 39279,
20390
20390
  "src": "6487:637:99",
20391
20391
  "stateMutability": "nonpayable",
20392
20392
  "virtual": false,
@@ -20394,26 +20394,26 @@
20394
20394
  },
20395
20395
  {
20396
20396
  "baseFunctions": [
20397
- 40118
20397
+ 40122
20398
20398
  ],
20399
20399
  "body": {
20400
- "id": 39257,
20400
+ "id": 39261,
20401
20401
  "nodeType": "Block",
20402
20402
  "src": "7394:282:99",
20403
20403
  "statements": [
20404
20404
  {
20405
20405
  "assignments": [
20406
- 39232
20406
+ 39236
20407
20407
  ],
20408
20408
  "declarations": [
20409
20409
  {
20410
20410
  "constant": false,
20411
- "id": 39232,
20411
+ "id": 39236,
20412
20412
  "mutability": "mutable",
20413
20413
  "name": "owner",
20414
20414
  "nameLocation": "7412:5:99",
20415
20415
  "nodeType": "VariableDeclaration",
20416
- "scope": 39257,
20416
+ "scope": 39261,
20417
20417
  "src": "7404:13:99",
20418
20418
  "stateVariable": false,
20419
20419
  "storageLocation": "default",
@@ -20422,7 +20422,7 @@
20422
20422
  "typeString": "address"
20423
20423
  },
20424
20424
  "typeName": {
20425
- "id": 39231,
20425
+ "id": 39235,
20426
20426
  "name": "address",
20427
20427
  "nodeType": "ElementaryTypeName",
20428
20428
  "src": "7404:7:99",
@@ -20435,15 +20435,15 @@
20435
20435
  "visibility": "internal"
20436
20436
  }
20437
20437
  ],
20438
- "id": 39236,
20438
+ "id": 39240,
20439
20439
  "initialValue": {
20440
20440
  "arguments": [
20441
20441
  {
20442
- "id": 39234,
20442
+ "id": 39238,
20443
20443
  "name": "tokenId",
20444
20444
  "nodeType": "Identifier",
20445
20445
  "overloadedDeclarations": [],
20446
- "referencedDeclaration": 39227,
20446
+ "referencedDeclaration": 39231,
20447
20447
  "src": "7429:7:99",
20448
20448
  "typeDescriptions": {
20449
20449
  "typeIdentifier": "t_uint256",
@@ -20458,20 +20458,20 @@
20458
20458
  "typeString": "uint256"
20459
20459
  }
20460
20460
  ],
20461
- "id": 39233,
20461
+ "id": 39237,
20462
20462
  "name": "_ownerOf",
20463
20463
  "nodeType": "Identifier",
20464
20464
  "overloadedDeclarations": [
20465
- 39150
20465
+ 39154
20466
20466
  ],
20467
- "referencedDeclaration": 39150,
20467
+ "referencedDeclaration": 39154,
20468
20468
  "src": "7420:8:99",
20469
20469
  "typeDescriptions": {
20470
20470
  "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
20471
20471
  "typeString": "function (uint256) view returns (address)"
20472
20472
  }
20473
20473
  },
20474
- "id": 39235,
20474
+ "id": 39239,
20475
20475
  "isConstant": false,
20476
20476
  "isLValue": false,
20477
20477
  "isPure": false,
@@ -20494,11 +20494,11 @@
20494
20494
  "expression": {
20495
20495
  "arguments": [
20496
20496
  {
20497
- "id": 39240,
20497
+ "id": 39244,
20498
20498
  "name": "tokenId",
20499
20499
  "nodeType": "Identifier",
20500
20500
  "overloadedDeclarations": [],
20501
- "referencedDeclaration": 39227,
20501
+ "referencedDeclaration": 39231,
20502
20502
  "src": "7460:7:99",
20503
20503
  "typeDescriptions": {
20504
20504
  "typeIdentifier": "t_uint256",
@@ -20514,18 +20514,18 @@
20514
20514
  }
20515
20515
  ],
20516
20516
  "expression": {
20517
- "id": 39237,
20517
+ "id": 39241,
20518
20518
  "name": "super",
20519
20519
  "nodeType": "Identifier",
20520
20520
  "overloadedDeclarations": [],
20521
20521
  "referencedDeclaration": 4294967271,
20522
20522
  "src": "7448:5:99",
20523
20523
  "typeDescriptions": {
20524
- "typeIdentifier": "t_type$_t_super$_ConstantOutflowNFT_$39275_$",
20524
+ "typeIdentifier": "t_type$_t_super$_ConstantOutflowNFT_$39279_$",
20525
20525
  "typeString": "type(contract super ConstantOutflowNFT)"
20526
20526
  }
20527
20527
  },
20528
- "id": 39239,
20528
+ "id": 39243,
20529
20529
  "isConstant": false,
20530
20530
  "isLValue": false,
20531
20531
  "isPure": false,
@@ -20533,14 +20533,14 @@
20533
20533
  "memberLocation": "7454:5:99",
20534
20534
  "memberName": "_burn",
20535
20535
  "nodeType": "MemberAccess",
20536
- "referencedDeclaration": 40118,
20536
+ "referencedDeclaration": 40122,
20537
20537
  "src": "7448:11:99",
20538
20538
  "typeDescriptions": {
20539
20539
  "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
20540
20540
  "typeString": "function (uint256)"
20541
20541
  }
20542
20542
  },
20543
- "id": 39241,
20543
+ "id": 39245,
20544
20544
  "isConstant": false,
20545
20545
  "isLValue": false,
20546
20546
  "isPure": false,
@@ -20556,13 +20556,13 @@
20556
20556
  "typeString": "tuple()"
20557
20557
  }
20558
20558
  },
20559
- "id": 39242,
20559
+ "id": 39246,
20560
20560
  "nodeType": "ExpressionStatement",
20561
20561
  "src": "7448:20:99"
20562
20562
  },
20563
20563
  {
20564
20564
  "expression": {
20565
- "id": 39246,
20565
+ "id": 39250,
20566
20566
  "isConstant": false,
20567
20567
  "isLValue": false,
20568
20568
  "isPure": false,
@@ -20573,24 +20573,24 @@
20573
20573
  "src": "7532:34:99",
20574
20574
  "subExpression": {
20575
20575
  "baseExpression": {
20576
- "id": 39243,
20576
+ "id": 39247,
20577
20577
  "name": "_flowDataByTokenId",
20578
20578
  "nodeType": "Identifier",
20579
20579
  "overloadedDeclarations": [],
20580
- "referencedDeclaration": 38927,
20580
+ "referencedDeclaration": 38931,
20581
20581
  "src": "7539:18:99",
20582
20582
  "typeDescriptions": {
20583
- "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23714_storage_$",
20583
+ "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_FlowNFTData_$23717_storage_$",
20584
20584
  "typeString": "mapping(uint256 => struct IFlowNFTBase.FlowNFTData storage ref)"
20585
20585
  }
20586
20586
  },
20587
- "id": 39245,
20587
+ "id": 39249,
20588
20588
  "indexExpression": {
20589
- "id": 39244,
20589
+ "id": 39248,
20590
20590
  "name": "tokenId",
20591
20591
  "nodeType": "Identifier",
20592
20592
  "overloadedDeclarations": [],
20593
- "referencedDeclaration": 39227,
20593
+ "referencedDeclaration": 39231,
20594
20594
  "src": "7558:7:99",
20595
20595
  "typeDescriptions": {
20596
20596
  "typeIdentifier": "t_uint256",
@@ -20604,7 +20604,7 @@
20604
20604
  "nodeType": "IndexAccess",
20605
20605
  "src": "7539:27:99",
20606
20606
  "typeDescriptions": {
20607
- "typeIdentifier": "t_struct$_FlowNFTData_$23714_storage",
20607
+ "typeIdentifier": "t_struct$_FlowNFTData_$23717_storage",
20608
20608
  "typeString": "struct IFlowNFTBase.FlowNFTData storage ref"
20609
20609
  }
20610
20610
  },
@@ -20613,7 +20613,7 @@
20613
20613
  "typeString": "tuple()"
20614
20614
  }
20615
20615
  },
20616
- "id": 39247,
20616
+ "id": 39251,
20617
20617
  "nodeType": "ExpressionStatement",
20618
20618
  "src": "7532:34:99"
20619
20619
  },
@@ -20621,11 +20621,11 @@
20621
20621
  "eventCall": {
20622
20622
  "arguments": [
20623
20623
  {
20624
- "id": 39249,
20624
+ "id": 39253,
20625
20625
  "name": "owner",
20626
20626
  "nodeType": "Identifier",
20627
20627
  "overloadedDeclarations": [],
20628
- "referencedDeclaration": 39232,
20628
+ "referencedDeclaration": 39236,
20629
20629
  "src": "7642:5:99",
20630
20630
  "typeDescriptions": {
20631
20631
  "typeIdentifier": "t_address",
@@ -20636,7 +20636,7 @@
20636
20636
  "arguments": [
20637
20637
  {
20638
20638
  "hexValue": "30",
20639
- "id": 39252,
20639
+ "id": 39256,
20640
20640
  "isConstant": false,
20641
20641
  "isLValue": false,
20642
20642
  "isPure": true,
@@ -20658,7 +20658,7 @@
20658
20658
  "typeString": "int_const 0"
20659
20659
  }
20660
20660
  ],
20661
- "id": 39251,
20661
+ "id": 39255,
20662
20662
  "isConstant": false,
20663
20663
  "isLValue": false,
20664
20664
  "isPure": true,
@@ -20670,14 +20670,14 @@
20670
20670
  "typeString": "type(address)"
20671
20671
  },
20672
20672
  "typeName": {
20673
- "id": 39250,
20673
+ "id": 39254,
20674
20674
  "name": "address",
20675
20675
  "nodeType": "ElementaryTypeName",
20676
20676
  "src": "7649:7:99",
20677
20677
  "typeDescriptions": {}
20678
20678
  }
20679
20679
  },
20680
- "id": 39253,
20680
+ "id": 39257,
20681
20681
  "isConstant": false,
20682
20682
  "isLValue": false,
20683
20683
  "isPure": true,
@@ -20694,11 +20694,11 @@
20694
20694
  }
20695
20695
  },
20696
20696
  {
20697
- "id": 39254,
20697
+ "id": 39258,
20698
20698
  "name": "tokenId",
20699
20699
  "nodeType": "Identifier",
20700
20700
  "overloadedDeclarations": [],
20701
- "referencedDeclaration": 39227,
20701
+ "referencedDeclaration": 39231,
20702
20702
  "src": "7661:7:99",
20703
20703
  "typeDescriptions": {
20704
20704
  "typeIdentifier": "t_uint256",
@@ -20721,7 +20721,7 @@
20721
20721
  "typeString": "uint256"
20722
20722
  }
20723
20723
  ],
20724
- "id": 39248,
20724
+ "id": 39252,
20725
20725
  "name": "Transfer",
20726
20726
  "nodeType": "Identifier",
20727
20727
  "overloadedDeclarations": [],
@@ -20732,7 +20732,7 @@
20732
20732
  "typeString": "function (address,address,uint256)"
20733
20733
  }
20734
20734
  },
20735
- "id": 39255,
20735
+ "id": 39259,
20736
20736
  "isConstant": false,
20737
20737
  "isLValue": false,
20738
20738
  "isPure": false,
@@ -20748,19 +20748,19 @@
20748
20748
  "typeString": "tuple()"
20749
20749
  }
20750
20750
  },
20751
- "id": 39256,
20751
+ "id": 39260,
20752
20752
  "nodeType": "EmitStatement",
20753
20753
  "src": "7628:41:99"
20754
20754
  }
20755
20755
  ]
20756
20756
  },
20757
20757
  "documentation": {
20758
- "id": 39225,
20758
+ "id": 39229,
20759
20759
  "nodeType": "StructuredDocumentation",
20760
20760
  "src": "7130:209:99",
20761
20761
  "text": "@notice Destroys token with `tokenId` and clears approvals from previous owner.\n @dev `tokenId` must exist AND we emit a {Transfer} event\n @param tokenId the id of the token we are destroying"
20762
20762
  },
20763
- "id": 39258,
20763
+ "id": 39262,
20764
20764
  "implemented": true,
20765
20765
  "kind": "function",
20766
20766
  "modifiers": [],
@@ -20768,23 +20768,23 @@
20768
20768
  "nameLocation": "7353:5:99",
20769
20769
  "nodeType": "FunctionDefinition",
20770
20770
  "overrides": {
20771
- "id": 39229,
20771
+ "id": 39233,
20772
20772
  "nodeType": "OverrideSpecifier",
20773
20773
  "overrides": [],
20774
20774
  "src": "7385:8:99"
20775
20775
  },
20776
20776
  "parameters": {
20777
- "id": 39228,
20777
+ "id": 39232,
20778
20778
  "nodeType": "ParameterList",
20779
20779
  "parameters": [
20780
20780
  {
20781
20781
  "constant": false,
20782
- "id": 39227,
20782
+ "id": 39231,
20783
20783
  "mutability": "mutable",
20784
20784
  "name": "tokenId",
20785
20785
  "nameLocation": "7367:7:99",
20786
20786
  "nodeType": "VariableDeclaration",
20787
- "scope": 39258,
20787
+ "scope": 39262,
20788
20788
  "src": "7359:15:99",
20789
20789
  "stateVariable": false,
20790
20790
  "storageLocation": "default",
@@ -20793,7 +20793,7 @@
20793
20793
  "typeString": "uint256"
20794
20794
  },
20795
20795
  "typeName": {
20796
- "id": 39226,
20796
+ "id": 39230,
20797
20797
  "name": "uint256",
20798
20798
  "nodeType": "ElementaryTypeName",
20799
20799
  "src": "7359:7:99",
@@ -20808,12 +20808,12 @@
20808
20808
  "src": "7358:17:99"
20809
20809
  },
20810
20810
  "returnParameters": {
20811
- "id": 39230,
20811
+ "id": 39234,
20812
20812
  "nodeType": "ParameterList",
20813
20813
  "parameters": [],
20814
20814
  "src": "7394:0:99"
20815
20815
  },
20816
- "scope": 39275,
20816
+ "scope": 39279,
20817
20817
  "src": "7344:332:99",
20818
20818
  "stateMutability": "nonpayable",
20819
20819
  "virtual": false,
@@ -20821,7 +20821,7 @@
20821
20821
  },
20822
20822
  {
20823
20823
  "body": {
20824
- "id": 39273,
20824
+ "id": 39277,
20825
20825
  "nodeType": "Block",
20826
20826
  "src": "7712:144:99",
20827
20827
  "statements": [
@@ -20831,14 +20831,14 @@
20831
20831
  "typeIdentifier": "t_address",
20832
20832
  "typeString": "address"
20833
20833
  },
20834
- "id": 39266,
20834
+ "id": 39270,
20835
20835
  "isConstant": false,
20836
20836
  "isLValue": false,
20837
20837
  "isPure": false,
20838
20838
  "lValueRequested": false,
20839
20839
  "leftExpression": {
20840
20840
  "expression": {
20841
- "id": 39260,
20841
+ "id": 39264,
20842
20842
  "name": "msg",
20843
20843
  "nodeType": "Identifier",
20844
20844
  "overloadedDeclarations": [],
@@ -20849,7 +20849,7 @@
20849
20849
  "typeString": "msg"
20850
20850
  }
20851
20851
  },
20852
- "id": 39261,
20852
+ "id": 39265,
20853
20853
  "isConstant": false,
20854
20854
  "isLValue": false,
20855
20855
  "isPure": false,
@@ -20868,14 +20868,14 @@
20868
20868
  "rightExpression": {
20869
20869
  "arguments": [
20870
20870
  {
20871
- "id": 39264,
20871
+ "id": 39268,
20872
20872
  "name": "CONSTANT_FLOW_AGREEMENT_V1",
20873
20873
  "nodeType": "Identifier",
20874
20874
  "overloadedDeclarations": [],
20875
- "referencedDeclaration": 39312,
20875
+ "referencedDeclaration": 39316,
20876
20876
  "src": "7748:26:99",
20877
20877
  "typeDescriptions": {
20878
- "typeIdentifier": "t_contract$_IConstantFlowAgreementV1_$22729",
20878
+ "typeIdentifier": "t_contract$_IConstantFlowAgreementV1_$22732",
20879
20879
  "typeString": "contract IConstantFlowAgreementV1"
20880
20880
  }
20881
20881
  }
@@ -20883,11 +20883,11 @@
20883
20883
  "expression": {
20884
20884
  "argumentTypes": [
20885
20885
  {
20886
- "typeIdentifier": "t_contract$_IConstantFlowAgreementV1_$22729",
20886
+ "typeIdentifier": "t_contract$_IConstantFlowAgreementV1_$22732",
20887
20887
  "typeString": "contract IConstantFlowAgreementV1"
20888
20888
  }
20889
20889
  ],
20890
- "id": 39263,
20890
+ "id": 39267,
20891
20891
  "isConstant": false,
20892
20892
  "isLValue": false,
20893
20893
  "isPure": true,
@@ -20899,14 +20899,14 @@
20899
20899
  "typeString": "type(address)"
20900
20900
  },
20901
20901
  "typeName": {
20902
- "id": 39262,
20902
+ "id": 39266,
20903
20903
  "name": "address",
20904
20904
  "nodeType": "ElementaryTypeName",
20905
20905
  "src": "7740:7:99",
20906
20906
  "typeDescriptions": {}
20907
20907
  }
20908
20908
  },
20909
- "id": 39265,
20909
+ "id": 39269,
20910
20910
  "isConstant": false,
20911
20911
  "isLValue": false,
20912
20912
  "isPure": false,
@@ -20928,11 +20928,11 @@
20928
20928
  "typeString": "bool"
20929
20929
  }
20930
20930
  },
20931
- "id": 39271,
20931
+ "id": 39275,
20932
20932
  "nodeType": "IfStatement",
20933
20933
  "src": "7722:117:99",
20934
20934
  "trueBody": {
20935
- "id": 39270,
20935
+ "id": 39274,
20936
20936
  "nodeType": "Block",
20937
20937
  "src": "7777:62:99",
20938
20938
  "statements": [
@@ -20941,18 +20941,18 @@
20941
20941
  "arguments": [],
20942
20942
  "expression": {
20943
20943
  "argumentTypes": [],
20944
- "id": 39267,
20944
+ "id": 39271,
20945
20945
  "name": "COF_NFT_ONLY_FLOW_AGREEMENTS",
20946
20946
  "nodeType": "Identifier",
20947
20947
  "overloadedDeclarations": [],
20948
- "referencedDeclaration": 23661,
20948
+ "referencedDeclaration": 23664,
20949
20949
  "src": "7798:28:99",
20950
20950
  "typeDescriptions": {
20951
20951
  "typeIdentifier": "t_function_error_pure$__$returns$__$",
20952
20952
  "typeString": "function () pure"
20953
20953
  }
20954
20954
  },
20955
- "id": 39268,
20955
+ "id": 39272,
20956
20956
  "isConstant": false,
20957
20957
  "isLValue": false,
20958
20958
  "isPure": false,
@@ -20968,7 +20968,7 @@
20968
20968
  "typeString": "tuple()"
20969
20969
  }
20970
20970
  },
20971
- "id": 39269,
20971
+ "id": 39273,
20972
20972
  "nodeType": "RevertStatement",
20973
20973
  "src": "7791:37:99"
20974
20974
  }
@@ -20976,18 +20976,18 @@
20976
20976
  }
20977
20977
  },
20978
20978
  {
20979
- "id": 39272,
20979
+ "id": 39276,
20980
20980
  "nodeType": "PlaceholderStatement",
20981
20981
  "src": "7848:1:99"
20982
20982
  }
20983
20983
  ]
20984
20984
  },
20985
- "id": 39274,
20985
+ "id": 39278,
20986
20986
  "name": "onlyFlowAgreements",
20987
20987
  "nameLocation": "7691:18:99",
20988
20988
  "nodeType": "ModifierDefinition",
20989
20989
  "parameters": {
20990
- "id": 39259,
20990
+ "id": 39263,
20991
20991
  "nodeType": "ParameterList",
20992
20992
  "parameters": [],
20993
20993
  "src": "7709:2:99"
@@ -20997,24 +20997,24 @@
20997
20997
  "visibility": "internal"
20998
20998
  }
20999
20999
  ],
21000
- "scope": 39276,
21000
+ "scope": 39280,
21001
21001
  "src": "1062:6796:99",
21002
21002
  "usedErrors": [
21003
- 23653,
21004
- 23655,
21005
- 23657,
21006
- 23659,
21007
- 23661,
21008
- 23663,
21009
- 23716,
21010
- 23718,
21011
- 23720,
21012
- 23722,
21013
- 23724,
21014
- 23726,
21015
- 23728,
21016
- 23730,
21017
- 23732
21003
+ 23656,
21004
+ 23658,
21005
+ 23660,
21006
+ 23662,
21007
+ 23664,
21008
+ 23666,
21009
+ 23719,
21010
+ 23721,
21011
+ 23723,
21012
+ 23725,
21013
+ 23727,
21014
+ 23729,
21015
+ 23731,
21016
+ 23733,
21017
+ 23735
21018
21018
  ]
21019
21019
  }
21020
21020
  ],
@@ -21026,7 +21026,7 @@
21026
21026
  },
21027
21027
  "networks": {},
21028
21028
  "schemaVersion": "3.4.13",
21029
- "updatedAt": "2023-07-12T14:59:21.941Z",
21029
+ "updatedAt": "2023-08-03T14:52:18.618Z",
21030
21030
  "devdoc": {
21031
21031
  "author": "Superfluid",
21032
21032
  "details": "This contract uses mint/burn interface for flow creation/deletion and holds the actual storage for both NFTs.",