@etherisc/gif-next 0.0.2-d02cb80-460 → 0.0.2-d0b1ffb-653

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 (730) hide show
  1. package/README.md +59 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json} +125 -11
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1439 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +830 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2077 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +311 -1361
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +349 -234
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +377 -2575
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1023 -387
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +433 -531
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +338 -152
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -144
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  92. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  93. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +339 -294
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +960 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  139. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +251 -241
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  145. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  151. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
  152. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +150 -187
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  162. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  163. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  169. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +646 -129
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +305 -233
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  176. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/Registry.sol/Registry.json +974 -155
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +296 -343
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +329 -133
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/shared/Component.sol/Component.json +725 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +155 -150
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +300 -189
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +381 -327
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +40 -31
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  219. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IService.sol/IService.json +119 -165
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  224. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  229. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +96 -48
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  240. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Service.sol/Service.json +150 -176
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  244. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  246. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  248. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  250. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  252. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  254. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  256. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  258. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  260. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  262. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  264. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  266. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  268. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  270. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  272. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  282. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  284. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  286. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  288. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  290. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  292. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  294. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  296. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  298. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  304. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  306. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  308. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  310. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  312. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  322. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  324. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  326. package/contracts/authorization/AccessAdmin.sol +596 -0
  327. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  328. package/contracts/authorization/Authorization.sol +289 -0
  329. package/contracts/authorization/IAccess.sol +49 -0
  330. package/contracts/authorization/IAccessAdmin.sol +137 -0
  331. package/contracts/authorization/IAuthorization.sol +60 -0
  332. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  333. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  334. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  335. package/contracts/distribution/BasicDistribution.sol +139 -0
  336. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  337. package/contracts/distribution/Distribution.sol +285 -0
  338. package/contracts/distribution/DistributionService.sol +354 -0
  339. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  340. package/contracts/distribution/IDistributionComponent.sol +52 -0
  341. package/contracts/distribution/IDistributionService.sol +101 -0
  342. package/contracts/examples/fire/DamageLevel.sol +59 -0
  343. package/contracts/examples/fire/FirePool.sol +75 -0
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  345. package/contracts/examples/fire/FireProduct.sol +412 -0
  346. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  347. package/contracts/examples/fire/FireUSD.sol +26 -0
  348. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  349. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  350. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  351. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  352. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
  353. package/contracts/instance/IInstance.sol +57 -51
  354. package/contracts/instance/IInstanceService.sol +54 -24
  355. package/contracts/instance/Instance.sol +167 -211
  356. package/contracts/instance/InstanceAdmin.sol +277 -0
  357. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  358. package/contracts/instance/InstanceReader.sol +264 -84
  359. package/contracts/instance/InstanceService.sol +320 -221
  360. package/contracts/instance/InstanceServiceManager.sol +14 -32
  361. package/contracts/instance/InstanceStore.sol +287 -0
  362. package/contracts/instance/base/BalanceStore.sol +123 -0
  363. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  364. package/contracts/instance/base/ObjectCounter.sol +21 -0
  365. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  366. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
  367. package/contracts/instance/module/IAccess.sol +20 -22
  368. package/contracts/instance/module/IBundle.sol +8 -8
  369. package/contracts/instance/module/IComponents.sol +51 -0
  370. package/contracts/instance/module/IDistribution.sol +6 -4
  371. package/contracts/instance/module/IPolicy.sol +58 -19
  372. package/contracts/instance/module/IRisk.sol +1 -1
  373. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  374. package/contracts/oracle/BasicOracle.sol +47 -0
  375. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  376. package/contracts/oracle/IOracle.sol +36 -0
  377. package/contracts/oracle/IOracleComponent.sol +33 -0
  378. package/contracts/oracle/IOracleService.sol +66 -0
  379. package/contracts/oracle/Oracle.sol +156 -0
  380. package/contracts/oracle/OracleService.sol +291 -0
  381. package/contracts/oracle/OracleServiceManager.sol +39 -0
  382. package/contracts/pool/BasicPool.sol +154 -0
  383. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  384. package/contracts/pool/BundleService.sol +461 -0
  385. package/contracts/pool/BundleServiceManager.sol +39 -0
  386. package/contracts/pool/IBundleService.sol +143 -0
  387. package/contracts/pool/IPoolComponent.sol +68 -0
  388. package/contracts/pool/IPoolService.sol +167 -0
  389. package/contracts/pool/Pool.sol +335 -0
  390. package/contracts/pool/PoolService.sol +525 -0
  391. package/contracts/pool/PoolServiceManager.sol +39 -0
  392. package/contracts/product/ApplicationService.sol +251 -0
  393. package/contracts/product/ApplicationServiceManager.sol +38 -0
  394. package/contracts/product/BasicProduct.sol +53 -0
  395. package/contracts/product/BasicProductAuthorization.sol +42 -0
  396. package/contracts/product/ClaimService.sol +591 -0
  397. package/contracts/product/ClaimServiceManager.sol +38 -0
  398. package/contracts/product/IApplicationService.sol +63 -0
  399. package/contracts/product/IClaimService.sol +123 -0
  400. package/contracts/product/IPolicyService.sol +80 -0
  401. package/contracts/product/IPricingService.sol +39 -0
  402. package/contracts/product/IProductComponent.sol +59 -0
  403. package/contracts/product/IRiskService.sol +33 -0
  404. package/contracts/product/PolicyService.sol +683 -0
  405. package/contracts/product/PolicyServiceManager.sol +39 -0
  406. package/contracts/product/PricingService.sol +297 -0
  407. package/contracts/product/PricingServiceManager.sol +39 -0
  408. package/contracts/product/Product.sol +455 -0
  409. package/contracts/product/RiskService.sol +96 -0
  410. package/contracts/product/RiskServiceManager.sol +39 -0
  411. package/contracts/registry/ChainNft.sol +78 -33
  412. package/contracts/registry/IRegistry.sol +125 -35
  413. package/contracts/registry/IRegistryService.sol +40 -28
  414. package/contracts/registry/ITransferInterceptor.sol +1 -1
  415. package/contracts/registry/Registry.sol +542 -273
  416. package/contracts/registry/RegistryAdmin.sol +448 -0
  417. package/contracts/registry/RegistryService.sol +116 -233
  418. package/contracts/registry/RegistryServiceManager.sol +26 -53
  419. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  420. package/contracts/registry/ReleaseRegistry.sol +501 -0
  421. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  422. package/contracts/registry/TokenRegistry.sol +261 -57
  423. package/contracts/shared/Component.sol +265 -0
  424. package/contracts/shared/ComponentService.sol +735 -0
  425. package/contracts/shared/ComponentServiceManager.sol +38 -0
  426. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  427. package/contracts/shared/ContractLib.sol +38 -0
  428. package/contracts/shared/IComponent.sol +74 -0
  429. package/contracts/shared/IComponentService.sol +120 -0
  430. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  431. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  432. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  433. package/contracts/shared/INftOwnable.sol +15 -12
  434. package/contracts/shared/IPolicyHolder.sol +35 -0
  435. package/contracts/shared/IRegisterable.sol +15 -6
  436. package/contracts/shared/IRegistryLinked.sol +11 -0
  437. package/contracts/shared/IService.sol +16 -6
  438. package/contracts/shared/InitializableERC165.sol +27 -0
  439. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  440. package/contracts/shared/KeyValueStore.sol +131 -0
  441. package/contracts/shared/Lifecycle.sol +88 -0
  442. package/contracts/shared/NftIdSet.sol +65 -0
  443. package/contracts/shared/NftOwnable.sol +71 -82
  444. package/contracts/shared/PolicyHolder.sol +62 -0
  445. package/contracts/shared/Registerable.sol +34 -39
  446. package/contracts/shared/RegistryLinked.sol +44 -0
  447. package/contracts/shared/Service.sol +61 -32
  448. package/contracts/shared/TokenHandler.sol +122 -10
  449. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  450. package/contracts/staking/IStaking.sol +168 -0
  451. package/contracts/staking/IStakingService.sol +157 -0
  452. package/contracts/staking/StakeManagerLib.sol +224 -0
  453. package/contracts/staking/Staking.sol +497 -0
  454. package/contracts/staking/StakingLifecycle.sol +23 -0
  455. package/contracts/staking/StakingManager.sol +52 -0
  456. package/contracts/staking/StakingReader.sol +190 -0
  457. package/contracts/staking/StakingService.sol +393 -0
  458. package/contracts/staking/StakingServiceManager.sol +44 -0
  459. package/contracts/staking/StakingStore.sol +605 -0
  460. package/contracts/staking/TargetManagerLib.sol +211 -0
  461. package/contracts/{types → type}/AddressSet.sol +1 -1
  462. package/contracts/type/Amount.sol +150 -0
  463. package/contracts/{types → type}/Blocknumber.sol +27 -3
  464. package/contracts/type/ClaimId.sol +80 -0
  465. package/contracts/{types → type}/DistributorType.sol +2 -2
  466. package/contracts/{types → type}/Fee.sol +33 -23
  467. package/contracts/{types → type}/NftId.sol +22 -15
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +276 -0
  470. package/contracts/type/PayoutId.sol +82 -0
  471. package/contracts/{types → type}/Referral.sol +6 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +16 -2
  474. package/contracts/type/RoleId.sol +162 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +48 -4
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +34 -15
  480. package/contracts/{types → type}/UFixed.sol +39 -9
  481. package/contracts/{types → type}/Version.sol +5 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  483. package/contracts/upgradeability/ProxyManager.sol +232 -0
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/upgradeability/Versionable.sol +59 -0
  486. package/package.json +11 -7
  487. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -772
  490. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -384
  492. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  494. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  495. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  496. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  497. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  498. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  499. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -967
  500. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  501. package/artifacts/contracts/components/Product.sol/Product.json +0 -883
  502. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  503. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  504. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  506. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  508. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  510. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  512. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  514. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  516. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  518. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  520. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  522. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  525. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  527. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  529. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  531. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  533. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  534. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  535. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  536. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  537. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  539. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  541. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  542. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  543. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  545. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  546. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  547. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  548. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1065
  550. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  551. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  552. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  553. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  554. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  557. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  559. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  560. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  561. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  562. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  563. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  567. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  569. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  571. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
  573. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  575. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  579. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -499
  582. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
  585. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  587. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
  589. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  591. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
  593. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  595. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  596. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  597. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  598. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  599. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  600. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  601. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  603. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  604. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  605. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  606. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  607. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  608. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  609. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  611. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  613. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  615. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  617. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  619. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  621. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  623. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  624. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  625. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  626. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  627. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  629. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  631. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  633. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  635. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  637. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  639. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  640. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  641. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  643. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  645. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  647. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  649. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  651. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  653. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  655. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  657. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  659. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  661. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  663. package/contracts/components/BaseComponent.sol +0 -145
  664. package/contracts/components/Distribution.sol +0 -163
  665. package/contracts/components/IBaseComponent.sol +0 -32
  666. package/contracts/components/IDistributionComponent.sol +0 -44
  667. package/contracts/components/IPoolComponent.sol +0 -66
  668. package/contracts/components/IProductComponent.sol +0 -35
  669. package/contracts/components/Pool.sol +0 -271
  670. package/contracts/components/Product.sol +0 -292
  671. package/contracts/experiment/cloning/Cloner.sol +0 -47
  672. package/contracts/experiment/errors/Require.sol +0 -38
  673. package/contracts/experiment/errors/Revert.sol +0 -44
  674. package/contracts/experiment/inheritance/A.sol +0 -53
  675. package/contracts/experiment/inheritance/B.sol +0 -28
  676. package/contracts/experiment/inheritance/C.sol +0 -34
  677. package/contracts/experiment/inheritance/IA.sol +0 -13
  678. package/contracts/experiment/inheritance/IB.sol +0 -10
  679. package/contracts/experiment/inheritance/IC.sol +0 -12
  680. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  681. package/contracts/experiment/statemachine/ISM.sol +0 -25
  682. package/contracts/experiment/statemachine/SM.sol +0 -57
  683. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  684. package/contracts/experiment/types/TypeA.sol +0 -47
  685. package/contracts/experiment/types/TypeB.sol +0 -29
  686. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  687. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  688. package/contracts/instance/IInstanceBase.sol +0 -26
  689. package/contracts/instance/InstanceAccessManager.sol +0 -305
  690. package/contracts/instance/InstanceBase.sol +0 -41
  691. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  692. package/contracts/instance/base/IInstanceBase.sol +0 -23
  693. package/contracts/instance/base/KeyValueStore.sol +0 -172
  694. package/contracts/instance/base/Lifecycle.sol +0 -100
  695. package/contracts/instance/module/ISetup.sol +0 -46
  696. package/contracts/instance/module/ITreasury.sol +0 -23
  697. package/contracts/instance/service/BundleService.sol +0 -260
  698. package/contracts/instance/service/BundleServiceManager.sol +0 -54
  699. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  700. package/contracts/instance/service/DistributionService.sol +0 -118
  701. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  702. package/contracts/instance/service/IBundleService.sol +0 -45
  703. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  704. package/contracts/instance/service/IDistributionService.sol +0 -12
  705. package/contracts/instance/service/IPolicyService.sol +0 -87
  706. package/contracts/instance/service/IPoolService.sol +0 -20
  707. package/contracts/instance/service/IProductService.sol +0 -40
  708. package/contracts/instance/service/PolicyService.sol +0 -508
  709. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  710. package/contracts/instance/service/PoolService.sol +0 -124
  711. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  712. package/contracts/instance/service/ProductService.sol +0 -173
  713. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  714. package/contracts/shared/ContractDeployerLib.sol +0 -72
  715. package/contracts/shared/ERC165.sol +0 -25
  716. package/contracts/shared/ProxyManager.sol +0 -94
  717. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  718. package/contracts/shared/Versionable.sol +0 -147
  719. package/contracts/test/TestFee.sol +0 -25
  720. package/contracts/test/TestRegisterable.sol +0 -18
  721. package/contracts/test/TestRoleId.sol +0 -14
  722. package/contracts/test/TestService.sol +0 -24
  723. package/contracts/test/TestToken.sol +0 -26
  724. package/contracts/test/TestVersion.sol +0 -44
  725. package/contracts/test/TestVersionable.sol +0 -17
  726. package/contracts/types/ChainId.sol +0 -38
  727. package/contracts/types/NumberId.sol +0 -52
  728. package/contracts/types/ObjectType.sol +0 -152
  729. package/contracts/types/RoleId.sol +0 -93
  730. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,48 +1,30 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Instance} from "./Instance.sol";
5
- import {IVersionable} from "../shared/IVersionable.sol";
6
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
7
6
  import {InstanceService} from "./InstanceService.sol";
8
- import {Registry} from "../registry/Registry.sol";
9
- import {RegistryService} from "../registry/RegistryService.sol";
10
- import {VersionLib} from "../types/Version.sol";
11
7
 
12
8
  contract InstanceServiceManager is ProxyManager {
13
9
 
14
10
  InstanceService private _instanceService;
15
11
 
16
- /// @dev initializes proxy manager with instance service implementation and deploys instance
12
+ /// @dev initializes proxy manager with instance service implementation
17
13
  constructor(
18
- address registryAddress
19
- )
20
- ProxyManager()
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
21
18
  {
22
- InstanceService instSrv = new InstanceService();
23
- // bytes memory initCode = type(InstanceService).creationCode;
24
- bytes memory data = abi.encode(registryAddress, address(this));
25
- IVersionable versionable = deploy(
26
- address(instSrv),
27
- data);
19
+ InstanceService svc = new InstanceService{salt: salt}();
20
+ bytes memory data = abi.encode(registry, authority);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
28
26
 
29
27
  _instanceService = InstanceService(address(versionable));
30
-
31
- Registry registry = Registry(registryAddress);
32
- address registryServiceAddress = registry.getServiceAddress("RegistryService", VersionLib.toVersion(3, 0, 0).toMajorPart());
33
- RegistryService registryService = RegistryService(registryServiceAddress);
34
- // TODO this must have a role or own nft to register service
35
- //registryService.registerService(_instanceService);
36
- // RegistryService registryService = _instanceService.getRegistryService();
37
-
38
- // TODO no nft to link yet
39
- // link ownership of instance service manager ot nft owner of instance service
40
- //_linkToNftOwnable(
41
- // address(registryAddress),
42
- // address(_instanceService));
43
-
44
- // implies that after this constructor call only upgrade functionality is available
45
- _isDeployed = true;
46
28
  }
47
29
 
48
30
  //--- view functions ----------------------------------------------------//
@@ -0,0 +1,287 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ClaimId} from "../type/ClaimId.sol";
10
+ import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
11
+ import {RequestId} from "../type/RequestId.sol";
12
+ import {RiskId} from "../type/RiskId.sol";
13
+ import {StateId} from "../type/StateId.sol";
14
+ import {ReferralId} from "../type/Referral.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
+ import {PayoutId} from "../type/PayoutId.sol";
17
+
18
+ import {BalanceStore} from "./base/BalanceStore.sol";
19
+ import {IInstance} from "./IInstance.sol";
20
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
21
+ import {ObjectCounter} from "./base/ObjectCounter.sol";
22
+
23
+ import {IBundle} from "./module/IBundle.sol";
24
+ import {IComponents} from "./module/IComponents.sol";
25
+ import {IDistribution} from "./module/IDistribution.sol";
26
+ import {IPolicy} from "./module/IPolicy.sol";
27
+ import {IOracle} from "../oracle/IOracle.sol";
28
+ import {IRisk} from "./module/IRisk.sol";
29
+
30
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
31
+
32
+
33
+ contract InstanceStore is
34
+ AccessManagedUpgradeable,
35
+ BalanceStore,
36
+ KeyValueStore,
37
+ ObjectCounter,
38
+ ObjectLifecycle
39
+ {
40
+
41
+ /// @dev This initializer needs to be called from the instance itself.
42
+ function initialize()
43
+ public
44
+ initializer()
45
+ {
46
+ address instance = msg.sender;
47
+ address authority = IInstance(instance).authority();
48
+
49
+ __AccessManaged_init(authority);
50
+ // double initialization, safe
51
+ _initializeLifecycle();
52
+ }
53
+
54
+ //--- Component ---------------------------------------------------------//
55
+
56
+ function createComponent(
57
+ NftId componentNftId,
58
+ IComponents.ComponentInfo memory componentInfo
59
+ )
60
+ external
61
+ restricted()
62
+ {
63
+ _registerBalanceTarget(componentNftId);
64
+ _create(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo));
65
+ }
66
+
67
+ function updateComponent(
68
+ NftId componentNftId,
69
+ IComponents.ComponentInfo memory componentInfo,
70
+ StateId newState
71
+ )
72
+ external
73
+ restricted()
74
+ {
75
+ _update(_toNftKey32(componentNftId, COMPONENT()), abi.encode(componentInfo), newState);
76
+ }
77
+
78
+ //--- Product -----------------------------------------------------------//
79
+
80
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
81
+ _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
82
+ }
83
+
84
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
85
+ _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
86
+ }
87
+
88
+ //--- Pool --------------------------------------------------------------//
89
+
90
+ function createPool(
91
+ NftId poolNftId,
92
+ IComponents.PoolInfo memory info
93
+ )
94
+ external
95
+ restricted()
96
+ {
97
+ _create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
98
+ }
99
+
100
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
101
+ _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
102
+ }
103
+
104
+ //--- DistributorType ---------------------------------------------------//
105
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
106
+ _create(distributorType.toKey32(), abi.encode(info));
107
+ }
108
+
109
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
110
+ _update(distributorType.toKey32(), abi.encode(info), newState);
111
+ }
112
+
113
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
114
+ _updateState(distributorType.toKey32(), newState);
115
+ }
116
+
117
+ //--- Distributor -------------------------------------------------------//
118
+ function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
119
+ _registerBalanceTarget(distributorNftId);
120
+ _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
121
+ }
122
+
123
+ function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
124
+ _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
125
+ }
126
+
127
+ function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
128
+ _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
129
+ }
130
+
131
+ //--- Referral ----------------------------------------------------------//
132
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
133
+ _create(referralId.toKey32(), abi.encode(referralInfo));
134
+ }
135
+
136
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
137
+ _update(referralId.toKey32(), abi.encode(referralInfo), newState);
138
+ }
139
+
140
+ function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
141
+ _updateState(referralId.toKey32(), newState);
142
+ }
143
+
144
+ //--- Bundle ------------------------------------------------------------//
145
+ function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
146
+ _registerBalanceTarget(bundleNftId);
147
+ _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
148
+ }
149
+
150
+ function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
151
+ _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
152
+ }
153
+
154
+ function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
155
+ _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
156
+ }
157
+
158
+ //--- Risk --------------------------------------------------------------//
159
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
160
+ _create(riskId.toKey32(), abi.encode(risk));
161
+ }
162
+
163
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
164
+ _update(riskId.toKey32(), abi.encode(risk), newState);
165
+ }
166
+
167
+ function updateRiskState(RiskId riskId, StateId newState) external restricted() {
168
+ _updateState(riskId.toKey32(), newState);
169
+ }
170
+
171
+ //--- Application (Policy) ----------------------------------------------//
172
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
173
+ _registerBalanceTarget(applicationNftId);
174
+ _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
175
+ }
176
+
177
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
178
+ _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
179
+ }
180
+
181
+ function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
182
+ _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
183
+ }
184
+
185
+ //--- Policy ------------------------------------------------------------//
186
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
187
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
188
+ }
189
+
190
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
191
+ _update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
192
+ }
193
+
194
+ function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
195
+ _updateState(_toNftKey32(policyNftId, POLICY()), newState);
196
+ }
197
+
198
+
199
+ //--- Premium (Policy) ----------------------------------------------//
200
+ function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
201
+ _create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
202
+ }
203
+
204
+ function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
205
+ _updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
206
+ }
207
+
208
+ //--- Claim -------------------------------------------------------------//
209
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
210
+ _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
211
+ }
212
+
213
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
214
+ _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
215
+ }
216
+
217
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
218
+ _updateState(_toClaimKey32(policyNftId, claimId), newState);
219
+ }
220
+
221
+ //--- Payout ------------------------------------------------------------//
222
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
223
+ _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
224
+ }
225
+
226
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
227
+ _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
228
+ }
229
+
230
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
231
+ _updateState(_toPayoutKey32(policyNftId, payoutId), newState);
232
+ }
233
+
234
+ //--- Request -----------------------------------------------------------//
235
+
236
+ function createRequest(IOracle.RequestInfo memory request) external restricted() returns (RequestId requestId) {
237
+ requestId = _createNextRequestId();
238
+ _create(requestId.toKey32(), abi.encode(request));
239
+ }
240
+
241
+ function updateRequest(RequestId requestId, IOracle.RequestInfo memory request, StateId newState) external restricted() {
242
+ _update(requestId.toKey32(), abi.encode(request), newState);
243
+ }
244
+
245
+ function updateRequestState(RequestId requestId, StateId newState) external restricted() {
246
+ _updateState(requestId.toKey32(), newState);
247
+ }
248
+
249
+ //--- balance and fee management functions ------------------------------//
250
+
251
+ function increaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
252
+ return _increaseBalance(targetNftId, amount);
253
+ }
254
+
255
+ function decreaseBalance(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
256
+ return _decreaseBalance(targetNftId, amount);
257
+ }
258
+
259
+ function increaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
260
+ return _increaseFees(targetNftId, amount);
261
+ }
262
+
263
+ function decreaseFees(NftId targetNftId, Amount amount) external restricted() returns (Amount newFeeBalance) {
264
+ return _decreaseFees(targetNftId, amount);
265
+ }
266
+
267
+ function increaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
268
+ return _increaseLocked(targetNftId, amount);
269
+ }
270
+
271
+ function decreaseLocked(NftId targetNftId, Amount amount) external restricted() returns (Amount newBalance) {
272
+ return _decreaseLocked(targetNftId, amount);
273
+ }
274
+
275
+ //--- internal view/pure functions --------------------------------------//
276
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
277
+ return nftId.toKey32(objectType);
278
+ }
279
+
280
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
281
+ return claimId.toKey32(policyNftId);
282
+ }
283
+
284
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
285
+ return payoutId.toKey32(policyNftId);
286
+ }
287
+ }
@@ -0,0 +1,123 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+
8
+ contract BalanceStore {
9
+
10
+ error ErrorBalanceStoreTargetAlreadyRegistered(NftId targetNftId);
11
+ error ErrorBalanceStoreTargetNotRegistered(NftId targetNftId);
12
+
13
+ event LogBalanceStoreTargetRegistered(NftId targetNftId);
14
+
15
+ event LogBalanceStoreFeesIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
16
+ event LogBalanceStoreFeesDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
17
+
18
+ event LogBalanceStoreLockedIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
19
+ event LogBalanceStoreLockedDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
20
+
21
+ event LogBalanceStoreBalanceIncreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
22
+ event LogBalanceStoreBalanceDecreased(NftId targetNftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
23
+
24
+ mapping(NftId nftId => Amount balance) private _balanceAmount;
25
+ mapping(NftId nftId => Amount locked) private _lockedAmount;
26
+ mapping(NftId nftId => Amount fees) private _feeAmount;
27
+ mapping(NftId nftId => bool isRegistered) private _isRegistered;
28
+
29
+ // TODO check if this is made redundant by *Info struct updates
30
+ mapping(NftId nftId => Blocknumber lastUpdatedIn) private _lastUpdatedIn;
31
+
32
+ modifier onlyRegisteredTarget(NftId targetNftId) {
33
+ if (!_isRegistered[targetNftId]) {
34
+ revert ErrorBalanceStoreTargetNotRegistered(targetNftId);
35
+ }
36
+ _;
37
+ }
38
+
39
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount balanceAmount) { return _balanceAmount[targetNftId]; }
40
+ function getLockedAmount(NftId targetNftId) external view returns (Amount lockedAmount) { return _lockedAmount[targetNftId]; }
41
+ function getFeeAmount(NftId targetNftId) external view returns (Amount feeAmount) { return _feeAmount[targetNftId]; }
42
+
43
+ function getAmounts(NftId targetNftId)
44
+ external
45
+ view
46
+ returns (
47
+ Amount balanceAmount,
48
+ Amount lockedAmount,
49
+ Amount feeAmount
50
+ )
51
+ {
52
+ balanceAmount = _balanceAmount[targetNftId];
53
+ lockedAmount = _lockedAmount[targetNftId];
54
+ feeAmount = _feeAmount[targetNftId];
55
+ }
56
+
57
+ function _registerBalanceTarget(NftId targetNftId) internal {
58
+ if (_isRegistered[targetNftId]) {
59
+ revert ErrorBalanceStoreTargetAlreadyRegistered(targetNftId);
60
+ }
61
+
62
+ _isRegistered[targetNftId] = true;
63
+ _setLastUpdatedIn(targetNftId);
64
+
65
+ emit LogBalanceStoreTargetRegistered(targetNftId);
66
+ }
67
+
68
+ //--- fee management ----------------------------------------------------//
69
+ function _increaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
70
+ newBalance = _feeAmount[targetNftId] + amount;
71
+ _feeAmount[targetNftId] = newBalance;
72
+
73
+ emit LogBalanceStoreFeesIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
74
+ _setLastUpdatedIn(targetNftId);
75
+ }
76
+
77
+ function _decreaseFees(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
78
+ newBalance = _feeAmount[targetNftId] - amount;
79
+ _feeAmount[targetNftId] = newBalance;
80
+
81
+ emit LogBalanceStoreFeesDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
82
+ _setLastUpdatedIn(targetNftId);
83
+ }
84
+
85
+ //--- locked management -------------------------------------------------//
86
+ function _increaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
87
+ newBalance = _lockedAmount[targetNftId] + amount;
88
+ _lockedAmount[targetNftId] = newBalance;
89
+
90
+ emit LogBalanceStoreLockedIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
91
+ _setLastUpdatedIn(targetNftId);
92
+ }
93
+
94
+ function _decreaseLocked(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
95
+ newBalance = _lockedAmount[targetNftId] - amount;
96
+ _lockedAmount[targetNftId] = newBalance;
97
+
98
+ emit LogBalanceStoreLockedDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
99
+ _setLastUpdatedIn(targetNftId);
100
+ }
101
+
102
+ //--- balance management ------------------------------------------------//
103
+ function _increaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
104
+ newBalance = _balanceAmount[targetNftId] + amount;
105
+ _balanceAmount[targetNftId] = newBalance;
106
+
107
+ emit LogBalanceStoreBalanceIncreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
108
+ _setLastUpdatedIn(targetNftId);
109
+ }
110
+
111
+ function _decreaseBalance(NftId targetNftId, Amount amount) internal onlyRegisteredTarget(targetNftId) returns (Amount newBalance) {
112
+ newBalance = _balanceAmount[targetNftId] - amount;
113
+ _balanceAmount[targetNftId] = newBalance;
114
+
115
+ emit LogBalanceStoreBalanceDecreased(targetNftId, amount, newBalance, _lastUpdatedIn[targetNftId]);
116
+ _setLastUpdatedIn(targetNftId);
117
+ }
118
+
119
+ //--- internal/private functions ----------------------------------------//
120
+ function _setLastUpdatedIn(NftId targetNftId) internal {
121
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
122
+ }
123
+ }
@@ -2,42 +2,24 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
6
5
 
7
- import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IRegistry} from "../../registry/IRegistry.sol";
8
7
 
9
8
  abstract contract Cloneable is
10
9
  AccessManagedUpgradeable
11
10
  {
12
- event CloneableInitialized(address authority, address registry);
13
-
14
- error CloneableRegistryInvalid(address registry);
15
-
16
11
  IRegistry internal _registry;
17
12
 
18
- constructor() {
19
- _registry = IRegistry(address(0));
20
- }
21
-
22
13
  /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
23
- function initialize(
14
+ function __Cloneable_init(
24
15
  address authority,
25
16
  address registry
26
17
  )
27
- public
28
- initializer
18
+ internal
19
+ onlyInitializing
29
20
  {
30
- // check/handle access managed
31
21
  __AccessManaged_init(authority);
32
-
33
- // check/handle registry
34
- if (registry.code.length == 0) {
35
- revert CloneableRegistryInvalid(registry);
36
- }
37
-
38
22
  _registry = IRegistry(registry);
39
-
40
- emit CloneableInitialized(authority, registry);
41
23
  }
42
24
 
43
25
  function getRegistry() external view returns (IRegistry) {
@@ -0,0 +1,21 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, BlocknumberLib} from "../../type/Blocknumber.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {RequestId, RequestIdLib} from "../../type/RequestId.sol";
8
+
9
+ contract ObjectCounter {
10
+
11
+ // TODO refactor risk id
12
+ // mapping(NftId productNftId => uint64 risks) private _riskCounter;
13
+
14
+ uint256 private _requestCounter;
15
+
16
+ // TODO introduce RequestId (uint64)
17
+ function _createNextRequestId() internal returns (RequestId requestId) {
18
+ _requestCounter++;
19
+ requestId = RequestIdLib.toRequestId(_requestCounter);
20
+ }
21
+ }
@@ -0,0 +1,111 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
7
+ import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
8
+ import {Lifecycle} from "../../shared/Lifecycle.sol";
9
+
10
+ contract ObjectLifecycle is
11
+ Lifecycle,
12
+ Initializable
13
+ {
14
+ function _initializeLifecycle() internal onlyInitializing
15
+ {
16
+ _setupLifecycle();
17
+ }
18
+
19
+ function _setupLifecycle()
20
+ internal
21
+ override
22
+ {
23
+ _setupBundleLifecycle();
24
+ _setupComponentLifecycle();
25
+ _setupPolicyLifecycle();
26
+ _setupPremiumLifecycle();
27
+ _setupClaimLifecycle();
28
+ _setupPayoutLifecycle();
29
+ _setupRiskLifecycle();
30
+ _setupRequestLifecycle();
31
+
32
+ // setup dummy lifecycles to manage with key value store
33
+ _setUpPoolLifecycle();
34
+ _setUpProductLifecycle();
35
+ _setUpDistributionLifecycle();
36
+ }
37
+
38
+ function _setupComponentLifecycle() private {
39
+ setInitialState(COMPONENT(), ACTIVE());
40
+ setStateTransition(COMPONENT(), ACTIVE(), PAUSED());
41
+ setStateTransition(COMPONENT(), PAUSED(), ACTIVE());
42
+ setStateTransition(COMPONENT(), PAUSED(), ARCHIVED());
43
+ }
44
+
45
+ function _setupBundleLifecycle() private {
46
+ setInitialState(BUNDLE(), ACTIVE());
47
+ setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
48
+ setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
49
+ setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
50
+ setStateTransition(BUNDLE(), PAUSED(), CLOSED());
51
+ }
52
+
53
+ function _setupPolicyLifecycle() private {
54
+ setInitialState(POLICY(), APPLIED());
55
+ setStateTransition(POLICY(), APPLIED(), REVOKED());
56
+ setStateTransition(POLICY(), APPLIED(), DECLINED());
57
+ setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
58
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
59
+ }
60
+
61
+ function _setupPremiumLifecycle() private {
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
64
+ }
65
+
66
+ function _setupClaimLifecycle() private {
67
+ setInitialState(CLAIM(), SUBMITTED());
68
+ setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
69
+ setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
70
+ setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
71
+ }
72
+
73
+ function _setupPayoutLifecycle() private {
74
+ setInitialState(PAYOUT(), EXPECTED());
75
+ // TODO: add state cancelled
76
+ setStateTransition(PAYOUT(), EXPECTED(), PAID());
77
+ }
78
+
79
+ function _setupRiskLifecycle() private {
80
+ setInitialState(RISK(), ACTIVE());
81
+ setStateTransition(RISK(), ACTIVE(), PAUSED());
82
+ setStateTransition(RISK(), PAUSED(), ACTIVE());
83
+ setStateTransition(RISK(), PAUSED(), ARCHIVED());
84
+ }
85
+
86
+ function _setupRequestLifecycle() private {
87
+ setInitialState(REQUEST(), ACTIVE());
88
+ setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
89
+ setStateTransition(REQUEST(), ACTIVE(), FAILED());
90
+ setStateTransition(REQUEST(), FAILED(), FULFILLED());
91
+ setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
92
+ }
93
+
94
+ // dummy lifecycle only
95
+ function _setUpPoolLifecycle() private {
96
+ setInitialState(POOL(), ACTIVE());
97
+ }
98
+
99
+ // dummy lifecycle only
100
+ function _setUpProductLifecycle() private {
101
+ setInitialState(PRODUCT(), ACTIVE());
102
+ }
103
+
104
+ // dummy lifecycles only
105
+ function _setUpDistributionLifecycle() private {
106
+ setInitialState(DISTRIBUTION(), ACTIVE());
107
+ setInitialState(DISTRIBUTOR(), ACTIVE());
108
+ setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
109
+ setInitialState(REFERRAL(), ACTIVE());
110
+ }
111
+ }