@etherisc/gif-next 0.0.2-d67ce7f-686 → 0.0.2-d6a50e7-658

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 (503) hide show
  1. package/README.md +32 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +97 -37
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +175 -371
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +115 -295
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +239 -295
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +125 -119
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -64
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  71. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  72. package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +927 -262
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +692 -443
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  89. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +127 -323
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +102 -130
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -283
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +125 -305
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +170 -337
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -133
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +86 -67
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -163
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +303 -207
  134. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  135. package/artifacts/contracts/pool/Pool.sol/Pool.json +122 -313
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  137. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +384 -410
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +122 -104
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  143. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  145. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +238 -357
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  147. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  149. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +421 -222
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +142 -108
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  153. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  155. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +303 -9
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  157. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +302 -150
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  161. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  163. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  165. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +347 -378
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +115 -109
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  172. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  173. package/artifacts/contracts/product/Product.sol/Product.json +236 -355
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +315 -34
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +89 -240
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +502 -617
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -133
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +448 -260
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  238. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  244. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +102 -282
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  246. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  250. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  254. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  258. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  259. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +674 -49
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  264. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  266. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +134 -125
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  270. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +64 -94
  273. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  274. package/artifacts/contracts/staking/Staking.sol/Staking.json +217 -359
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +119 -104
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  284. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  288. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  289. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  291. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  292. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  302. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  306. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  325. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/contracts/accounting/AccountingService.sol +262 -0
  340. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  341. package/contracts/accounting/IAccountingService.sol +45 -0
  342. package/contracts/authorization/AccessAdmin.sol +192 -124
  343. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  344. package/contracts/authorization/Authorization.sol +111 -40
  345. package/contracts/authorization/IAccess.sol +1 -0
  346. package/contracts/authorization/IAccessAdmin.sol +10 -6
  347. package/contracts/authorization/IAuthorization.sol +13 -7
  348. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  349. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  350. package/contracts/distribution/BasicDistribution.sol +8 -7
  351. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  352. package/contracts/distribution/Distribution.sol +33 -41
  353. package/contracts/distribution/DistributionService.sol +112 -91
  354. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  355. package/contracts/distribution/IDistributionComponent.sol +1 -1
  356. package/contracts/distribution/IDistributionService.sol +14 -11
  357. package/contracts/examples/fire/DamageLevel.sol +59 -0
  358. package/contracts/examples/fire/FirePool.sol +90 -0
  359. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  360. package/contracts/examples/fire/FireProduct.sol +438 -0
  361. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  362. package/contracts/examples/fire/FireUSD.sol +26 -0
  363. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  364. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  366. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  367. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  368. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  369. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  370. package/contracts/instance/BundleSet.sol +42 -38
  371. package/contracts/instance/IInstance.sol +16 -36
  372. package/contracts/instance/IInstanceService.sol +9 -29
  373. package/contracts/instance/Instance.sol +47 -66
  374. package/contracts/instance/InstanceAdmin.sol +133 -73
  375. package/contracts/instance/InstanceAuthorizationV3.sol +55 -34
  376. package/contracts/instance/InstanceReader.sol +218 -27
  377. package/contracts/instance/InstanceService.sol +125 -164
  378. package/contracts/instance/InstanceServiceManager.sol +6 -7
  379. package/contracts/instance/InstanceStore.sol +23 -2
  380. package/contracts/instance/RiskSet.sol +118 -0
  381. package/contracts/instance/base/ObjectCounter.sol +1 -2
  382. package/contracts/instance/base/ObjectLifecycle.sol +10 -1
  383. package/contracts/instance/base/ObjectSet.sol +31 -33
  384. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  385. package/contracts/instance/module/IComponents.sol +14 -10
  386. package/contracts/instance/module/IPolicy.sol +25 -24
  387. package/contracts/instance/module/IRisk.sol +3 -0
  388. package/contracts/oracle/BasicOracle.sol +0 -1
  389. package/contracts/oracle/IOracleService.sol +2 -1
  390. package/contracts/oracle/Oracle.sol +7 -17
  391. package/contracts/oracle/OracleService.sol +113 -81
  392. package/contracts/oracle/OracleServiceManager.sol +6 -6
  393. package/contracts/pool/BasicPool.sol +35 -26
  394. package/contracts/pool/BasicPoolAuthorization.sol +14 -4
  395. package/contracts/pool/BundleService.sol +105 -117
  396. package/contracts/pool/BundleServiceManager.sol +6 -6
  397. package/contracts/pool/IBundleService.sol +8 -20
  398. package/contracts/pool/IPoolComponent.sol +19 -15
  399. package/contracts/pool/IPoolService.sol +52 -48
  400. package/contracts/pool/Pool.sol +145 -128
  401. package/contracts/pool/PoolService.sol +297 -207
  402. package/contracts/pool/PoolServiceManager.sol +4 -4
  403. package/contracts/product/ApplicationService.sol +72 -43
  404. package/contracts/product/ApplicationServiceManager.sol +4 -4
  405. package/contracts/product/BasicProduct.sol +11 -12
  406. package/contracts/product/BasicProductAuthorization.sol +1 -3
  407. package/contracts/product/ClaimService.sol +422 -138
  408. package/contracts/product/ClaimServiceManager.sol +4 -4
  409. package/contracts/product/IApplicationService.sol +6 -2
  410. package/contracts/product/IClaimService.sol +43 -7
  411. package/contracts/product/IPolicyService.sol +42 -37
  412. package/contracts/product/IPricingService.sol +10 -10
  413. package/contracts/product/IProductComponent.sol +27 -5
  414. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  415. package/contracts/product/PolicyService.sol +477 -283
  416. package/contracts/product/PolicyServiceManager.sol +4 -4
  417. package/contracts/product/PricingService.sol +66 -62
  418. package/contracts/product/PricingServiceManager.sol +4 -4
  419. package/contracts/product/Product.sol +143 -91
  420. package/contracts/product/RiskService.sol +151 -0
  421. package/contracts/product/RiskServiceManager.sol +39 -0
  422. package/contracts/registry/ChainNft.sol +72 -40
  423. package/contracts/registry/IRegistry.sol +58 -28
  424. package/contracts/registry/IRegistryService.sol +5 -12
  425. package/contracts/registry/IRelease.sol +26 -0
  426. package/contracts/registry/ITransferInterceptor.sol +1 -2
  427. package/contracts/registry/Registry.sol +353 -203
  428. package/contracts/registry/RegistryAdmin.sol +161 -182
  429. package/contracts/registry/RegistryService.sol +37 -48
  430. package/contracts/registry/RegistryServiceManager.sol +3 -3
  431. package/contracts/registry/ReleaseAdmin.sol +245 -0
  432. package/contracts/registry/ReleaseLifecycle.sol +8 -3
  433. package/contracts/registry/ReleaseRegistry.sol +258 -232
  434. package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
  435. package/contracts/registry/TokenRegistry.sol +6 -8
  436. package/contracts/shared/Component.sol +72 -127
  437. package/contracts/shared/ComponentService.sol +427 -377
  438. package/contracts/shared/ComponentServiceManager.sol +8 -5
  439. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  440. package/contracts/shared/ContractLib.sol +252 -0
  441. package/contracts/shared/IComponent.sol +8 -18
  442. package/contracts/shared/IComponentService.sol +45 -37
  443. package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
  444. package/contracts/shared/ILifecycle.sol +3 -1
  445. package/contracts/shared/INftOwnable.sol +2 -0
  446. package/contracts/shared/IPolicyHolder.sol +12 -22
  447. package/contracts/shared/IRegisterable.sol +23 -1
  448. package/contracts/shared/IService.sol +3 -5
  449. package/contracts/shared/InitializableERC165.sol +2 -2
  450. package/contracts/shared/InstanceLinkedComponent.sol +72 -47
  451. package/contracts/shared/KeyValueStore.sol +1 -1
  452. package/contracts/shared/Lifecycle.sol +15 -4
  453. package/contracts/shared/NftOwnable.sol +29 -9
  454. package/contracts/shared/PolicyHolder.sol +15 -52
  455. package/contracts/shared/Registerable.sol +55 -21
  456. package/contracts/shared/RegistryLinked.sol +9 -14
  457. package/contracts/shared/Service.sol +15 -32
  458. package/contracts/shared/TokenHandler.sol +356 -29
  459. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  460. package/contracts/staking/IStaking.sol +11 -5
  461. package/contracts/staking/IStakingService.sol +0 -3
  462. package/contracts/staking/StakeManagerLib.sol +18 -25
  463. package/contracts/staking/Staking.sol +71 -61
  464. package/contracts/staking/StakingManager.sol +8 -6
  465. package/contracts/staking/StakingReader.sol +12 -5
  466. package/contracts/staking/StakingService.sol +57 -25
  467. package/contracts/staking/StakingServiceManager.sol +2 -2
  468. package/contracts/staking/TargetManagerLib.sol +7 -3
  469. package/contracts/type/Amount.sol +15 -0
  470. package/contracts/type/ClaimId.sol +6 -1
  471. package/contracts/type/Key32.sol +2 -2
  472. package/contracts/type/Key32Set.sol +62 -0
  473. package/contracts/type/NftId.sol +7 -0
  474. package/contracts/type/ObjectType.sol +36 -17
  475. package/contracts/type/PayoutId.sol +10 -10
  476. package/contracts/type/RiskId.sol +35 -4
  477. package/contracts/type/RoleId.sol +4 -13
  478. package/contracts/type/Seconds.sol +8 -0
  479. package/contracts/type/StateId.sol +15 -1
  480. package/contracts/type/Timestamp.sol +0 -5
  481. package/contracts/type/UFixed.sol +13 -119
  482. package/contracts/type/Version.sol +15 -5
  483. package/contracts/upgradeability/ProxyManager.sol +68 -34
  484. package/contracts/upgradeability/Versionable.sol +2 -2
  485. package/package.json +4 -3
  486. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  487. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  488. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  489. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  490. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  491. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  492. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  493. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  494. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  495. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  496. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  497. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  498. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  499. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  500. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  501. package/contracts/product/ProductService.sol +0 -99
  502. package/contracts/product/ProductServiceManager.sol +0 -39
  503. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,20 +1,19 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
4
 
6
5
  import {AccessAdmin} from "../authorization/AccessAdmin.sol";
7
6
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
8
- import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
9
7
  import {IAuthorization} from "../authorization/IAuthorization.sol";
10
- import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
11
10
  import {IRegistry} from "../registry/IRegistry.sol";
12
11
  import {IInstance} from "./IInstance.sol";
13
- import {IService} from "../shared/IService.sol";
14
- import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
15
- import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
12
+ import {ObjectType} from "../type/ObjectType.sol";
13
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
16
14
  import {Str, StrLib} from "../type/String.sol";
17
- import {VersionPart} from "../type/Version.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
18
17
 
19
18
 
20
19
  contract InstanceAdmin is
@@ -24,77 +23,86 @@ contract InstanceAdmin is
24
23
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
25
24
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
26
25
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
+ string public constant RISK_SET_TAGET_NAME = "RiskSet";
27
27
 
28
28
  uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
29
29
 
30
+ error ErrorInstanceAdminCallerNotInstanceOwner(address caller);
31
+ error ErrorInstanceAdminInstanceAlreadyLocked();
30
32
  error ErrorInstanceAdminNotRegistered(address target);
31
33
  error ErrorInstanceAdminAlreadyAuthorized(address target);
32
34
  error ErrorInstanceAdminReleaseMismatch();
33
35
  error ErrorInstanceAdminExpectedTargetMissing(string targetName);
34
36
 
35
- IInstance _instance;
37
+ IInstance internal _instance;
36
38
  IRegistry internal _registry;
37
- uint64 _idNext;
39
+ uint64 internal _idNext;
40
+
41
+ IAuthorization internal _instanceAuthorization;
42
+
38
43
 
39
- IModuleAuthorization _instanceAuthorization;
44
+ modifier onlyInstanceOwner() {
45
+ if(msg.sender != _registry.ownerOf(address(_instance))) {
46
+ revert ErrorInstanceAdminCallerNotInstanceOwner(msg.sender);
47
+ }
48
+ _;
49
+ }
40
50
 
41
51
  /// @dev Only used for master instance admin.
42
52
  /// Contracts created via constructor come with disabled initializers.
43
53
  constructor(
44
- IModuleAuthorization instanceAuthorization
45
- )
46
- AccessAdmin()
47
- {
48
- _instanceAuthorization = instanceAuthorization;
54
+ address instanceAuthorization
55
+ ) {
56
+ initialize(new AccessManagerCloneable());
57
+
58
+ _instanceAuthorization = IAuthorization(instanceAuthorization);
59
+
60
+ _disableInitializers();
49
61
  }
50
62
 
51
- /// @dev Initializes this instance admin with the provided instances authorization specification.
52
- /// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
53
- /// for the inststance authorizatios.
54
- /// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
63
+
55
64
  function initialize(
56
- AccessManagerCloneable accessManager,
57
- IModuleAuthorization instanceAuthorization
65
+ AccessManagerCloneable clonedAccessManager,
66
+ IRegistry registry,
67
+ VersionPart release
58
68
  )
59
69
  external
60
- initializer()
70
+ initializer()
61
71
  {
62
- // create new access manager for this instance admin
63
- _initializeAuthority(address(accessManager));
72
+ __AccessAdmin_init(clonedAccessManager);
64
73
 
65
- // create basic instance independent setup
66
- _createAdminAndPublicRoles();
74
+ clonedAccessManager.completeSetup(
75
+ address(registry),
76
+ release);
67
77
 
68
- // store instance authorization specification
69
- _instanceAuthorization = IModuleAuthorization(instanceAuthorization);
78
+ _registry = registry;
70
79
  }
71
80
 
72
- function _checkTargetIsReadyForAuthorization(address target)
73
- internal
74
- view
75
- {
76
- if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
77
- revert ErrorInstanceAdminNotRegistered(target);
78
- }
79
-
80
- if (targetExists(target)) {
81
- revert ErrorInstanceAdminAlreadyAuthorized(target);
82
- }
83
- }
84
81
 
85
- /// @dev Completes the initialization of this instance admin using the provided instance.
82
+ /// @dev Completes the initialization of this instance admin using the provided instance, registry and version.
83
+ /// Important: Initialization of instance admin is only complete after calling this function.
86
84
  /// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
87
- function initializeInstanceAuthorization(address instanceAddress)
85
+ function completeSetup(
86
+ address instance,
87
+ address authorization
88
+ )
88
89
  external
90
+ reinitializer(uint64(getRelease().toInt()))
91
+ onlyDeployer()
89
92
  {
90
- _checkTargetIsReadyForAuthorization(instanceAddress);
91
-
92
93
  _idNext = CUSTOM_ROLE_ID_MIN;
93
- _instance = IInstance(instanceAddress);
94
- _registry = _instance.getRegistry();
94
+ _instance = IInstance(instance);
95
+ _instanceAuthorization = IAuthorization(authorization);
96
+
97
+ // AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
98
+ // accessManager.completeSetup(
99
+ // address(_registry),
100
+ // release);
101
+
102
+ _checkTargetIsReadyForAuthorization(instance);
95
103
 
96
104
  // check matching releases
97
- if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
105
+ if (_instanceAuthorization.getRelease() != getRelease()) {
98
106
  revert ErrorInstanceAdminReleaseMismatch();
99
107
  }
100
108
 
@@ -102,50 +110,61 @@ contract InstanceAdmin is
102
110
  _createRoles(_instanceAuthorization);
103
111
  _createModuleTargetsWithRoles();
104
112
  _createTargetAuthorizations(_instanceAuthorization);
105
-
106
- // grant component owner roles to instance owner
107
- _grantComponentOwnerRoles();
108
113
  }
109
114
 
110
115
 
111
116
  /// @dev Initializes the authorization for the specified component.
112
117
  /// Important: The component MUST be registered.
113
118
  function initializeComponentAuthorization(
114
- address componentAddress,
115
- IAuthorization authorization
119
+ IInstanceLinkedComponent component
116
120
  )
117
121
  external
118
122
  {
119
- _checkTargetIsReadyForAuthorization(componentAddress);
123
+ // !!! TODO add caller restrictions?
120
124
 
125
+ _checkTargetIsReadyForAuthorization(address(component));
126
+
127
+ // get authorization specification
128
+ IAuthorization authorization = component.getAuthorization();
129
+ string memory targetName = authorization.getTargetName();
130
+ _checkTargetIsReadyForAuthorization(address(component));
131
+
132
+
133
+ // create roles
121
134
  _createRoles(authorization);
122
135
 
123
136
  // create component target
124
137
  _createTarget(
125
- componentAddress,
126
- authorization.getTargetName(),
138
+ address(component),
139
+ targetName,
127
140
  true, // checkAuthority
128
141
  false); // custom
129
142
 
143
+ _createTarget(
144
+ address(component.getTokenHandler()),
145
+ string(abi.encodePacked(targetName, "TH")),
146
+ true,
147
+ false);
148
+
149
+ FunctionInfo[] memory functions = new FunctionInfo[](3);
150
+ functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
151
+ functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
152
+ functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
153
+
154
+ // FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
155
+ _authorizeTargetFunctions(
156
+ address(component.getTokenHandler()),
157
+ getPublicRole(),
158
+ functions);
159
+
130
160
  _grantRoleToAccount(
131
161
  authorization.getTargetRole(
132
- authorization.getTarget()),
133
- componentAddress);
162
+ authorization.getMainTarget()),
163
+ address(component));
134
164
 
135
165
  _createTargetAuthorizations(authorization);
136
166
  }
137
167
 
138
-
139
- function _grantComponentOwnerRoles()
140
- internal
141
- {
142
- address instanceOwner = _registry.ownerOf(_instance.getNftId());
143
- _grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
144
- _grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
145
- _grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
146
- _grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
147
- }
148
-
149
168
  /// @dev Creates a custom role
150
169
  // TODO implement
151
170
  // function createRole()
@@ -165,15 +184,52 @@ contract InstanceAdmin is
165
184
  _grantRoleToAccount(roleId, account);
166
185
  }
167
186
 
187
+
188
+ function setInstanceLocked(bool locked)
189
+ external
190
+ onlyInstanceOwner()
191
+ {
192
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
193
+
194
+ if(accessManager.isLocked() == locked) {
195
+ revert ErrorInstanceAdminInstanceAlreadyLocked();
196
+ }
197
+ accessManager.setLocked(locked);
198
+ }
199
+
200
+ function setTargetLocked(address target, bool locked)
201
+ external
202
+ restricted()
203
+ {
204
+ _setTargetClosed(target, locked);
205
+ }
206
+
207
+
208
+
168
209
  /// @dev Returns the instance authorization specification used to set up this instance admin.
169
210
  function getInstanceAuthorization()
170
211
  external
171
212
  view
172
- returns (IModuleAuthorization instanceAuthorizaion)
213
+ returns (IAuthorization instanceAuthorizaion)
173
214
  {
174
215
  return _instanceAuthorization;
175
216
  }
176
217
 
218
+ // ------------------- Internal functions ------------------- //
219
+
220
+ function _checkTargetIsReadyForAuthorization(address target)
221
+ internal
222
+ view
223
+ {
224
+ if (!_registry.isRegistered(target)) {
225
+ revert ErrorInstanceAdminNotRegistered(target);
226
+ }
227
+
228
+ if (targetExists(target)) {
229
+ revert ErrorInstanceAdminAlreadyAuthorized(target);
230
+ }
231
+ }
232
+
177
233
 
178
234
  function _createRoles(IAuthorization authorization)
179
235
  internal
@@ -184,9 +240,12 @@ contract InstanceAdmin is
184
240
 
185
241
  for(uint256 i = 0; i < roles.length; i++) {
186
242
  roleId = roles[i];
187
- _createRole(
188
- roleId,
189
- authorization.getRoleInfo(roleId));
243
+
244
+ if (!roleExists(roleId)) {
245
+ _createRole(
246
+ roleId,
247
+ authorization.getRoleInfo(roleId));
248
+ }
190
249
  }
191
250
  }
192
251
 
@@ -231,7 +290,7 @@ contract InstanceAdmin is
231
290
  _createTarget(
232
291
  target,
233
292
  targetName,
234
- false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
293
+ false, // check authority TODO check normal targets, don't check service targets (they share authority with release admin)
235
294
  false);
236
295
 
237
296
  // assign target role if defined
@@ -249,6 +308,7 @@ contract InstanceAdmin is
249
308
  _checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
250
309
  _checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
251
310
  _checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
311
+ _checkAndCreateTargetWithRole(address(_instance.getRiskSet()), RISK_SET_TAGET_NAME);
252
312
 
253
313
  // create targets for services that need to access the module targets
254
314
  ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
@@ -2,49 +2,38 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
5
+ ACCOUNTING, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, RISK
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
- import {
9
- ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
10
- } from "../../contracts/type/RoleId.sol";
11
-
12
- import {BundleSet} from "../instance/BundleSet.sol";
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {RiskSet} from "../instance/RiskSet.sol";
13
10
  import {IAccess} from "../authorization/IAccess.sol";
14
11
  import {Instance} from "../instance/Instance.sol";
15
12
  import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
16
13
  import {InstanceStore} from "../instance/InstanceStore.sol";
17
- import {ModuleAuthorization} from "../authorization/ModuleAuthorization.sol";
18
- import {RoleId} from "../type/RoleId.sol";
19
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
14
+ import {Authorization} from "../authorization/Authorization.sol";
20
15
 
21
16
 
22
17
  contract InstanceAuthorizationV3
23
- is ModuleAuthorization
18
+ is Authorization
24
19
  {
25
20
 
21
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
22
+
26
23
  string public constant INSTANCE_TARGET_NAME = "Instance";
27
24
  string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
28
25
  string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
29
26
  string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
27
+ string public constant RISK_SET_TARGET_NAME = "RiskSet";
30
28
 
31
- string public constant INSTANCE_ROLE_NAME = "InstanceRole";
32
- string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
33
- string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
34
- string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
35
- string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
36
-
37
- constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
29
+ constructor() Authorization(INSTANCE_TARGET_NAME) {}
38
30
 
39
31
 
40
32
  function _setupRoles()
41
33
  internal
42
34
  override
43
35
  {
44
- _addGifRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME);
45
- _addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
46
- _addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
47
- _addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
36
+ // empty implementation
48
37
  }
49
38
 
50
39
 
@@ -55,22 +44,24 @@ contract InstanceAuthorizationV3
55
44
  // instance target
56
45
  _addTargetWithRole(
57
46
  INSTANCE_TARGET_NAME,
58
- _getTargetRoleId(INSTANCE()),
47
+ _toTargetRoleId(INSTANCE()),
59
48
  INSTANCE_ROLE_NAME);
60
49
 
61
50
  // instance supporting targets
62
51
  _addTarget(INSTANCE_STORE_TARGET_NAME);
63
52
  _addTarget(INSTANCE_ADMIN_TARGET_NAME);
64
53
  _addTarget(BUNDLE_SET_TARGET_NAME);
54
+ _addTarget(RISK_SET_TARGET_NAME);
65
55
 
66
56
  // service targets relevant to instance
67
57
  _addServiceTargetWithRole(INSTANCE());
58
+ _addServiceTargetWithRole(ACCOUNTING());
68
59
  _addServiceTargetWithRole(COMPONENT());
69
60
  _addServiceTargetWithRole(DISTRIBUTION());
70
61
  _addServiceTargetWithRole(ORACLE());
71
62
  _addServiceTargetWithRole(POOL());
72
63
  _addServiceTargetWithRole(BUNDLE());
73
- _addServiceTargetWithRole(PRODUCT());
64
+ _addServiceTargetWithRole(RISK());
74
65
  _addServiceTargetWithRole(APPLICATION());
75
66
  _addServiceTargetWithRole(POLICY());
76
67
  _addServiceTargetWithRole(CLAIM());
@@ -85,6 +76,7 @@ contract InstanceAuthorizationV3
85
76
  _setupInstanceAdminAuthorization();
86
77
  _setupInstanceStoreAuthorization();
87
78
  _setupBundleSetAuthorization();
79
+ _setUpRiskSetAuthorization();
88
80
  }
89
81
 
90
82
 
@@ -95,11 +87,31 @@ contract InstanceAuthorizationV3
95
87
 
96
88
  // authorize bundle service role
97
89
  functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
98
- _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
99
- _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
100
90
  _authorize(functions, BundleSet.add.selector, "add");
101
91
  _authorize(functions, BundleSet.lock.selector, "lock");
102
92
  _authorize(functions, BundleSet.unlock.selector, "unlock");
93
+
94
+ // authorize bundle service role
95
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(POLICY()));
96
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
97
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
98
+ }
99
+
100
+ function _setUpRiskSetAuthorization()
101
+ internal
102
+ {
103
+ IAccess.FunctionInfo[] storage functions;
104
+
105
+ // authorize risk service role
106
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(RISK()));
107
+ _authorize(functions, RiskSet.add.selector, "add");
108
+ _authorize(functions, RiskSet.pause.selector, "pause");
109
+ _authorize(functions, RiskSet.activate.selector, "activate");
110
+
111
+ // authorize policy service role
112
+ functions = _authorizeForTarget(RISK_SET_TARGET_NAME, getServiceRole(POLICY()));
113
+ _authorize(functions, RiskSet.linkPolicy.selector, "linkPolicy");
114
+ _authorize(functions, RiskSet.unlinkPolicy.selector, "unlinkPolicy");
103
115
  }
104
116
 
105
117
 
@@ -120,11 +132,12 @@ contract InstanceAuthorizationV3
120
132
  IAccess.FunctionInfo[] storage functions;
121
133
 
122
134
  // authorize instance role
123
- functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
135
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
124
136
  _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
125
137
 
126
- // authorize instance service role
127
- // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
138
+ // authorize component service role
139
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(COMPONENT()));
140
+ _authorize(functions, InstanceAdmin.setTargetLocked.selector, "setTargetLocked");
128
141
  }
129
142
 
130
143
 
@@ -133,6 +146,13 @@ contract InstanceAuthorizationV3
133
146
  {
134
147
  IAccess.FunctionInfo[] storage functions;
135
148
 
149
+ // authorize accounting service role
150
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ACCOUNTING()));
151
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
152
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
153
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
154
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
155
+
136
156
  // authorize component service role
137
157
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
138
158
  _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
@@ -140,11 +160,9 @@ contract InstanceAuthorizationV3
140
160
  _authorize(functions, InstanceStore.createPool.selector, "createPool");
141
161
  _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
142
162
  _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
143
- _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
144
- _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
145
- _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
146
- _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
147
-
163
+ _authorize(functions, InstanceStore.createFee.selector, "createFee");
164
+ _authorize(functions, InstanceStore.updateFee.selector, "updateFee");
165
+
148
166
  // authorize distribution service role
149
167
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
150
168
  _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
@@ -176,7 +194,7 @@ contract InstanceAuthorizationV3
176
194
  _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
177
195
 
178
196
  // authorize product service role
179
- functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
197
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(RISK()));
180
198
  _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
181
199
  _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
182
200
  _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
@@ -191,6 +209,8 @@ contract InstanceAuthorizationV3
191
209
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
192
210
  _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
193
211
  _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
212
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
213
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
194
214
 
195
215
  // authorize claim service role
196
216
  functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
@@ -199,6 +219,7 @@ contract InstanceAuthorizationV3
199
219
  _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
200
220
  _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
201
221
  _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
222
+ _authorize(functions, InstanceStore.updatePayoutState.selector, "updatePayoutState");
202
223
  }
203
224
  }
204
225